/*! For license information please see main.be06da44.js.LICENSE.txt */ (()=>{"use strict";var e,t,r,n={6991:(e,t,r)=>{var n=r(7294),o=r(745),i=r(9655),a=r(9250),s=r(5697),l=r.n(s),c=r(6158),u=r.n(c);function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(this.props.addresses);try{for(i.s();!(n=i.n()).done;){var a=n.value;o++;var s="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURIComponent(a)+".json?"+r.toString();window.fetch(s).then((function(e){return e.json()})).then((function(r){t.push(r),o===e.props.addresses.length&&e.setState({markers:t,view:"map"},e.initMap)})).catch((function(e){return console.log(e)}))}}catch(e){i.e(e)}finally{i.f()}}},{key:"getDirections",value:function(){var e=this,t=this.props.fromCoordinates.join(", "),r=this.props.toCoordinates.join(", "),n="https://api.mapbox.com/directions/v5/mapbox/driving-traffic/".concat(t,";").concat(r),o=new URLSearchParams;o.append("geometries","geojson"),o.append("steps",!0),o.append("access_token",this.props.accessToken);var i=n+"?"+o.toString();window.fetch(i).then((function(e){return e.json()})).then((function(t){e.setState({directions:t,view:"map"},e.initMap)})).catch((function(t){e.setState({error:t.stack})}))}},{key:"initMap",value:function(){var e=this;u().accessToken=this.props.accessToken;var t=[],r={},n=null,o=null;if(r.container=this.mapRef.current.id,r.style="mapbox://styles/mapbox/streets-v12",this.props.center?r.center=this.props.center:this.state.markers.length>0&&(r.center=this.state.markers[0].features[0].center),this.props.zoom&&(r.zoom=this.props.zoom),this.props.projection&&(r.projection=this.props.projection),this.map=new(u().Map)(r),this.props.geoLocate&&(n=new(u().GeolocateControl)({positionOptions:{enableHighAccuracy:!0},showUserLocation:!0,trackUserLocation:!0,showUserHeading:!0}),this.map.addControl(n)),this.props.allowFullScreen&&(o=new(u().FullscreenControl),this.map.addControl(o)),this.props.allowNavigation&&this.map.addControl(new(u().NavigationControl),"bottom-right"),this.state.markers&&this.state.markers.length>0){var i=document.createElement("span");i.classList.add("material-icons"),i.classList.add("text-primary"),i.setAttribute("style","font-size: 3em"),i.innerText="place",i.setAttribute("title",this.state.markers[0].features[0].place_name);var a=new(u().Marker)(i);a.setLngLat(this.state.markers[0].features[0].geometry.coordinates),a.setPopup((new(u().Popup)).setHTML(""))),t.push(a)}this.map.on("style.load",(function(){e.map.setFog({})})),this.map.on("load",(function(){if(n&&n.trigger(),e.state.directions){var r,o=e.state.directions.routes[0],i={type:"Feature",properties:{},geometry:o.geometry};e.instructionsRef.current.innerHTML="";var a=""),s="

Trip duration: ".concat(Math.floor(o.duration/60)," min

");e.instructionsRef.current.innerHTML="".concat(s).concat(a),e.map.getSource("route")?e.map.getSource("route").setData(i):e.map.addLayer({id:"route",type:"line",source:{type:"geojson",data:i},layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"#3887BE","line-width":5,"line-opacity":.75}})}if(t.length>0)for(var l=0,c=t;l0&&this.geocodeMarkers(),this.props.fromCoordinates&&this.props.toCoordinates?this.getDirections():this.setState({view:"map"},(function(){e.initMap()}))}},{key:"componentDidUpdate",value:function(e,t){var r=this;e.fromCoordinates!==this.props.fromCoordinates&&(this.props.fromCoordinates&&this.props.toCoordinates?this.getDirections():this.setState({view:"map"},(function(){r.initMap()}))),e.addresses!==this.props.addresses&&this.props.addresses&&this.props.addresses.length>0&&this.geocodeMarkers()}},{key:"render",value:function(){return this.state&&this.state.error?(e=this).state.error?n.createElement("div",{className:"pad-3 bg-danger text-white",style:{display:"flex",justifyContent:"space-between",height:"4%",minHeight:"1.8em"}},e.state.error,n.createElement("button",{type:"button",onClick:function(t){e.setState({error:null})}},n.createElement("span",{className:"material-icons"},"close"))):"":this.state&&"loading"===this.state.view?n.createElement("div",null,"Loading"):n.createElement("div",{className:"grid"},n.createElement("div",{className:"row"},n.createElement("div",{ref:this.instructionsRef,style:{maxHeight:"300px",overflow:"scroll"},className:"col",id:"mapboxGLInstructions"}),n.createElement("div",{ref:this.mapRef,className:"col",style:{height:"300px"},id:"mapboxGLMap"})));var e}}])&&d(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(n.Component);y(g,"propTypes",{accessToken:l().string.isRequired,addresses:l().array,toAddress:l().object,center:l().array,zoom:l().number,projection:l().string,geoLocate:l().bool,allowFullScreen:l().bool,allowNavigation:l().bool,fromCoordinates:l().array,toCoordinates:l().array});const w=g;var E=r(1257);const A=function(e){return new Promise((function(t,r){(e=e||{}).context=e.context||null,e.responseType=e.responseType||"application/json";var n;n=e.url?e.url:"localhost"==window.location.hostname?"https://srsrfl-staging.com/":"/";var o=e.headers||{};(0,E.Z)({method:e.method.toLowerCase(),url:"".concat(n).concat(e.endpoint),responseType:e.responseType,headers:o,params:e.params,data:e.data}).then(t).catch(r)}))},x=function(e){var t="";return e.response&&e.response.data?e.response.data.message?t="string"==e.response.data.message?e.response.data.message:JSON.stringify(e.response.data.message):"string"==typeof e.response.data?e.response.data.includes("message")&&(t=e.response.data.substring(12,e.response.data.length-2)):t=JSON.stringify(e.response.data):t=e.message?e.message:JSON.stringify(e),t};var k=r(6574),P=r(5725),O=r(2658),C=r(2574),j=function(e){return n.createElement(k.Z,{maxWidth:"lg"},n.createElement(P.ZP,{container:!0,direction:"column",justifyContent:"center",alignItems:"center"},n.createElement(P.ZP,{item:!0},n.createElement("img",{src:"data:image/png;base64,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"})),n.createElement(P.ZP,{item:!0},null!=e&&e.isMessage?n.createElement(O.Z,{variant:"h6"},e.message):n.createElement(O.Z,{variant:"h6"},"Error: ",e.message)),n.createElement(P.ZP,{item:!0},e.returnTo&&n.createElement(C.Z,{variant:"contained",width:"50%",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.returnTo()}},"Back"))))};j.propTypes={message:s.PropTypes.string.isRequired,returnTo:s.PropTypes.func,isMessage:s.PropTypes.bool};const S=j;var T=r(6501),Z=r(3584),L=r(9062);function M(e){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},M(e)}function _(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;S(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:Z(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function oe(e,t,r,n,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function ie(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){oe(i,n,o,a,s,"next",e)}function s(e){oe(i,n,o,a,s,"throw",e)}a(void 0)}))}}function ae(e,t){if(e){if("string"==typeof e)return se(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?se(e,t):void 0}}function se(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0&&(t.fields.prescriptions=[{prescription_0:{title:"Prescription Number",type:{typename:"text"},required:!0,error:!0,onChange:function(t,r){var n=ce({},e.state);/^\d{5,10}$/.test(t)?(n.fields.prescriptions[r]["prescription_".concat(r)].error=!1,n.fields.prescriptions[r]["prescription_".concat(r)].feedback=""):(n.fields.prescriptions[r]["prescription_".concat(r)].error=!0,n.fields.prescriptions[r]["prescription_".concat(r)].feedback="Invalid Prescription Number Format"),n.fields.prescriptions[r]["prescription_".concat(r)].value=t,e.setState(n)},fullwidth:!0,feedback:"",value:""}}],t.btn_count=0),this.setState(t)}},{key:"getFullAuth",value:function(){return"demo"==window.location.search.substring(1)||"t=demo"==window.location.search.substring(1)?"1Hs1F2y771027101086":"t="==window.location.search.substring(1,3)?window.location.search.substring(3):window.location.search.substring(1)}},{key:"getStoreNumber",value:function(){if("localhost"==window.location.hostname)return window.location.hash.substring(4);var e=window.location.pathname.split("/");return e[e.length-1]}},{key:"prescriptionData",value:function(){for(var e=[],t=this.state.fields.prescriptions,r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(a);try{for(l.s();!(n=l.n()).done;){var c=n.value;c?"string"==typeof c?s.appendChild(o.createTextNode(c)):s.appendChild(c):s.appendChild(o.createTextNode(""))}}catch(e){l.e(e)}finally{l.f()}return s}},{key:"constructXMLDocument",value:function(){for(var e=this,t=document.implementation.createDocument("http://www.srspharmacy.com/XML/PatientRefillRequest","PatientRefillRequest",null),r=t.documentElement,n=[],o=0;o<=this.state.btn_count;o++)this.state.fields.prescriptions[o]["prescription_".concat(o)].value&&n.push(this.state.fields.prescriptions[o]["prescription_".concat(o)].value);if(r.appendChild(this.entity(t,"To",this.state.id)),r.appendChild(this.entity(t,"From","srsweb")),r.appendChild(this.entity(t,"SentTime",(new Date).toISOString())),this.state.fields.pickup.value&&"-- Select One --"!==this.state.fields.pickup.value){var i=(new Date).getTime()+864e5,a=new Date(i).toISOString().split("T")[0],s="";"Tomorrow Morning"==this.state.fields.pickup.value?s="9":"Tomorrow Afternoon"==this.state.fields.pickup.value&&(s="12");var l="";s&&(l="".concat(a,"T").concat(s,":00:00")),r.appendChild(this.entity(t,"PickupTime",l))}r.appendChild(this.entity(t,"MessageID",(new Date).getTime().toString()));var c,u=n.map((function(r){return e.entity(t,"RxNumber",r)}));return r.appendChild(this.entity.apply(this,[t,"RxNumbers"].concat(function(e){if(Array.isArray(e))return se(e)}(c=u)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||ae(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))),r.appendChild(this.entity(t,"Contact",this.entity(t,"LastName",this.state.fields.last_name.value),this.entity(t,"FirstName",this.state.fields.first_name.value),this.entity(t,"Phone",this.state.fields.phone_number.value),this.entity(t,"Email",this.state.fields.email.value),this.entity(t,"Fax",this.state.fields.fax_number.value))),"Yes"==this.state.fields.delivery.value?r.appendChild(this.entity(t,"PickupMethod","D")):r.appendChild(this.entity(t,"PickupMethod","P")),r.appendChild(this.entity(t,"Comment",this.state.fields.comments.value)),t}},{key:"getData",value:(o=ie(ne().mark((function e(){var t,r;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,(t=ce({},this.state)).data=[],e.t0=ne().keys(t.fields);case 4:if((e.t1=e.t0()).done){e.next=16;break}if(r=e.t1.value,!Object.hasOwn(t.fields,r)){e.next=14;break}if(!t.fields[r].value){e.next=12;break}return e.next=10,t.data.push(t.fields[r].value);case 10:e.next=14;break;case 12:return e.next=14,t.data.push("");case 14:e.next=4;break;case 16:return e.next=18,this.setState(t);case 18:e.next=23;break;case 20:e.prev=20,e.t2=e.catch(0),console.log(e.t2);case 23:case"end":return e.stop()}}),e,this,[[0,20]])}))),function(){return o.apply(this,arguments)})},{key:"addRXNumber",value:function(){var e=this,t=ce({},this.state);t.btn_count++;var r={};r["prescription_".concat(t.btn_count)]={title:"",type:{typename:"text"},required:!1,error:!1,onChange:function(t,r){var n=ce({},e.state);/^\d{5,10}$/.test(t)?(n.fields.prescriptions[r]["prescription_".concat(r)].error=!1,n.fields.prescriptions[r]["prescription_".concat(r)].feedback=""):(n.fields.prescriptions[r]["prescription_".concat(r)].error=!0,n.fields.prescriptions[r]["prescription_".concat(r)].feedback="Invalid Prescription Number Format"),n.fields.prescriptions[r]["prescription_".concat(r)].value=t,e.setState(n)},fullwidth:!0,feedback:"",value:""},t.fields.prescriptions.push(r),this.setState(t)}},{key:"getGoogleMapsURL",value:function(){return"+".concat(this.state.store_address,"\n +").concat(this.state.store_address_two,"\n +").concat(this.state.city,",\n +").concat(this.state.state,"\n +").concat(this.state.zip)}},{key:"getNavigation",value:function(e){navigator&&navigator.platform&&(-1!=navigator.platform.indexOf("iPhone")||-1!=navigator.platform.indexOf("Mac")||-1!=navigator.platform.indexOf("iPad")||-1!=navigator.platform.indexOf("iPod")?window.open("maps://?q="+e):window.open("google.navigation:q="+e+"&mode=d"))}},{key:"load",value:function(){var e=this,t={tag:this.getStoreNumber()};A({method:"get",endpoint:"query",params:t}).then(function(){var t=ie(ne().mark((function t(r){var n,o;return ne().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=JSON.parse(r.data),o=[n.address1+" "+n.city+" "+n.state+" "+n.zip],e.setState({store_name:n.name,logo:n.logo,store_address:n.address1,store_address_two:n.address2,pharmacy_phone:n.phone,pharmacy_sms:n.sms,email:n.email,website:n.website,web_version:n.web_version,city:n.city,state:n.state,zip:n.zip,facebook_link:n.facebook_link,pharmacy_hours:n.store_hours,loaded:!0,pharm_coords:o});case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){console.log(t),e.setState({loaded:!0,errors:x(t)})}))}},{key:"componentDidMount",value:function(){this.load()}},{key:"componentDidUpdate",value:function(){this.state.loaded||this.load()}},{key:"submitForm",value:function(){var e=this,t=''+(new XMLSerializer).serializeToString(this.constructXMLDocument());A({method:"post",endpoint:"submit",headers:{"Content-Type":"application/json"},data:t}).then((function(t){e.changeView("success_submit")})).catch((function(t){console.log(t),e.setState({errors:x(t),loaded:!0})}))}},{key:"render",value:function(){var e=this,t="";if("mobile_site"!==this.state.view){var r=this.state.pages.find((function(t){return t.view==e.state.view}));t=n.createElement(z.Z,{sx:{padding:"5px"}},n.createElement(q.Z,{underline:"hover",color:"inherit",onClick:function(){"mobile_site"!==e.state.view&&e.clearFields(),e.changeView("mobile_site")}},"Home"),n.createElement(O.Z,{color:"text.primary"},r?r.name:"Successful Submission"))}var o=n.createElement(R,null);if(this.state.loaded)if(this.state.errors){var i="";"Pharmacy Not Found / Store License not valid"==this.state.errors&&(i="Missing or invalid store tag in request");var a={message:i||this.state.errors};this.state.store_name&&(a.returnTo=function(){e.setState({errors:null})}),o=S(a)}else switch(this.state.view){case"mobile_site":o=n.createElement("div",null,n.createElement(k.Z,{maxWidth:"lg"},n.createElement(Z.Z,{style:{height:"100vh",overflow:"auto"}},n.createElement(V.Z,{style:{padding:"unset"}},this.state.pages.map((function(t,r){var o=t.name;if("call_pharmacy"==t.view){var i="tel://+1"+e.state.pharmacy_phone.replace(/[^+\d]/g,"");o=n.createElement(q.Z,{color:"black",underline:"none",href:i},t.name)}return n.createElement(n.Fragment,null,n.createElement(X.ZP,{disablePadding:!0},n.createElement(Y.Z,{key:"".concat(t.name,"-").concat(r),sx:{display:"flex",justifyContent:"center",color:"black",width:"100%",gap:"0.5rem",textAlign:"center",bgcolor:"#ddd",borderBottom:"1px solid",borderColor:"#b1abab"},onClick:function(r){if(["refill_request","hours_and_directions"].includes(t.view))e.changeView(t.view);else if("add_contacts"==t.view){var n=e.addContact(),o=n.content,i=n.filename,a=n.content_type;e.downloadToFile(o,i,a)}else if("navigation"==t.view){var s=e.getGoogleMapsURL();e.getNavigation(s)}}},n.createElement(Z.Z,{sx:{width:"250px",display:"flex",justifyContent:"space-between"}},n.createElement(Z.Z,{sx:{width:"50px"}},t.icon),n.createElement(Z.Z,{sx:{display:"flex",justifyContent:"center",flexGrow:"1"}},o)))))}))))));break;case"refill_request":o=n.createElement(k.Z,{maxWidth:"lg"},t,n.createElement(T.Z,{variant:"outlined"},n.createElement("form",{id:"refill-request"},n.createElement(P.ZP,{container:!0,spacing:1,sx:{padding:"20px"}},n.createElement(P.ZP,{item:!0,xs:12},n.createElement(O.Z,{variant:"h4"},"Web Refill Form"),n.createElement("hr",null)),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0,error:this.state.fields.first_name.error,required:this.state.fields.first_name.required,size:"small",type:"text",label:this.state.fields.first_name.title,helperText:this.state&&this.state.fields.first_name.error?this.state.fields.first_name.feedback:"",value:this.state.fields.first_name.value,onChange:function(t){var r=t.target.value;e.state.fields.first_name.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0,error:this.state.fields.last_name.error,required:this.state.fields.last_name.required,size:"small",type:"text",label:this.state.fields.last_name.title,helperText:this.state&&this.state.fields.last_name.error?this.state.fields.last_name.feedback:"",value:this.state.fields.last_name.value,onChange:function(t){var r=t.target.value;e.state.fields.last_name.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0,error:this.state.fields.phone_number.error,required:this.state.fields.phone_number.required,size:"small",type:"text",label:this.state.fields.phone_number.title,helperText:this.state&&this.state.fields.phone_number.error?this.state.fields.phone_number.feedback:"",value:this.state.fields.phone_number.value,onChange:function(t){var r=t.target.value;e.state.fields.phone_number.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0,error:this.state.fields.email.error,required:this.state.fields.email.required,size:"small",type:"text",label:this.state.fields.email.title,helperText:this.state&&this.state.fields.email.error?this.state.fields.email.feedback:"",value:this.state.fields.email.value,onChange:function(t){var r=t.target.value;e.state.fields.email.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0,error:this.state.fields.fax_number.error,required:this.state.fields.fax_number.required,size:"small",type:"text",label:this.state.fields.fax_number.title,helperText:this.state&&this.state.fields.fax_number.error?this.state.fields.fax_number.feedback:"",value:this.state.fields.fax_number.value,onChange:function(t){var r=t.target.value;e.state.fields.fax_number.onChange(r)}})),this.state.fields.prescriptions.map((function(t,r){return n.createElement(P.ZP,{item:!0,xs:12,key:r},n.createElement(Q.Z,{fullWidth:!0,error:t["prescription_".concat(r)].error,required:t["prescription_".concat(r)].required,size:"small",type:"text",label:0==r?t["prescription_".concat(r)].title:"",helperText:e.state&&t["prescription_".concat(r)].error?t["prescription_".concat(r)].feedback:"",value:t["prescription_".concat(r)].value,onChange:function(e){var n=e.target.value;t["prescription_".concat(r)].onChange(n,r)}}))})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(C.Z,{fullWidth:!0,variant:"contained",color:"primary",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.state.fields.prescriptions.length<=9&&e.addRXNumber()}},"Add")),10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement(P.ZP,{item:!0,xs:12},n.createElement(H.Z,{fullWidth:!0},n.createElement(K.Z,null,this.state.fields.delivery.title),n.createElement(J.Z,{labelId:"delivery-select-label",value:this.state.fields.delivery.value,label:this.state.fields.delivery.title,size:"small",onChange:function(t){t.preventDefault(),t.stopPropagation(),e.state.fields.delivery.onChange(t.target.value)}},this.state.fields.delivery.type.options.map((function(e,t){return n.createElement($.Z,{key:"".concat(e.value,"-").concat(t),value:e.value},e.value)}))))):n.createElement("div",null),10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement(P.ZP,{item:!0,xs:12},n.createElement(H.Z,{fullWidth:!0},n.createElement(K.Z,null,this.state.fields.pickup.title),n.createElement(J.Z,{labelId:"pickup-select-label",id:"pickup-select",error:this.state.fields.pickup.error,required:this.state.fields.pickup.required,value:this.state.fields.pickup.value,label:this.state.fields.pickup.title,size:"small",onChange:function(t){t.preventDefault(),t.stopPropagation(),e.state.fields.pickup.onChange(t.target.value)}},this.state.fields.pickup.type.options.map((function(e,t){return n.createElement($.Z,{key:"".concat(e.value,"-").concat(t),value:e.value},e.value)}))))):n.createElement("div",null),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0,multiline:!0,error:this.state.fields.comments.error,required:this.state.fields.comments.required,size:"small",label:this.state.fields.comments.title,helperText:this.state&&this.state.fields.comments.error?this.state.fields.comments.feedback:"",value:this.state.fields.comments.value,onChange:function(t){var r=t.target.value;e.state.fields.comments.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12,sx:{paddingTop:"5px",bgcolor:"rgba(0,0,0,.05"}},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:4,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(C.Z,{className:"submit",variant:"contained",color:"primary",onClick:function(t){t.stopPropagation(),t.preventDefault();var r=e.state.fields,n=!0,o=ce({},e.state);for(var i in r)r[i].error||Array.isArray(r[i])&&!r[i][0].prescription_0.value?n=!1:[10,13,15].includes(e.state.web_version)&&"pickup"==i&&"-- Select One --"==r[i].value&&(n=!1,o.fields.pickup.error=!0,e.setState(o));n&&e.submitForm()}},"Submit")),n.createElement(P.ZP,{item:!0,xs:4,sx:{display:"flex",justifyContent:"center"}},n.createElement(C.Z,{className:"reset",variant:"contained",color:"error",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.clearFields()}},"Reset")),n.createElement(P.ZP,{item:!0,xs:4,sx:{display:"flex",justifyContent:"flex-end"}},n.createElement(C.Z,{className:"cancel",variant:"outlined",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.clearFields(),e.changeView("mobile_site")}},"Cancel"))))))))));break;case"success_submit":o=n.createElement(k.Z,{maxWidth:"lg"},t,n.createElement(T.Z,{variant:"outlined"},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(O.Z,{variant:"h6",sx:{padding:"5px"}},"Fill submitted successfully!")),n.createElement(P.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"center"}},n.createElement("table",null,n.createElement("tbody",null,n.createElement("tr",null,n.createElement("th",null,"Patient:"),n.createElement("td",null,this.state.fields.first_name.value+" "+this.state.fields.last_name.value)),n.createElement("tr",null,n.createElement("th",null,"Phone Number:"),n.createElement("td",null,this.state.fields.phone_number.value)),this.state.fields.email.value?n.createElement("tr",null,n.createElement("th",null,"Email:"),n.createElement("td",null,this.state.fields.email.value)):"",this.state.fields.fax_number.value?n.createElement("tr",null,n.createElement("th",null,"Fax Number:"),n.createElement("td",null,this.state.fields.fax_number.value)):"",n.createElement("tr",null,n.createElement("th",null,"Prescriptions:"),this.prescriptionData()),10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement("tr",null,n.createElement("th",null,"Delivery:"),n.createElement("td",null,this.state.fields.delivery.value)):"",10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement("tr",null,n.createElement("th",null,"Pickup:"),n.createElement("td",null,this.state.fields.pickup.value)):"",this.state.fields.comments.value?n.createElement("tr",null,n.createElement("th",null,"Comments:"),n.createElement("td",null,this.state.fields.comments.value)):""))),n.createElement(P.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(O.Z,{sx:{padding:"5px"}},"Would you like to submit another fill?")),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:6,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(C.Z,{sx:{margin:"5px"},type:"button",variant:"outlined",color:"primary",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.clearFields(),e.changeView("mobile_site")}},"No")),n.createElement(P.ZP,{item:!0,xs:6,sx:{display:"flex",justifyContent:"flex-end"}},n.createElement(C.Z,{sx:{margin:"5px"},type:"button",variant:"contained",color:"primary",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.clearFields(),e.changeView("refill_request")}},"Yes")))))));break;case"hours_and_directions":o=n.createElement("div",{style:{padding:"5px"}},t,n.createElement(O.Z,{variant:"h5"},"Store Hours"),n.createElement(O.Z,null,this.state.pharmacy_hours?this.state.pharmacy_hours:"No store hours available"),n.createElement("hr",null),n.createElement(O.Z,{variant:"h5"},"Directions"),n.createElement(O.Z,null,this.state.store_address),n.createElement(O.Z,null,this.state.store_address_two),n.createElement(O.Z,null,this.state.city,", ",this.state.state," ",this.state.zip),n.createElement(O.Z,null,this.state.phone_number),n.createElement("a",{onClick:function(){var t=e.getGoogleMapsURL();e.getNavigation(t)},style:{fontSize:"16px",color:"blue",cursor:"pointer",borderBottom:"1px solid blue"}},"Get Directions"),this.state.facebook_link?n.createElement(n.Fragment,null,n.createElement("br",null),n.createElement("a",{onClick:function(){window.location.href=e.state.facebook_link},style:{fontSize:"16px",color:"blue",cursor:"pointer",borderBottom:"1px solid blue"}},"Facebook Link")):"",n.createElement("hr",null),n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:12},n.createElement(w,{accessToken:"pk.eyJ1IjoibW1jbWlsbGFuIiwiYSI6ImNsb2oxbW9iNDAwaXAyanBwYmk0d3YzM2EifQ.5B6u1ETbrXbm6ws0HeS8Iw",addresses:this.state.pharm_coords,zoom:15,projection:"globe",allowFullScreen:!0,allowNavigation:!0}))))}else o=n.createElement(R,null);return n.createElement("div",null,n.createElement(ee.Z,{position:"static"},n.createElement(te.Z,null,this.state.logo?n.createElement("img",{src:this.state.logo,alt:this.state.store_name,style:{margin:"5px",borderRadius:"5px",height:"5rem"}}):n.createElement(O.Z,null,this.state.store_name))),o)}}],r&&ue(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),l}(n.Component);he(ve,"propTypes",{themeMode:l().string.isRequired});const ye=ve;var be=r(9617),ge=r(2233),we=r(6720);function Ee(e){return Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ee(e)}function Ae(){Ae=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new T(n||[]);return o(a,"_invoke",{value:O(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",d="suspendedYield",h="executing",m="completed",v={};function y(){}function b(){}function g(){}var w={};c(w,a,(function(){return this}));var E=Object.getPrototypeOf,A=E&&E(E(Z([])));A&&A!==r&&n.call(A,a)&&(w=A);var x=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function r(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==Ee(u)&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function O(t,r,n){var o=p;return function(i,a){if(o===h)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var l=C(s,n);if(l){if(l===v)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=h;var c=f(t,r,n);if("normal"===c.type){if(o=n.done?m:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=m,n.method="throw",n.arg=c.arg)}}}function C(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,C(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function Z(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;S(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:Z(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function xe(e,t,r,n,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function ke(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){xe(i,n,o,a,s,"next",e)}function s(e){xe(i,n,o,a,s,"throw",e)}a(void 0)}))}}function Pe(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:null;e||(e=window.matchMedia("(prefers-color-scheme: dark)"));var t=e.matches?"dark":"light";this.setState({theme:t})}},{key:"render",value:function(){return n.createElement(ge.Z,{theme:"dark"===this.state.theme?this.themeDark:this.themeLight},n.createElement(we.ZP,null),n.createElement("div",null,n.createElement(i.UT,null,n.createElement(a.Z5,null,n.createElement(a.AW,{path:"/",element:n.createElement(ye,{themeMode:this.state.theme})}),n.createElement(a.AW,{path:"mobilesite/",element:n.createElement(ye,{themeMode:this.state.theme})}),n.createElement(a.AW,{path:"m/:tag",element:n.createElement(ye,{themeMode:this.state.theme})})))))}}],r&&Pe(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(n.Component);var Fe=document.getElementById("container");(0,o.s)(Fe).render(n.createElement(_e,null))}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e].call(r.exports,r,r.exports,i),r.exports}i.m=n,e=[],i.O=(t,r,n,o)=>{if(!r){var a=1/0;for(u=0;u=o)&&Object.keys(i.O).every((e=>i.O[e](r[l])))?r.splice(l--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,n,o]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var a={};t=t||[null,r({}),r([]),r(r)];for(var s=2&n&&e;"object"==typeof s&&!~t.indexOf(s);s=r(s))Object.getOwnPropertyNames(s).forEach((t=>a[t]=()=>e[t]));return a.default=()=>e,i.d(o,a),o},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={179:0};i.O.j=t=>0===e[t];var t=(t,r)=>{var n,o,[a,s,l]=r,c=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(l)var u=l(i)}for(t&&t(r);ci(6991)));a=i.O(a)})(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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MlgsRUFBU3ZoQixPQUFRNEosSUFDekIwWSxFQUFVZixFQUFTM1gsR0FDaEJvWCxFQUFvQnRYLEVBQUUyWSxFQUFpQkMsSUFBWUQsRUFBZ0JDLElBQ3JFRCxFQUFnQkMsR0FBUyxLQUUxQkQsRUFBZ0JDLEdBQVcsRUFFNUIsT0FBT3RCLEVBQW9CTSxFQUFFclAsRUFBTyxFQUdqQzJRLEVBQXFCMVQsS0FBK0IseUJBQUlBLEtBQStCLDBCQUFLLEdBQ2hHMFQsRUFBbUJqWCxRQUFRNFcsRUFBcUJ0a0IsS0FBSyxLQUFNLElBQzNEMmtCLEVBQW1CN2lCLEtBQU93aUIsRUFBcUJ0a0IsS0FBSyxLQUFNMmtCLEVBQW1CN2lCLEtBQUs5QixLQUFLMmtCLFFDN0N2RixJQUFJQyxFQUFzQjdCLEVBQW9CTSxPQUFFaFMsRUFBVyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxJQUFPMFIsRUFBb0IsUUFDckk2QixFQUFzQjdCLEVBQW9CTSxFQUFFdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2xpYi9NYXBib3hHTC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvbGliL3V0aWxzLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvYXBpQ2FsbC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2Vycm9yLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvbG9hZGluZy5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvcGFnZXMvTW9iaWxlU2l0ZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvQXBwLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiLypcbiAqIHNyYy9yZWFjdGxpYi9jb21wb25lbnRzL01hcGJveEdMLmpzXG4gKiBDb3B5cmlnaHQgKGMpMjAyMiBTUlMgUGhhcm1hY3kgU3lzdGVtcywgSW5jLlxuICovXG5cbi8vIGh0dHBzOi8vZG9jcy5tYXBib3guY29tL21hcGJveC1nbC1qcy9leGFtcGxlL1xuXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBtYXBib3hnbCBmcm9tICdtYXBib3gtZ2wnO1xuaW1wb3J0IHsgcmVuZGVyRXJyb3IgfSBmcm9tICcuL3V0aWxzJztcblxuY2xhc3MgTWFwYm94R0wgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFjY2Vzc1Rva2VuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYWRkcmVzc2VzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgdG9BZGRyZXNzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNlbnRlcjogUHJvcFR5cGVzLmFycmF5LFxuICAgIHpvb206IFByb3BUeXBlcy5udW1iZXIsXG4gICAgcHJvamVjdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBnZW9Mb2NhdGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93RnVsbFNjcmVlbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxsb3dOYXZpZ2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBmcm9tQ29vcmRpbmF0ZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICB0b0Nvb3JkaW5hdGVzOiBQcm9wVHlwZXMuYXJyYXksXG4gIH07XG4gIG1hcFJlZjtcbiAgbWFwO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmluc3RydWN0aW9uc1JlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICAgIHRoaXMubWFwUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHZpZXc6ICdsb2FkaW5nJyxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbWFya2VyczogW10sXG4gICAgfTtcbiAgICB0aGlzLmluaXRNYXAgPSB0aGlzLmluaXRNYXAuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdlb2NvZGVNYXJrZXJzID0gdGhpcy5nZW9jb2RlTWFya2Vycy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0RGlyZWN0aW9ucyA9IHRoaXMuZ2V0RGlyZWN0aW9ucy5iaW5kKHRoaXMpO1xuICB9XG4gIGdlb2NvZGVNYXJrZXJzKCkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICBjb25zdCBiYXNlVXJsID0gJ2h0dHBzOi8vYXBpLm1hcGJveC5jb20vZ2VvY29kaW5nL3Y1L21hcGJveC5wbGFjZXMvJztcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLmFwcGVuZCgnYWNjZXNzX3Rva2VuJywgdGhpcy5wcm9wcy5hY2Nlc3NUb2tlbik7XG4gICAgbGV0IGNudCA9IDA7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBjbnQrKztcbiAgICAgIGNvbnN0IHVybCA9IGJhc2VVcmwgKyBlbmNvZGVVUklDb21wb25lbnQoYWRkcmVzcykgKyAnLmpzb24/JyArIHBhcmFtcy50b1N0cmluZygpO1xuICAgICAgd2luZG93LmZldGNoKHVybCkudGhlbigocmVzcCkgPT4gcmVzcC5qc29uKCkpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKGRhdGEpO1xuICAgICAgICBpZiAoY250ID09PSB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWFya2VyczogcmVzdWx0cywgdmlldzogJ21hcCcgfSwgdGhpcy5pbml0TWFwKTtcbiAgICAgICAgfVxuICAgICAgfSkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUpKTtcbiAgICB9XG4gIH1cbiAgZ2V0RGlyZWN0aW9ucygpIHtcbiAgICBjb25zdCBmID0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMuam9pbignLCAnKTtcbiAgICBjb25zdCB0ID0gdGhpcy5wcm9wcy50b0Nvb3JkaW5hdGVzLmpvaW4oJywgJyk7XG4gICAgY29uc3QgYmFzZVVybCA9IGBodHRwczovL2FwaS5tYXBib3guY29tL2RpcmVjdGlvbnMvdjUvbWFwYm94L2RyaXZpbmctdHJhZmZpYy8ke2Z9OyR7dH1gO1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdnZW9tZXRyaWVzJywgJ2dlb2pzb24nKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdzdGVwcycsIHRydWUpO1xuICAgIHBhcmFtcy5hcHBlbmQoJ2FjY2Vzc190b2tlbicsIHRoaXMucHJvcHMuYWNjZXNzVG9rZW4pO1xuICAgIGNvbnN0IHVybCA9IGJhc2VVcmwgKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICB3aW5kb3cuZmV0Y2godXJsKS50aGVuKChyZXNwKSA9PiByZXNwLmpzb24oKSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpcmVjdGlvbnM6IGRhdGEsIHZpZXc6ICdtYXAnIH0sIHRoaXMuaW5pdE1hcCk7XG4gICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcjogZS5zdGFjayB9KTtcbiAgICB9KTtcbiAgfVxuICBpbml0TWFwKCkge1xuICAgIG1hcGJveGdsLmFjY2Vzc1Rva2VuID0gdGhpcy5wcm9wcy5hY2Nlc3NUb2tlbjtcbiAgICBjb25zdCBtYXJrZXJzID0gW107XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGxldCBnZW9sb2NhdGUgPSBudWxsO1xuICAgIGxldCBmdWxsc2NyZWVuID0gbnVsbDtcbiAgICBvcHRpb25zLmNvbnRhaW5lciA9IHRoaXMubWFwUmVmLmN1cnJlbnQuaWQ7XG4gICAgb3B0aW9ucy5zdHlsZSA9ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjEyJztcbiAgICBpZiAodGhpcy5wcm9wcy5jZW50ZXIpIHtcbiAgICAgIG9wdGlvbnMuY2VudGVyID0gdGhpcy5wcm9wcy5jZW50ZXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgb3B0aW9ucy5jZW50ZXIgPSB0aGlzLnN0YXRlLm1hcmtlcnNbMF0uZmVhdHVyZXNbMF0uY2VudGVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy56b29tKSB7XG4gICAgICBvcHRpb25zLnpvb20gPSB0aGlzLnByb3BzLnpvb207XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnByb2plY3Rpb24pIHtcbiAgICAgIG9wdGlvbnMucHJvamVjdGlvbiA9IHRoaXMucHJvcHMucHJvamVjdGlvbjtcbiAgICB9XG4gICAgdGhpcy5tYXAgPSBuZXcgbWFwYm94Z2wuTWFwKG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLnByb3BzLmdlb0xvY2F0ZSkge1xuICAgICAgZ2VvbG9jYXRlID0gbmV3IG1hcGJveGdsLkdlb2xvY2F0ZUNvbnRyb2woe1xuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHtcbiAgICAgICAgICBlbmFibGVIaWdoQWNjdXJhY3k6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dVc2VyTG9jYXRpb246IHRydWUsXG4gICAgICAgIHRyYWNrVXNlckxvY2F0aW9uOiB0cnVlLFxuICAgICAgICBzaG93VXNlckhlYWRpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2woZ2VvbG9jYXRlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYWxsb3dGdWxsU2NyZWVuKSB7XG4gICAgICBmdWxsc2NyZWVuID0gbmV3IG1hcGJveGdsLkZ1bGxzY3JlZW5Db250cm9sKCk7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKGZ1bGxzY3JlZW4pO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5hbGxvd05hdmlnYXRpb24pIHtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wobmV3IG1hcGJveGdsLk5hdmlnYXRpb25Db250cm9sKCksICdib3R0b20tcmlnaHQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUubWFya2VycyAmJiB0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdXNlIHRoZSBmaXJzdCBtYXJrZXIgaW5zdGVhZCBvZiBhbGwgb2YgdGhlbVxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKCdtYXRlcmlhbC1pY29ucycpO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2ZvbnQtc2l6ZTogM2VtJyk7XG4gICAgICBlbC5pbm5lclRleHQgPSAoJ3BsYWNlJyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgdGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLnBsYWNlX25hbWUpO1xuICAgICAgY29uc3QgbSA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpO1xuICAgICAgbS5zZXRMbmdMYXQodGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLmdlb21ldHJ5LmNvb3JkaW5hdGVzKTtcbiAgICAgIG0uc2V0UG9wdXAobmV3IG1hcGJveGdsLlBvcHVwKCkuc2V0SFRNTChgPHN0cm9uZyR7dGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLnBsYWNlX25hbWV9PHN0cm9uZz5gKSk7XG4gICAgICBtYXJrZXJzLnB1c2gobSk7XG4gICAgICAvLyBmb3IgKGNvbnN0IG1hcmtlciBvZiB0aGlzLnN0YXRlLm1hcmtlcnMpIHtcbiAgICAgIC8vICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIG1hcmtlci5mZWF0dXJlcykge1xuICAgICAgLy8gICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgLy8gICAgIGVsLmNsYXNzTGlzdC5hZGQoJ21hdGVyaWFsLWljb25zJyk7XG4gICAgICAvLyAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICAvLyAgICAgZWwuc2V0QXR0cmlidXRlKCdzdHlsZScsICdmb250LXNpemU6IDNlbScpO1xuICAgICAgLy8gICAgIGVsLmlubmVyVGV4dCA9ICdwbGFjZSc7XG4gICAgICAvLyAgICAgZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsIGZlYXR1cmUucGxhY2VfbmFtZSk7XG4gICAgICAvLyAgICAgY29uc3QgbSA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpO1xuICAgICAgLy8gICAgIG0uc2V0TG5nTGF0KGZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXMpO1xuICAgICAgLy8gICAgIG0uc2V0UG9wdXAobmV3IG1hcGJveGdsLlBvcHVwKCkuc2V0SFRNTChgPHN0cm9uZz4ke2ZlYXR1cmUucGxhY2VfbmFtZX08L3N0cm9uZz5gKSk7XG4gICAgICAvLyAgICAgbWFya2Vycy5wdXNoKG0pO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgfVxuICAgIHRoaXMubWFwLm9uKCdzdHlsZS5sb2FkJywgKCkgPT4ge1xuICAgICAgdGhpcy5tYXAuc2V0Rm9nKHt9KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbignbG9hZCcsICgpID0+IHtcbiAgICAgIGlmIChnZW9sb2NhdGUpIHtcbiAgICAgICAgZ2VvbG9jYXRlLnRyaWdnZXIoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnN0YXRlLmRpcmVjdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnN0YXRlLmRpcmVjdGlvbnMucm91dGVzWzBdO1xuICAgICAgICBjb25zdCBnZW9qc29uID0ge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgICBnZW9tZXRyeTogcm91dGUuZ2VvbWV0cnksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25zUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIGNvbnN0IHN0ZXBzID0gYDx1bD4ke3JvdXRlLmxlZ3NbMF0/LnN0ZXBzLm1hcCgoc3RlcCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgPGxpPiR7c3RlcC5tYW5ldXZlci5pbnN0cnVjdGlvbn08L2xpPmA7XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpfVxuICAgICAgICA8L3VsPmA7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gYDxwPjxzdHJvbmc+VHJpcCBkdXJhdGlvbjogJHtNYXRoLmZsb29yKHJvdXRlLmR1cmF0aW9uIC8gNjApfSBtaW48L3N0cm9uZz48L3A+YDtcbiAgICAgICAgdGhpcy5pbnN0cnVjdGlvbnNSZWYuY3VycmVudC5pbm5lckhUTUwgPSBgJHtkdXJhdGlvbn0ke3N0ZXBzfWA7XG5cbiAgICAgICAgaWYgKHRoaXMubWFwLmdldFNvdXJjZSgncm91dGUnKSkge1xuICAgICAgICAgIHRoaXMubWFwLmdldFNvdXJjZSgncm91dGUnKS5zZXREYXRhKGdlb2pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWFwLmFkZExheWVyKHtcbiAgICAgICAgICAgIGlkOiAncm91dGUnLFxuICAgICAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICAgICAgZGF0YTogZ2VvanNvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgJ2xpbmUtam9pbic6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICdsaW5lLWNhcCc6ICdyb3VuZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFpbnQ6IHtcbiAgICAgICAgICAgICAgJ2xpbmUtY29sb3InOiAnIzM4ODdCRScsXG4gICAgICAgICAgICAgICdsaW5lLXdpZHRoJzogNSxcbiAgICAgICAgICAgICAgJ2xpbmUtb3BhY2l0eSc6IDAuNzUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWFya2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgbWFya2VyIG9mIG1hcmtlcnMpIHtcbiAgICAgICAgICBtYXJrZXIuYWRkVG8odGhpcy5tYXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6ICdtYXAnIH0pO1xuICB9XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZHJlc3NlcyAmJiB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgIHRoaXMuZ2V0RGlyZWN0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNYXAoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICBpZiAocHJldlByb3BzLmZyb21Db29yZGluYXRlcyAhPT0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgICAgdGhpcy5nZXREaXJlY3Rpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdE1hcCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByZXZQcm9wcy5hZGRyZXNzZXMgIT09IHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hZGRyZXNzZXMgJiYgdGhpcy5wcm9wcy5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gcmVuZGVyRXJyb3IodGhpcyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUudmlldyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICByZXR1cm4gKDxkaXY+TG9hZGluZzwvZGl2Pik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IHJlZj17dGhpcy5pbnN0cnVjdGlvbnNSZWZ9IHN0eWxlPXt7XG4gICAgICAgICAgICAgIG1heEhlaWdodDogJzMwMHB4JyxcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgICAgICAgfX0gY2xhc3NOYW1lPVwiY29sXCIgaWQ9XCJtYXBib3hHTEluc3RydWN0aW9uc1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiByZWY9e3RoaXMubWFwUmVmfSBjbGFzc05hbWU9XCJjb2xcIiBzdHlsZT17eyBoZWlnaHQ6ICczMDBweCcgfX0gaWQ9XCJtYXBib3hHTE1hcFwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcGJveEdMO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgbWFwYm94VG9rZW4gPSAncGsuZXlKMUlqb2liVzFqYldsc2JHRnVJaXdpWVNJNkltTnNiMm94Ylc5aU5EQXdhWEF5YW5Cd1ltazBkM1l6TTJFaWZRLjVCNnUxRVRiclhibTZ3czBIZVM4SXcnO1xuXG5jb25zdCByZW5kZXJFcnJvciA9IChjb21wb25lbnQpID0+IHtcbiAgaWYgKGNvbXBvbmVudC5zdGF0ZS5lcnJvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInBhZC0zIGJnLWRhbmdlciB0ZXh0LXdoaXRlXCJcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLCBoZWlnaHQ6ICc0JScsIG1pbkhlaWdodDogJzEuOGVtJyB9fVxuICAgICAgPlxuICAgICAgICB7Y29tcG9uZW50LnN0YXRlLmVycm9yfVxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgY29tcG9uZW50LnNldFN0YXRlKHsgZXJyb3I6IG51bGwgfSk7XG4gICAgICAgIH19PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWF0ZXJpYWwtaWNvbnMnPmNsb3NlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5leHBvcnQge1xuICBtYXBib3hUb2tlbixcbiAgcmVuZGVyRXJyb3IsXG59O1xuIiwiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuY29uc3QgYXBpQ2FsbCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgb3B0cy5jb250ZXh0ID0gb3B0cy5jb250ZXh0IHx8IG51bGw7XG4gICAgb3B0cy5yZXNwb25zZVR5cGUgPSBvcHRzLnJlc3BvbnNlVHlwZSB8fCAnYXBwbGljYXRpb24vanNvbic7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChvcHRzLnVybCkge1xuICAgICAgdXJsID0gb3B0cy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAnbG9jYWxob3N0JyA/IGBodHRwczovL3Nyc3JmbC1zdGFnaW5nLmNvbS9gIDogJy8nO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gb3B0cy5oZWFkZXJzIHx8IHt9O1xuICAgIGF4aW9zKHtcbiAgICAgIG1ldGhvZDogb3B0cy5tZXRob2QudG9Mb3dlckNhc2UoKSxcbiAgICAgIHVybDogYCR7dXJsfSR7b3B0cy5lbmRwb2ludH1gLFxuICAgICAgcmVzcG9uc2VUeXBlOiBvcHRzLnJlc3BvbnNlVHlwZSxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICBwYXJhbXM6IG9wdHMucGFyYW1zLFxuICAgICAgZGF0YTogb3B0cy5kYXRhLFxuICAgIH0pLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhcGlDYWxsO1xuIiwiY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKGVycikgPT4ge1xuICBsZXQgZXJyb3IgPSAnJztcbiAgaWYgKGVyci5yZXNwb25zZSAmJiBlcnIucmVzcG9uc2UuZGF0YSkge1xuICAgIGlmIChlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9IEpTT04uc3RyaW5naWZ5KGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVyci5yZXNwb25zZS5kYXRhID09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEuaW5jbHVkZXMoJ21lc3NhZ2UnKSkge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLnN1YnN0cmluZygxMiwgKGVyci5yZXNwb25zZS5kYXRhLmxlbmd0aCAtIDIpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IgPSBKU09OLnN0cmluZ2lmeShlcnIucmVzcG9uc2UuZGF0YSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGVycm9yID0gZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZSA6IEpTT04uc3RyaW5naWZ5KGVycik7XG4gIH1cbiAgcmV0dXJuIGVycm9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0RXJyb3JNZXNzYWdlO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByb3BUeXBlcyB9IGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgR3JpZCwgVHlwb2dyYXBoeSwgQnV0dG9uLCBDb250YWluZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCBMb2FkaW5nQ2Fwc3VsZUltZyBmcm9tICcuLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nJztcblxuY29uc3QgRXJyb3IgPSAocHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdjb2x1bW4nIGp1c3RpZnlDb250ZW50PSdjZW50ZXInIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPGltZyBzcmM9e0xvYWRpbmdDYXBzdWxlSW1nfSAvPlxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgeyBwcm9wcz8uaXNNZXNzYWdlID9cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g2Jz5cbiAgICAgICAgICAgICB7cHJvcHMubWVzc2FnZX1cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgIDpcbiAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDYnPlxuICAgICAgICAgICAgRXJyb3I6IHtwcm9wcy5tZXNzYWdlfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgeyBwcm9wcy5yZXR1cm5Ub1xuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD0nY29udGFpbmVkJ1xuICAgICAgICAgICAgICAgIHdpZHRoPSc1MCUnXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICBwcm9wcy5yZXR1cm5UbygpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQmFja1xuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIDwvR3JpZD5cbiAgICAgIDwvR3JpZD5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbkVycm9yLnByb3BUeXBlcyA9IHtcbiAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICByZXR1cm5UbzogUHJvcFR5cGVzLmZ1bmMsXG4gIGlzTWVzc2FnZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFcnJvcjtcbiIsImV4cG9ydCBkZWZhdWx0IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNKQ0FZQUFBRGtNVEFEQUFBS3htbERRMUJKUTBNZ1VISnZabWxzWlFBQVNJbVZsd2RZVTFrV2dPOTdMNzNRQWhHUUVub1RwRmNwb1ljdUhXeUVKSkJRWWt3SUtqWlVCa2R3TEtoSVV3UWNGRkZ3TElDTUJiRmdSVkVCK3dRWlZOUnhzQ0FxS3Z1QUpjenNmcnY3N1huZnlmM2ZlZWVlYys3OTd2MitFd0NvQkxaSWxBRXJBWkFwekJKSEJuZ3o0aE1TR2ZqZkFRd1FvQXdBd0xBNUVoRXpJaUlFWlRBMS9sMCs5Z0JvZkx4ak9SN3IzNy8vVjFIbThpUWNBS0FJbEpPNUVrNG15c2RSZmNNUmliTUFRUGFoZG9PbFdhSnh2b3l5cWhndEVPVkg0NXc2eVVQam5EekJHTXlFVDNTa0Q4cnFBQkFvYkxZNEZRQ0tJV3BuWkhOUzBUZ1VYNVN0aFZ5QkVHWDBIWGh3K0d3dXltaGVNQ3N6Yy9FNHkxQTJUZjVMbk5TL3hVeVd4MlN6VStVOHVaWUpJZmdLSktJTTl2TC9jenYrdDJSbVNLZHlHS05LNFlzREk5R1JqdTdadmZURndYSVdKb2VGVDdHQU8rRS93WHhwWU13VWN5UStpVlBNWmZzR3krZG1oSVZNY1lyQW55V1BrOFdLbm1LZXhDOXFpc1dMSStXNVVzUSt6Q2xtaTZmelN0Tmo1SFkranlXUG44T1BqcHZpYkVGczJCUkwwcU9DcDMxODVIYXhORkplUDA4WTREMmQxMSsrOWt6Slg5WXJZTW5uWnZHakErVnJaMC9YenhNeXAyTks0dVcxY1htK2Z0TStNWEovVVphM1BKY29JMEx1ejhzSWtOc2wyVkh5dVZub2daeWVHeUhmd3pSMlVNUVVBMS9nQjBMUWh3RmlnQzJ3Qnpib2J5Z0FXYnhsNDJjVStDd1dMUmNMVXZsWkRDWjZ5M2dNbHBCak5ZdGhhMjFyRGNENG5aMDhFdS92VGR4RmlFNll0b25RK0M3b21VZHFwbTNKbWdBMG8rZElnemh0TTl3UGdHSThBRTI1SEtrNGU5STJmcDBBRnBDQUlsQUZHa0FIR0FCVFlJbFc1Z2pjZ0JkYWNSQUlCOUVnQVN3RUhNQUhtVUFNbG9LVllDM0lCNFZnSzlnSnlrQWxxQUVId0dGd0ZEU0RVK0FjdUFTdWdWdWdHendFTWpBQVhvRWg4QkdNUWhDRWg2Z1FEZEtBZENFanlBS3loWndoRDhnUENvRWlvUVFvQ1VxRmhKQVVXZ210aHdxaElxZ01xb0xxb0YrZ2s5QTU2QXJVQmQySCtxQkI2QjMwQlVaZ0Nxd0thOFBHOEd6WUdXYkN3WEEwdkFCT2haZkFPWEFldkJrdWdhdmhRM0FUZkE2K0JuZkRNdmdWUEl3QWhJelFFVDNFRW5GR2ZKQndKQkZKUWNUSWFxUUFLVWFxa1Fha0ZlbEE3aUF5NURYeUdZUEQwREFNakNYR0RST0lpY0Z3TUVzd3F6R2JNR1dZQTVnbXpBWE1IVXdmWmdqekhVdkZhbUV0c0s1WUZqWWVtNHBkaXMzSEZtTnJzU2V3RjdIZDJBSHNSeHdPUjhlWjRKeHdnYmdFWEJwdUJXNFRiamV1RWRlRzY4TDE0NGJ4ZUx3RzNnTHZqZy9Icy9GWitIeDhLZjRRL2l6K05uNEEvNGxBSnVnU2JBbitoRVNDa0xDT1VFdzRTRGhEdUUxNFRoZ2xLaEdOaUs3RWNDS1h1Snk0aGJpUDJFcThTUndnanBLVVNTWWtkMUkwS1kyMGxsUkNhaUJkSkQwaXZTZVR5ZnBrRi9KY3NvQ2NTeTRoSHlGZkp2ZVJQMU5VS09ZVUg4cDhpcFN5bWJLZjBrYTVUM2xQcFZLTnFWN1VSR29XZFRPMWpucWUrb1Q2U1lHbVlLWEFVdUFxckZFb1YyaFN1SzN3UnBHb2FLVElWRnlvbUtOWXJIaE04YWJpYXlXaWtyR1NqeEpiYWJWU3VkSkpwVjZsWVdXYXNvMXl1SEttOGlibGc4cFhsRitvNEZXTVZmeFV1Q3A1S2pVcTUxWDZhUWpOZ09aRDQ5RFcwL2JSTHRJR1ZIR3FKcW9zMVRUVlF0WERxcDJxUTJvcWF2WnFzV3JMMU1yVlRxdko2QWpkbU02aVo5QzMwSS9TZStoZlptalBZTTdnemRnNG8ySEc3UmtqNmpQVnZkUjU2Z1hxamVyZDZsODBHQnArR3VrYTJ6U2FOUjVyWWpUTk5lZHFMdFhjbzNsUjgvVk0xWmx1TXprekMyWWVuZmxBQzlZeTE0clVXcUZWbzNWZGExaGJSenRBVzZSZHFuMWUrN1VPWGNkTEowMW5oODRablVGZG1xNkhya0IzaCs1WjNaY01OUWFUa2NFb1lWeGdET2xwNlFYcVNmV3E5RHIxUnZWTjlHUDAxK2szNmo4MklCazRHNlFZN0RCb054Z3kxRFVNTlZ4cFdHLzR3SWhvNUd6RU45cGwxR0UwWW14aUhHZTh3YmpaK0lXSnVnbkxKTWVrM3VTUktkWFUwM1NKYWJYcFhUT2NtYk5adXRsdXMxdm1zTG1ET2QrODNQeW1CV3poYUNHdzJHM1JOUXM3eTJXV2NGYjFyRjVMaWlYVE10dXkzckxQaW00VllyWE9xdG5xeld6RDJZbXp0ODN1bVAzZDJzRTZ3M3FmOVVNYkZac2dtM1UyclRidmJNMXRPYmJsdG5mdHFIYitkbXZzV3V6ZTJsdlk4K3ozMk45em9EbUVPbXh3YUhmNDV1amtLSFpzY0J4ME1uUktjcXB3Nm5WV2RZNXczdVI4MlFYcjR1Mnl4dVdVeTJkWFI5Y3MxNk91ZjdwWnVxVzdIWFI3TWNka0RtL092am45N3ZydWJQY3FkNWtId3lQSlk2K0h6RlBQaysxWjdmblV5OENMNjFYcjlaeHB4a3hqSG1LKzhiYjJGbnVmOEI3eGNmVlo1ZFBtaS9nRytCYjRkdnFwK01YNGxmazk4ZGYzVC9Xdjl4OEtjQWhZRWRBV2lBME1EdHdXMk12U1puRllkYXloSUtlZ1ZVRVhnaW5CVWNGbHdVOUR6RVBFSWEyaGNHaFE2UGJRUjJGR1ljS3c1bkFRemdyZkh2NDR3aVJpU2NTdmMzRnpJK2FXejMwV2FSTzVNcklqaWhhMUtPcGcxTWRvNytndDBROWpUR09rTWUyeGlySHpZK3RpUitKODQ0cmlaUEd6NDFmRlgwdlFUQkFrdENUaUUyTVRheE9INS9uTjJ6bHZZTDdEL1B6NVBRdE1GaXhiY0dXaDVzS01oYWNYS1M1aUx6cVdoRTJLU3pxWTlKVWR6cTVtRHllemtpdVNoemcrbkYyY1Yxd3Y3Zzd1SU0rZFY4UjdudUtlVXBUeUl0VTlkWHZxSU4rVFg4eC9MZkFSbEFuZXBnV21WYWFOcEllbjcwOGZ5NGpMYU13a1pDWmxuaFNxQ05PRkZ4YnJMRjYydUV0a0ljb1h5WmE0THRtNVpFZ2NMSzZWUUpJRmtwWXNWYlE1dWk0MWxmNGc3Y3YyeUM3UC9yUTBkdW14WmNyTGhNdXVMemRmdm5INTh4ei9uSjlYWUZad1ZyU3YxRnU1ZG1YZkt1YXFxdFhRNnVUVjdXc00xdVN0R2NnTnlEMndsclEyZmUyTmRkYnJpdFo5V0IrM3ZqVlBPeTgzci8rSGdCL3E4eFh5eGZtOUc5dzJWUDZJK1ZId1krZEd1NDJsRzc4WGNBdXVGbG9YRmhkKzNjVFpkUFVubTU5S2ZocmJuTEs1YzR2amxqMWJjVnVGVzN1MmVXNDdVS1JjbEZQVXZ6MTBlOU1PeG82Q0hSOTJMdHA1cGRpK3VISVhhWmQwbDZ3a3BLU2wxTEIwYStuWE1uNVpkN2wzZVdPRlZzWEdpcEhkM04yMzkzanRhYWpVcml5cy9MSlhzUGRlVlVCVlU3VnhkWEVOcmlhNzV0bSsySDBkUHp2L1hGZXJXVnRZKzIyL2NML3NRT1NCQzNWT2RYVUh0UTV1cVlmcnBmV0RoK1lmdW5YWTkzQkxnMlZEVlNPOXNmQUlPQ0k5OHZLWHBGOTZqZ1lmYlQvbWZLemh1Tkh4aWhPMEV3Vk5VTlB5cHFGbWZyT3NKYUdsNjJUUXlmWld0OVlUdjFyOXV2K1UzcW55MDJxbnQ1d2huY2s3TTNZMjUreHdtNmp0OWJuVWMvM3RpOW9mbm84L2YvZkMzQXVkRjRNdlhyN2tmK2w4QjdQajdHWDN5NmV1dUY0NWVkWDVhdk0xeDJ0TjF4MnVuN2poY09ORXAyTm4wMDJubXkyM1hHNjFkczNwT25QYjgvYTVPNzUzTHQxbDNiM1dIZGJkMVJQVGM2OTNmcS9zSHZmZWkvc1o5OTgreUg0dytqRDNFZlpSd1dPbHg4VlB0SjVVLzJiMlc2UE1VWGE2ejdmdit0T29wdy83T2YydmZwZjgvblVnN3huMVdmRnozZWQxTDJ4Zm5CcjBIN3oxY3Q3TGdWZWlWNk92OC85US9xUGlqZW1iNDM5Ni9YbDlLSDVvNEszNDdkaTdUZTgxM3UvL1lQK2hmVGhpK01uSHpJK2pJd1dmTkQ0ZCtPejh1ZU5MM0pmbm8wdS80citXZkRQNzF2bzkrUHVqc2N5eE1SRmJ6SjVvQlJCVTRaUVVBTjZoZlFJMUFRRGFMUUJJOHlaNzZnbUJKdjhIVEJENFR6elpkMCtJSXdBMWJRQkU1d0lRZ282bDZHaU1xcUlYQUJHb1Juc0IyTTVPcnY4VVNZcWQ3V1FzY2pQYW1oU1BqYjFIKzBlOEdRRGZlc2ZHUnB2SHhyN1Zvc1UrQUtEdDQyUXZQeTVLaHdEWXU4TEJLU3preGtqYk1QZ1grUWZXeUJJUDU4c2ttZ0FBQUZabFdFbG1UVTBBS2dBQUFBZ0FBWWRwQUFRQUFBQUJBQUFBR2dBQUFBQUFBNUtHQUFjQUFBQVNBQUFBUktBQ0FBUUFBQUFCQUFBQWdLQURBQVFBQUFBQkFBQUFpUUFBQUFCQlUwTkpTUUFBQUZOamNtVmxibk5vYjNUN25pSHZBQUFCMW1sVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MExqQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0eE1qZzhMMlY0YVdZNlVHbDRaV3hZUkdsdFpXNXphVzl1UGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBWYzJWeVEyOXRiV1Z1ZEQ1VFkzSmxaVzV6YUc5MFBDOWxlR2xtT2xWelpYSkRiMjF0Wlc1MFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrTVRNM1BDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDbnYxdUNVQUFCYk1TVVJCVkhnQjdWMEpjQlhuZmY4REFpUnVjVW5pRWtqaXhnWnhPQml3elkyZE9CN0hTV2FhZW94blBFMmF5YlJPM002a1NUc2V0MDZQVE51a0dYZnFacExZY1JMaXhyWGJTUnB6R0FIR0J6RUlqSVV3Nk9JUTRoUWdjUWtFUW9qK2Y3djczOTIzYjkvVDI3ZlgwOVArTlUvZjdyZmY4ZisrMys4NzlydTJ6MTBXaXFUWDVrRGZYcHZ5S09GS0RrUUU2T1ZFaUFnUUVhQ1g1MEF2VDM1VUEwUUU2T1U1ME11VEg5VUFFUUY2ZVE3MDh1UkhOVUJFZ0Y2ZUE3MDgrVGxCcHg4RHp5MVgydWxHeHgzSzZkdUhoZzBlUUVQeStnZXRSaFNmbGdPQkVHQkRSVDFWMXB5blQ0KzMwdkd6MTlTbyt4Z1lEQnMwZ01vbURLZjVaYU5veVp4Q1dsRSszbmdZWGZtYUEzMzhtZ3phdktlSmZyUGpDTDEvNEt5YUFCUGdraUxEeXJqQ3M1RkRCOUxqRDViUVUydktxTGhncURpUFRCOXl3SE1DdkZ0MWhsNTZxNXFxanJRUXhlS3FxRzlZR1ZkNnVpeFdkem1BWng2ZVJzOTkrZDZvbWRBenlkc0x6d2lBdHYzNVZ5dnAxOXNhNGpRMGNEV3VGRWVXVzlnQmRJaitlc0szQmZsNTlQejZCZlRJZlJPVlo5RS83M0xBRXdLY2FMNUd6Lzc3SDZqNjZFVmRNd05iNDBwNWFMbUZuUjNvZWtEYUJSWXRmT3VMOTlDelQ4eXhQb3J1WGVTQWF3TFVORjJtei83VlJrVUZBMXZqeXZKQVZ6VlYwSFVQdU9qVGg5YXZuVXAveTdWQkpON2tnS3UzZ0ZNWDJ1aFBmL0NlVm1rN0ExMXhiZkdDSk1VdFQyTFF6ZkxMclEwMHNGOWYrdTZUNVdicjZEck5ITkNiMm5UOC84WEx1K25VK2V2c1ZRTUpodnkwQUZIUzhjTWZJdU5YZnhzM0t2QTYrQUJkZmxvNGlsL042ODgyMTlFdnQ5WnJUeUxEVFE2a1RZQy8zN0NmOXRXZU44QUVzSnA0QWJvQURoTkJneHdHUVlqKzdsZjdsWEVGTGNySVNETUgwaUxBWGdiKzFVMjFLaklLTUdvcFQxYlNCVUF4RlgybGxHdlZ2QmwwY1djR1hXR0NpV2pmZitOQW1zbU92RWtPcEVXQWwvNzNVNlZhbDVLdUF3ZHc1TWVYY1NBaVZsZWdTK0NxK2RHaDgvVDJSMDBJTlpJMGM4QXhBVDQ0ZUk0Ky9MUlpiYzg1VW11YjdnUjB3QmpuM295eGtxZzRpeGdPdmZwTzFCZElFM3ZGbTJNQ3ZMbnpxR2VnNjRySFlSeG5FUU82N284dkRoeHJwZDA4enhCSmVqbmdpQUJ0N2JkcDQyNjF5bzBydVlnL1FmVU9PTVc5cm1ZY3huRVcxdUIwcjlMMHdJUzh2ZnVrL2l5NmNKWURqZ2lBaVowWUlNMkFXenB5Zm9PdUpGUGp6QnRjSzBXU1hnNDRJa0JsL1lXNFVvNW9FUWgrUVlLT3ZvY2FwL29HOG9mRHpWQWxFb2M1NElnQU5TY3U2Y0VuQkYwcmxlYTNBWlVhOGlDV1ExckZvWWRycmQ2VkI1cFhLK2pTQk1ETjlrKzBhV2M5cE9naWxSeHdSSUJUelczMkpWMndoYWxMcktXNXRkQ2RhQmRwZ1c0T25xOS9VUkUvQzJtTko3cVB6d0ZIQkRoMythYlNCMUNDTVFPZ2h4dHI2UWgwazllRUpkM2tScUtVUGduTXZRM0diS1E4ajh6a09aQXlBVG82dTZ3MXVSWnlMQ3BwZzg2aFFSbk1HVWlOb0VRUUc3eGlaUVlkRnZDSDM0NzlaM0FiaVlNY1NKa0FXTUJwU0N3cVlZTGUxeFQ1ejdaRWcwSUdScWxkcFV5QXZrd0FMTjVVcTRIWWpwdzFLaW5CZWlkTjQ0dFU3WWpVVFVrM2d5NXhTNjFRZmR6b3FNcXp5RXljQXlrVEFFRk1HRE5FSDV5eEJwa0s2SW5jS0c4TVdvQUNKRXdJRkZSK3BwS3VQT0IvVnJjSXArS1RxQm1RL0VuRmRFU0FxUk9HeFlTWkNGQnpTVS9rUmtBM2c1Z3U2RXBZV2d2MW4yL1h4T2dZM1NUUEFVY0VtRmM2U3UrZ0FWaEZMTlc3dVdxM3VoRXZadEJGUGFjbDNRdzZ3a0M4OGxkNzhvb0VHNW5kNUlBakFtRFRoaUpKUU5majA5d29RTEdsRTlETmJxVldVTUtSTURrOEFWdE1QVjYrMkZZVkRRcVo4eVBadFNNQ2xCVU5WV1lDNFFrWkw5VzdIb0VBQkpQRkRLUnFrN2hOdDNPYkRIUUpUOHk3SEtmOGZ2VGJRMklkbWQza2dDTUNJS3cvLzhJY0JYZzkzQXdCWGRYSFVPYW9iRUhURlkwdTdITEFNUUZXbFk5RDhUZCtmR2xYZWhHdzhyUDAzdTNjV3NPVGFoMm1WYVNVdzFURlVFYS80b3Z0VVRNZ0daVFVkRXlBMmNVamxBQ3RRT3FBODFQcmU3clZyUktBanBhcW54ZWc2MFRpSVAvNWZ6NVZBNDcrSjgwQnh3UkFhRjkvZElZU3FCbDBmWUFBSlo3Rkw5QlZvbWdWa0lWRTFqaWJMbURKZWlUSmNpQXRBcXllUDE2cDNyc0YzUXlReWdzdXBNYWZWYkZFMWJzWmRMMlVhK0ZaUVZmQzFKcWRiUWZPV2FPSTdpMDVrQllCNXBXTTVDS29JaEFIZ0JsMExUSURjZzAxa3hLZWdHN3VaMmg2SWFZZHZGTTVrdVE1a1BiV01HemJma1VtWCtKeFZjcTVYZFJHNTgzOFZBMUFEMGEvTU55QWFER2lBVzIyczNyYlUzZVJtbmtLdTJCRXJ0bFpZTmZ0N2UzVTJ0cEtWNjVjb2V2WHI5T3RXN2ZveXRXck5HVHdZTXJKeWFIYzNGd2FPblFvRFI4K25FYVBIazM5K3ZVTFREZUpLRzBDckM0dm9sY3NTN0pSMHUwa1NOQWxmb2x6RzljQ1R5NHZFV3ZmelR0Mzd0REpwcE4wNXV3WnVuVDVzbTE4YlV3R1JaZ1k1NXFOcFd5RkJRVTBidHc0S2lvcXN2WG5oNldyM2NGbHo3eVZFU1ZkTWtaQWwzdVlEODR1b0ZlL3VjUnM1ZHQxUTBNREhUdDJqRHFaQkc1bDN0eTVOSDY4LzBmbHBOVUhrTVE5dGFwTUxoVVRBTWpQZUlCYVFYb0JXdGRCdGRLZHhQY2oySUcwNjVvcjhRTFRMQkpmTFBpRzYvZDU5MUJyVzRmWmkrZlh6VnlLZCs3Y1NmVk1BQy9BaDRKVkJ3NVFaV1VsdGJXMWVhNnZPVUJYQkZqRGcwTEpBTkI3N3dZZWV0eCtnbzVJZFA3d2haK0RRdlgxOWJUdjQ0L3ArbzBiZXRxOHVyaHc4U0o5OE9FSGRPYU1mNTFaVndSWU1tdXNLYTBxeW9sQU53T3VkK2dFSlpnc1pwNm9Oa2J3eVlpbStvd0YzVHhQNGRmcllIVjFOVFVjT1dJbzZjTlZWOWRkK3FTcWlvNGRQKzVENk9wb3JhdUEvK2loRXEyQ1Z3SFFVZVJRemFEcmtTUUJYWGVqWGJnQkhVRkkvTnVxejlIMTlrNXI4Szd1RDNBVmZmTFVLVmRoT1BGY1UxTkR4eHNiblhoSnlhMnJHZ0F4cko3SFU4UlNkUGxlTWgybUxxNUFsOERGVEZ6U0VaODFmaUhSMW1ydnBvanI2dXJvMU9uVGV2S0N1amg4K0RDL05YZzd1T1dhQU12dkxZckxkQ1ZEUEFOZHpWNEpEbzI3dVhySDAwU2dnNWlnRGY1NzFReWNQWHVXamh3TmJ5c2FtcDJiTjI4cXFmTGluMnNDUUlrbmxoU3J1Z2hLTUZta3pLcDNxaFA1THlVVHBpcnhyaVU0SytobXdIRU5rZkRNb0p1SnNubi9XVktXdHF2TzAvcmYxZFZGTmJYaExqbTdmYnVUMEJ4NEpaNFFBSU5DU3JlYnRZcUgwVkJWUUhJTHVvUW80U1VDSGU3RURjd0tsM01EZU05dmIvZXU5RWs2bkpwbnVCYTZjTjZiTGZIZUVHQmVrUTY4TlRGbUFOUm44UlJKcGFSTHVCSmVxcUREbjlRWWJnaUFhamZNcWwvU0wrWlJIbkR5UWp3aEFPYi9QLzhaNHhSUEFRbW1Lc0dEdnBBUG5oYmdSWXZmN1QxRjZYNG04N2hQcjJHaW0xT3poZWNZRWcwMU93bkxFd0lnd3BWekMvWHFWbFVnRm5RcDVUQ1R0ZW1xWDZQcWRsTFNIK0dCcVI4OFhVN1ZQL3dzdmZtWFM1V2dSQXNsVG82OGdvKzRjU3FZMVBIclBkeXBMbWIzWnp4NEUwbDdNc2lzQ0s1WHo4VUVCckxiRUFWczdSWWRNck5JNXkzR1RuTWlvS21kT01PRlVhTVlkbzh0R2s5cjdpMmtOUnovd1A2eGZQN3FtbEw2NlRhanFrU2NhQWJXc25zbmttbWxYM1J2UHQ5TXMyZlBsdHUwVE04SWtEdWdINjJiWDBSYnRYMzZWdkNnblJWME02Qk9RUC9pL1pNWTlBSUd2VkJkZnBZZzZXdjRGZlVuSmdMQTJYOS9kSkwrNWFsNUNYekVXOS9nSVY0L0JtRGlZM0p1Z3c3cHRXdlhsQ2xsNTc1Vkg1NFJBTUd0bmp1TzN2a2t0b3J0RG5UNHM1TEZUQXc4aDN4bFdiRUMrSW81QmFwRkN2L3ZLK09GS3l6VzhON2xDYUlWczgzRDJJa0R5OVRTTHhwZjVmVUZXRk9Rcm5oTEFINGJnSGdGK3RNclNwU1N2blRHbUhUVFIrczVqRi9zbEdaQWJXTzI4dEJ3S2dUQUlvN0dFeWZTampzSWo5RFJqWGhLZ0tGNU9iU1MyOWZ0bk1GUzZxUnFoNUtwbFBTdnJpNVZTdm9pN3NWN0lXdnZLV0FDSEk4aDVZWVBtK2lmdm5KdnQ4Rm5ldWxIQXR5T0NucEtBQ2kwY200QmJlZWV0bHJXVk5CaEx5TEVrSHVZMzNoa0dxM21OcjE4Y3I3WjJwUHJCMmFNMXNHL2ErcVZmbGpmUXN1bUpTWVo1dUZQTkRWNW9vT2ZnWFIydXB2azhwd0E2STMvOVlicW1EUmJRVWNUOGExSHB5czk5OW1XSGNjeEhqMjYrV1B1UC94Nmx3RW00a2N6a0l3QVdOblRHOFJ6QW96aUR6NHRtem1HUHFqbEkrVk1na3ovenVNenVhUVhFdllZQmlscnVYYlpvQkZBbXFSWDNtdWtGNzlrL3dxRm5uV1FVNzF1OGdLTFM5MUk3SXV6bTVCTWZwVXBZcjRINlBKYlBHMDBmWDNkMU1EQmgxcXJ1TWV2TkVuOEQ3V1IxRWg3ajdiaWNaejBwTktQbGNWdXhCY0M0UDBid0lzZzgvZlVYeVNjTWhhV2ZHbnhCQ1hxTHFhQy9EWWZORmJraWw1NHJRcGpybC9pZDJvT0dUTEVxWmNZOTc0UW9DZy9WeWx4YXFuaitYdnVmT0ZYSWQ4UWpGRWhtQnMwQXdCZUJMWEF5enVPeTYxdTlxVFNENld4cDhDTitFSUFLUFEzM0w1S3IxdWFnUXFiRXVkR2VTZCtIK2JYUWFuK3BRbEE0cXVhak5ORXNJSGp0SThMTUozb200cmJ3WU1HMFdEZVpPSkdmQ01BeHVjRmVGRndaODBGMzVkb1MxeFdFek9XWDFnd1R0Mnl6ZzlSRjBBL2N6UFEwMHAvWWFHek9RMXJudURlTndJVWoxR1phUzExVzZ2ajIxMDd4Znl3VzNmUDJEaFMvbWlydXJ6ck11L2l3VUtMbmlUWVJlUldmQ01BRlBzMnYvYXBndkttcnVXcjRQZnZzQVROQUtTTGF3UDU0YjZHVHhQcGFhVi83Smd4Tkd4WTdLbHRTSXRUOFpVQW1IYVY0VjlVdDVDdDNBOW91K2x1OUVvTnlmbi8zUDc5NkdHZVFZUkk4d1J6NTRFbU9uc3VQR0lxQ2puOE4yWEtGSWMrN0ozN1NvQ3BoZW9yaXJ3RmlMa2x4RnJnSWRQUU1GY0V5bExHUGJYKzdieXh6M1ozdGdWanh5cTdpZDJGb3ZyMmxRQ0k0cm5QVGRmMWxGSzM5YUEzQ3hyMWdCMWN6SjgwWEFFZDRLdTFVeDlxYVBGMzc2QUQ5Vkp5NmxYcFIyUytFMkFkdjM5TDlZK2VBTHJmRy9rQUo3ZEx0QkZVT2xMQ25WTUJIdjZoMjVtYnZtZERPcXJhK3NFVzhsR2pFazlpMlhwS1l1bDd5cFhKSHBRMjdTZTZiQWxwVEdCSWJvNEN1dFJHME9kYXArL1pJTWwyYlhwWitxRk1JQ2wvZG0yWmtuQVpnb1dKMmJnd1Jmb2pNSkVKVWt1RnFWTjNjUmZ4ZS8vSWtlb3FwKzdjcHZvOEVBS1loMkdsSm5qclkvNENXUWk1ZnIzakR2Y0J0QTlaY3k2aFdZSWFNRE5kdkM3OVNHOGdCQ2puc3dVRmVJa1VFYi9EWHlBTldrNjB0TWMxQVFXNTdrLzA4RHNkNC9qWW1QeDg3eGZNQkVJQVpNNDNWazVSMkNZbERxVnVjd2h2QXdlMGs4U0ZrREFuRHVyeUd6L1g0ZnRSK3FGVVlBUlloOGtZVXpaZ0pPNDNlMDZaYklLNTNOblFvdFJHaUUzNkpLWERNcnNHR005RHZpTkdxQ2UwZXAxTGdSSGdNNlVqOWVGWGdBOEJJVGE1M0xDcEJKVGl2M1p1LzkvOCtKd092SGlibXAvWlBZQ1NraEpSMVhNek1BSkE4ejk1c0RpdS9mMFZiOVFJU2w3N3lLaHhrSEQ4QnZMUmZDV2ozQzJyOGxQL0NYeFNtQmRqL29sMERKUUFqMk1idVNhb0JQRGJYdHRDRllkajF3K0tHeS9ORzdmdjBQTy9xMVA3SVJ5djlBSFdGdHhTdjRidVpXUWVodVZuNlllYWdSSmdVVWsrTGVhbUFNaWJSK1ArNGZmMXZyOFN2b2c0Tk9DUmNEUS8rSDF1OWdoYXZXb1ZsVXlaQXV1TWtva1RKcmphOVpOS1lnSWxBQlQ2MnZMSmlsNENBTXhEUEIzNzNCditIZS8rZXVWcCt1bXVrenJvaUJPeWZFd0hyVncwa3dZT0hFZ3paODZrVlN0WDBwVEprNVZubWZEUDc5S1BOQVpPZ0VkNWJtQ050aS9QUEJyMytwN1Q5TDNmMTNtZTcyL3pxK2FmdlhGSUFWOENsM2pYTDhpUG1WWERDdHRaczJiUnloVXJhSEp4c1RnUHhadzBjU0s1WGZDWml1S0JFd0JLdmZENWFkUzNYL3hvM0VzN0d1bmJieDVPUmUrVTNHeGdVcTEvcllxcmZtTmhLcTRoejB4cHA0Y1d5b0tWMk9EeTh2S1ViZGNybGkrbjRrbVRZaDhHZEJkRTZVZFNYSjBWN0NZdlh0OTlpcjdKSlZNRTdiUEl3c2tqNk1YSHB0TjliS1lqbC9sTXdCYzNOZERQVGIxK2hLTmhUOHZ5YjlFTDY0cG93WUlGS1FXUERaaFlNZFIwTXBnM0ZwQnV6cHc1S2VubTFsRm9CSURpMzk5OGhQNjFRbDJUSndreEw5MSs4ajQrL0dIMkdIcU0xL0tsSWhmNVRPRFhtRmd2djNlQ0xta0hRd3JvNG4vcTRFNzZ6b0s3dFB5QkpaVHZjSEFGK3dWQkJMOTNEYUhtR2NRcmZvT1FVQW1BQkg1dll6MzkyL2JHbUxSS3V5UzF3b0tKdzJnRnIrU1p6MmJwMkNFMGVuQi93cmVNcnpMSUoxcmJxZnIwVlhyL1NDdHRPYXgrUHQ0S3VnU09ONDhmTDdsRlU0dUxhUDc4K1dMdDJNVFdNUkRCancwazZIdTRQZlhEU1lKQ0p3Q1UvWStkamZUQy85VXJlZ3ZvNWtSSXIxM3NwQjJYZTVqSlFNZnp4ZmtkOUxVNWQybEFUaDlhdW1TSkowT3IyRVVFSW5pNWx3QWRVUFJCZ3BLTUlBQVMrMjVkQzMzM3Q3WFVjRjQ5OE1BTDBDVVRueTV1cHpVbDZ0YzRNS3RXWGw0dWp6d3hyMTY5UWtlUEhuTzlyQnl2b0hnTENWSXloZ0NTNkgvY2duNkJ1alhiV3RJVGxYTDRSZlZ1bGZ0SGR0QVRKVjFVTkZRYUZhSmxTNWU2M2s1bGpVZnVzYmNBTlVLNks0d3hEdUYyczZmb2txcVpjUVNBNHVqTS9aem5DUDVyMzFscTVEWStrZGlCam9uZEovaVFpc1g5VHRDRTRRYndDQU96YXZQbXBYNUFWS0o0dTdQSCtYM0grRHhoOCtkZ3V2T0RrVWdNUmdVdEdVa0FjeVpVTmw2bWR4dGFhZi9KcTFSM3JvMU9YYmxGZC9nTWZaSGhnL3BUNmVnOG1qdCtHTjAvWlFSOXVieFFlVjA3ZVBDZ09OSE5CNVl0ODNWaVJZOUl1MmhwYVNFY005T2N3ckd1R0k3R2lHVFFrdkVFc011UXRsdWQxTWtrR01RYlBRYmt4Slp5dU4rNGFWT2NOOHlxemVYdjhJUWhGL25MSHlEQytRdjJrMTZsUE4wN1k4YU1NRlFMZmlqWWkxUU9HWmhESS9MNjI0TGZsT0JjbjZCRzF1elNoMC9DTFZxMGlFWW5XTTRkcG03eHhjY3VCVDNJenU1a3J5Qm0xYnJMSWh6bWRKR2JCS3VVbFpiU2dBRURyTmFCM1djVkFjNXpXNnQvazgrVWhXR1dNRkVEYndkMkVyWnVXVVdBY3pZYlBOSHpEMkpXelE1Y3Nldm82TEQ5dU5UVXNqTHEzNysvT0F2RnpDb0NvQWF3U2hBZlg3VEdhYjIzYTViZ0p1elNEeDJ5aGdBWW43L0ZKYzBzT2Z3dDNqRzhqejVNd2ZlQzdUNDBNWDNhTk9YN3dXSHFocml6aWdEV3pQUjZHNVUxL0ZUdUU1WCtLVHp3a3dtU05RVEFzZTVXQ2J2dHh6bStkcDkybVRGOWVpaGZDcmZtRCs2emhnRG9hRmtsakpFMXN3NlpYdnFoYTlZUUFKOTBzMHFmdnVFbEw5Rm5abWJ5aUYvZkVQV3k1bEY0T1dUVnhPVzlYYWJlY1htU3RodVZla0xwUi9xeWhnQjJvMmx1ejlKUGx3Q0pQak16aTJmN3NEVTlreVJyQ0dDM2lnYXZobUZJVHluOXlKdXNJWURkZDNOYUwxMmlPM2VDM2ZtYjZETXpRYS8wU1pYNFdVTUFiS0RFd0k5Vm1wdURQWVFpWWVubjVWNlpLRmxEQUdUdVdENC96eW9uQTFyTGozZ1RmV1ptanN0disxblQ1T1Y5VmhIQWJyRW5wbUR0NWdpOHpFUUpLOUdNWDNISTI4eEVQenN6cXdpQUJPYmw1Y2FsYysrK2ZYRjJYbHRjNE5VK2RodEc3Z2xvaDArNjZjazZBaVRhMUZsYlc1dHVIblhyNy9idDIzVG9rTEhOemV4aFVraDdDODA2Skx2T09nS1VsSlFTUHFSZ0ZZekpOeDV2dEZwN2NsOVZWVVhYYmVZaTVvVzBCdEZKb3JLT0FFajhkSjVzc1pORE5ZZDUzWDdzWGtRN2Q2bmE0UlZ6Nzk2OXRvczljYVJySnF4RjZDNHRXVW1BSXQ3OWcxMDJkbEpUVzBmVjFkWGs5b09MV1BLOWE5Y3VXL0FIOENxZlRIM3Z0K1pKajF3V2JrMUVvdnRFcFZQY280UG10STNHUUEvZTlaTjlWWFRSd29XMnI2UVNieWFaV1UwQVZOR1ZsWldFRWNGa2dsMDVXRG1FQlNSMmswcVlVMENKeDVyRDduYjdsUFBPSXk4KzVaSk1YeStmWlRVQmtGR1lKdDYvZjM5S3UzUGdIaDFJVEN5QkNDMnQ5aCtXaERzN1diQmdQaFVXdVArUWsxM1lmdGxsUFFFazQrcnE2bXpYNXNsek55WU9tc0NKSG42ZTUrZEd2MlIrZXcwQmtBbllvbFZmWDAvWXZPbUZZR0ozR2kvdUxPUGwzVDFWZWhVQkJLUXovSEhJeHNaR1YwVEFmcjdKL0tZUjlIWnVTWU5YWnE4a2dHUWV2aFNLMlVJTTQxN202MlNTeDBmSTRWTXRZM2pDQ1lkTVpJdjBhZ0tZUWJ6TFg2OVE5aFp3ai84Mkx5WERmYitjZnJ4bE81Y0c4WkV0WVM4d05ldnE1WFZFQUM5enN3ZUdsWlVqZ1QwUWg5QlVqZ2dRV3RablJzUVJBVElEaDlDMGlBZ1FXdFpuUnNRUkFUSURoOUMwaUFnUVd0Wm5Sc1QvRC94b2xxNTZqUnBsQUFBQUFFbEZUa1N1UW1DQ1wiIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIEJveCxcbiAgQ2lyY3VsYXJQcm9ncmVzcyxcbiAgR3JpZCxcbiAgUGFwZXIsXG4gIFR5cG9ncmFwaHksXG4gIENvbnRhaW5lcixcbn0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5jbGFzcyBMb2FkaW5nIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgYm9keSA9IChcbiAgICAgIDxDb250YWluZXIgbWF4V2lkdGg9J2xnJz5cbiAgICAgICAgPFBhcGVyXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBhZGRpbmc6ICc1cHgnLFxuICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTBweCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxHcmlkIGNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgIGRpc3BsYXk9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDEwMCxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IDEwLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdoMyc+TG9hZGluZy4uLjwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3MgLz5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMDAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J3N1YnRpdGxlMSc+VGhpcyBtYXkgdGFrZSBhIG1vbWVudC48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgPC9QYXBlcj5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIHtib2R5fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBNYXBib3hHTCBmcm9tICcuLi9saWIvTWFwYm94R0wuanMnO1xuaW1wb3J0IGFwaUNhbGwgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2FwaUNhbGwuanMnO1xuaW1wb3J0IGdldEVycm9yTWVzc2FnZSBmcm9tICcuLi8uLi8uLi8uLi9saWIvZ2V0RXJyb3JNZXNzYWdlLmpzJztcbmltcG9ydCBFcnJvciBmcm9tICcuLi8uLi8uLi8uLi9saWIvZXJyb3IuanMnO1xuaW1wb3J0IExvYWRpbmcgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvYWRpbmcuanMnO1xuaW1wb3J0IHsgbWFwYm94VG9rZW4gfSBmcm9tICcuLi9saWIvdXRpbHMuanMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBMb2NhbFRheGlJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvTG9jYWxUYXhpJztcbmltcG9ydCBQaG9uZUluVGFsa0ljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9QaG9uZUluVGFsayc7XG5pbXBvcnQgTWVkaWNhdGlvbkljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9NZWRpY2F0aW9uJztcbmltcG9ydCBOYXZpZ2F0aW9uSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL05hdmlnYXRpb24nO1xuaW1wb3J0IENvbnRhY3RzSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0NvbnRhY3RzJztcbmltcG9ydCB7XG4gIEJveCxcbiAgUGFwZXIsXG4gIEJyZWFkY3J1bWJzLFxuICBBcHBCYXIsXG4gIFRvb2xiYXIsXG4gIFR5cG9ncmFwaHksXG4gIExpbmssXG4gIExpc3QsXG4gIExpc3RJdGVtLFxuICBMaXN0SXRlbUJ1dHRvbixcbiAgR3JpZCxcbiAgVGV4dEZpZWxkLFxuICBCdXR0b24sXG4gIENvbnRhaW5lcixcbiAgRm9ybUNvbnRyb2wsXG4gIElucHV0TGFiZWwsXG4gIFNlbGVjdCxcbiAgTWVudUl0ZW0sXG59IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuXG5jbGFzcyBNb2JpbGVTaXRlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGVycm9yczogbnVsbCxcbiAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICB2aWV3OiAnbW9iaWxlX3NpdGUnLFxuICAgICAgaWQ6IHRoaXMuZ2V0U3RvcmVOdW1iZXIoKSxcbiAgICAgIGhhc2g6IHRoaXMuZ2V0SGFzaCgpLFxuICAgICAgc3RvcmVfbmFtZTogJycsXG4gICAgICBsb2dvOiAnJyxcbiAgICAgIHN0b3JlX2FkZHJlc3M6ICcnLFxuICAgICAgc3RvcmVfYWRkcmVzc190d286ICcnLFxuICAgICAgcGhhcm1hY3lfcGhvbmU6ICcnLFxuICAgICAgcGhhcm1hY3lfc21zOiAnJyxcbiAgICAgIGNpdHk6ICcnLFxuICAgICAgc3RhdGU6ICcnLFxuICAgICAgemlwOiAnJyxcbiAgICAgIGVtYWlsOiAnJyxcbiAgICAgIHdlYnNpdGU6ICcnLFxuICAgICAgd2ViX3ZlcnNpb246IG51bGwsXG4gICAgICBmYWNlYm9va19saW5rOiAnJyxcbiAgICAgIHBoYXJtYWN5X2hvdXJzOiAnJyxcbiAgICAgIGJ0bl9jb3VudDogMCxcbiAgICAgIHBoYXJtX2Nvb3JkczogW10sXG4gICAgICB2YWxpZDogZmFsc2UsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB7fSxcbiAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgb3BlbjogZmFsc2UsXG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgcGFnZXM6IFtcbiAgICAgICAgeyBuYW1lOiAnUmVmaWxsIC0gRW50ZXIgUnggbnVtYmVyJywgdmlldzogJ3JlZmlsbF9yZXF1ZXN0JywgaWNvbjogPE1lZGljYXRpb25JY29uLz4gfSxcbiAgICAgICAgeyBuYW1lOiAnQWRkIHRvIENvbnRhY3RzJywgdmlldzogJ2FkZF9jb250YWN0cycsIGljb246IDxDb250YWN0c0ljb24vPiB9LFxuICAgICAgICB7IG5hbWU6ICdIb3VycyBhbmQgRGlyZWN0aW9uJywgdmlldzogJ2hvdXJzX2FuZF9kaXJlY3Rpb25zJywgaWNvbjogPExvY2FsVGF4aUljb24gLz4gfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gODEwICYmIHdpbmRvdy5pbm5lckhlaWdodCA8PSAxMDgwKSB7XG4gICAgICB0aGlzLnN0YXRlLnBhZ2VzLnB1c2goe1xuICAgICAgICBuYW1lOiAnQ2FsbCBQaGFybWFjeScsIHZpZXc6ICdjYWxsX3BoYXJtYWN5JywgaWNvbjogPFBob25lSW5UYWxrSWNvbi8+LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnN0YXRlLnBhZ2VzLnB1c2goe1xuICAgICAgICBuYW1lOiAnTmF2aWdhdGlvbicsIHZpZXc6ICduYXZpZ2F0aW9uJywgaWNvbjogPE5hdmlnYXRpb25JY29uLz4sXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmllbGRzID0ge1xuICAgICAgZmlyc3RfbmFtZToge1xuICAgICAgICB0aXRsZTogJ0ZpcnN0IE5hbWUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXsxLDIwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFjayA9ICdJbnZhbGlkIEZpcnN0IE5hbWUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5maXJzdF9uYW1lLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmZpcnN0X25hbWUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGxhc3RfbmFtZToge1xuICAgICAgICB0aXRsZTogJ0xhc3QgTmFtZScsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlsgLX5dezEsMjB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5mZWVkYmFjayA9ICdJbnZhbGlkIExhc3QgTmFtZSBGb3JtYXQnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmxhc3RfbmFtZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgICAgcGhvbmVfbnVtYmVyOiB7XG4gICAgICAgIHRpdGxlOiAnUGhvbmUgTnVtYmVyJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eXFwoP1xcZHszfVspIF0/XFxkezN9Wy0gXT9cXGR7NH0vLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5waG9uZV9udW1iZXIuZmVlZGJhY2sgPSAnSW52YWxpZCBQaG9uZSBOdW1iZXIgKGkuZS4sICg5ODkpMTExLTExMTEgb3IgOTg5MTExMTExMSknO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLnBob25lX251bWJlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgICAgZW1haWw6IHtcbiAgICAgICAgdGl0bGU6ICdFbWFpbCBBZGRyZXNzJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXswLDI1NX0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5mZWVkYmFjayA9ICdJbnZhbGlkIEVtYWlsIEFkZHJlc3MgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZW1haWwuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMuZW1haWwudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGZheF9udW1iZXI6IHtcbiAgICAgICAgdGl0bGU6ICdGYXggTnVtYmVyJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15cXCg/XFxkezN9WykgXT9cXGR7M31bLSBdP1xcZHs0fS8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAnJykge1xuICAgICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5mZWVkYmFjayA9ICdJbnZhbGlkIEZheCBOdW1iZXIgRm9ybWF0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5mYXhfbnVtYmVyLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmZheF9udW1iZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHByZXNjcmlwdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByZXNjcmlwdGlvbl8wOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1ByZXNjcmlwdGlvbiBOdW1iZXInLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGVsaXZlcnk6IHtcbiAgICAgICAgdGl0bGU6ICdEZWxpdmVyeSAvIE1haWwgU2hpcG1lbnQnLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogJ05vJyxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5kZWxpdmVyeS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3NlbGVjdG9yJyxcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7IHZhbHVlOiAnTm8nLCBOYW1lOiAnTm8nIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnWWVzJywgTmFtZTogJ1llcycgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBpY2t1cDoge1xuICAgICAgICB0aXRsZTogJ0Rlc2lyZWQgUGlja3VwIFRpbWUnLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogJy0tIFNlbGVjdCBPbmUgLS0nLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3B5LmZpZWxkcy5waWNrdXAuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgY29weS5maWVsZHMucGlja3VwLmZlZWRiYWNrID0gJ1BsZWFzZSBzZWxlY3QgYSB2YWxpZCB0aW1lJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMucGlja3VwLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAnc2VsZWN0b3InLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICctLSBTZWxlY3QgT25lIC0tJywgTmFtZTogJy0tIFNlbGVjdCBPbmUgLS0nIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnTm8gUHJlZmVyZW5jZScsIE5hbWU6ICdObyBQcmVmZXJlbmNlJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1NvbWV0aW1lIFRvZGF5JywgTmFtZTogJ1NvbWV0aW1lIFRvZGF5JyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1RvbW9ycm93JywgTmFtZTogJ1RvbW9ycm93JyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1RvbW9ycm93IE1vcm5pbmcnLCBOYW1lOiAnVG9tb3Jyb3cgTW9ybmluZycgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdUb21vcnJvdyBBZnRlcm5vb24nLCBOYW1lOiAnVG9tb3Jyb3cgQWZ0ZXJub29uJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29tbWVudHM6IHtcbiAgICAgICAgdGl0bGU6ICdDb21tZW50cycsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MCwyNTV9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5jb21tZW50cy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZmVlZGJhY2sgPSAnSW52YWxpZCBGb3JtYXQnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5jb21tZW50cy5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5jb21tZW50cy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5zdGF0ZS5maWVsZHMgPSBmaWVsZHM7XG4gICAgdGhpcy5jaGFuZ2VWaWV3ID0gdGhpcy5jaGFuZ2VWaWV3LmJpbmQodGhpcyk7XG4gICAgdGhpcy5jbGVhckZpZWxkcyA9IHRoaXMuY2xlYXJGaWVsZHMuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEZ1bGxBdXRoID0gdGhpcy5nZXRGdWxsQXV0aC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0U3RvcmVOdW1iZXIgPSB0aGlzLmdldFN0b3JlTnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSeE51bWJlciA9IHRoaXMuZ2V0UnhOdW1iZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEhhc2ggPSB0aGlzLmdldEhhc2guYmluZCh0aGlzKTtcbiAgICB0aGlzLmFkZENvbnRhY3QgPSB0aGlzLmFkZENvbnRhY3QuYmluZCh0aGlzKTtcbiAgICB0aGlzLmVudGl0eSA9IHRoaXMuZW50aXR5LmJpbmQodGhpcyk7XG4gICAgdGhpcy5jb25zdHJ1Y3RYTUxEb2N1bWVudCA9IHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnN1Ym1pdEZvcm0gPSB0aGlzLnN1Ym1pdEZvcm0uYmluZCh0aGlzKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5pc01vYmlsZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYWRkUlhOdW1iZXIgPSB0aGlzLmFkZFJYTnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXREYXRhID0gdGhpcy5nZXREYXRhLmJpbmQodGhpcyk7XG4gICAgdGhpcy5sb2FkID0gdGhpcy5sb2FkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRHb29nbGVNYXBzVVJMID0gdGhpcy5nZXRHb29nbGVNYXBzVVJMLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kb3dubG9hZFRvRmlsZSA9IHRoaXMuZG93bmxvYWRUb0ZpbGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldE5hdmlnYXRpb24gPSB0aGlzLmdldE5hdmlnYXRpb24uYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZXNjcmlwdGlvbkRhdGEgPSB0aGlzLnByZXNjcmlwdGlvbkRhdGEuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdGhlbWVNb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgY2hhbmdlVmlldyh2aWV3KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6IHZpZXcgfSk7XG4gIH1cblxuICBjbGVhckZpZWxkcygpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29weS5maWVsZHMpIHtcbiAgICAgIGlmIChjb3B5LmZpZWxkc1trZXldLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGtleSA9PSAncGlja3VwJykge1xuICAgICAgICAgIGNvcHkuZmllbGRzW2tleV0udmFsdWUgPSAnLS0gU2VsZWN0IE9uZSAtLSc7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICdkZWxpdmVyeScpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJ05vJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvcHkuZmllbGRzW2tleV0ucmVxdWlyZWQpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29weS5idG5fY291bnQgPj0gMCkge1xuICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHByZXNjcmlwdGlvbl8wOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1ByZXNjcmlwdGlvbiBOdW1iZXInLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29weS5idG5fY291bnQgPSAwO1xuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICB9XG5cbiAgZ2V0RnVsbEF1dGgoKSB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICdkZW1vJ1xuICAgIHx8IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICd0PWRlbW8nKSB7XG4gICAgICByZXR1cm4gJzFIczFGMnk3NzEwMjcxMDEwODYnO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSwgMykgPT0gJ3Q9Jykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmVOdW1iZXIoKSB7XG4gICAgLy8gRm9yIGxvY2FsIHRlc3RpbmdcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09ICdsb2NhbGhvc3QnKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhcnkgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICAgIHJldHVybiBhcnlbYXJ5Lmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHByZXNjcmlwdGlvbkRhdGEoKSB7XG4gICAgY29uc3QgcHJlc2NyaXB0aW9uX3ZhbHVlcyA9IFtdO1xuICAgIGNvbnN0IHByZXNjcmlwdGlvbnMgPSB0aGlzLnN0YXRlLmZpZWxkcy5wcmVzY3JpcHRpb25zO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJlc2NyaXB0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgdmFsdWUgPSBwcmVzY3JpcHRpb25zW2ldW2BwcmVzY3JpcHRpb25fJHtpfWBdLnZhbHVlO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHByZXNjcmlwdGlvbl92YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8dGQ+eyBwcmVzY3JpcHRpb25fdmFsdWVzLmpvaW4oJywgJykgfTwvdGQ+XG4gICAgKTtcbiAgfVxuXG4gIGdldFJ4TnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmdldEZ1bGxBdXRoKCkuc3Vic3RyaW5nKDEzKS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xuICB9XG5cbiAgZ2V0SGFzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGdWxsQXV0aCgpLnN1YnN0cmluZygwLCA3KTtcbiAgfVxuXG4gIGRvd25sb2FkVG9GaWxlKGNvbnRlbnQsIGZpbGVuYW1lLCBjb250ZW50X3R5cGUpIHtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2NvbnRlbnRdLCB7IHR5cGU6IGNvbnRlbnRfdHlwZSB9KTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGRvd25sb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGRvd25sb2FkLmhyZWYgPSB1cmw7XG4gICAgZG93bmxvYWQuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkKTtcbiAgICBkb3dubG9hZC5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG93bmxvYWQpO1xuICB9XG5cbiAgYWRkQ29udGFjdCgpIHtcbiAgICBjb25zdCBzdG9yZV9uYW1lID0gdGhpcy5zdGF0ZS5zdG9yZV9uYW1lID8gdGhpcy5zdGF0ZS5zdG9yZV9uYW1lIDogJyc7XG4gICAgY29uc3QgYWRkcmVzczEgPSB0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3MgPyB0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3MgOiAnJztcbiAgICBjb25zdCBhZGRyZXNzMiA9IHRoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc190d28gPyB0aGlzLnN0b3JlX2FkZHJlc3NfdHdvIDogJyc7XG4gICAgY29uc3QgY2l0eSA9IHRoaXMuc3RhdGUuY2l0eSA/IHRoaXMuc3RhdGUuY2l0eSA6ICcnO1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZS5zdGF0ZSA/IHRoaXMuc3RhdGUuc3RhdGUgOiAnJztcbiAgICBjb25zdCB6aXAgPSB0aGlzLnN0YXRlLnppcCA/IHRoaXMuc3RhdGUuemlwIDogJyc7XG4gICAgY29uc3QgZW1haWwgPSB0aGlzLnN0YXRlLmVtYWlsID8gdGhpcy5zdGF0ZS5lbWFpbCA6ICcnO1xuICAgIGNvbnN0IHBob25lID0gdGhpcy5zdGF0ZS5waG9uZV9udW1iZXIgPyB0aGlzLnN0YXRlLnBob25lX251bWJlciA6ICcnO1xuICAgIGNvbnN0IGxvZ28gPSB0aGlzLnN0YXRlLmxvZ28gPyB0aGlzLnN0YXRlLmxvZ28gOiAnJztcbiAgICBjb25zdCB1cmwgPSB0aGlzLnN0YXRlLndlYnNpdGUgPyB0aGlzLnN0YXRlLndlYnNpdGUgOiAnJztcbiAgICBjb25zdCBzbXMgPSB0aGlzLnN0YXRlLnBoYXJtYWN5X3NtcyA/IHRoaXMuc3RhdGUucGhhcm1hY3lfc21zIDogJyc7XG4gICAgY29uc3QgdmNhcmQgPSBgQkVHSU46VkNBUkRcblZFUlNJT046My4wXG5DTEFTUzpQVUJMSUNcbk9SRzoke3N0b3JlX25hbWV9XG5BRFI7VFlQRT13b3JrOjs7JHthZGRyZXNzMX0ke2FkZHJlc3MyfTske2NpdHl9OyR7c3RhdGV9OyR7emlwfTtcbkVNQUlMO1RZUEU9aW50ZXJuZXQscHJlZjoke2VtYWlsfVxuVEVMO1RZUEU9d29yayx2b2ljZToke3Bob25lfVxuVEVMO1RZUEU9bW9iaWxlLHZvaWNlOiR7c21zfVxuUEhPVE87VkFMVUU9dXJpO1RZUEU9R0lGOiR7bG9nb31cblVSTDtUWVBFPXdvcms6JHt1cmx9XG5FTkQ6VkNBUkRcbiAgICBgO1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiB2Y2FyZC50cmltKCksXG4gICAgICBmaWxlbmFtZTogdGhpcy5zdGF0ZS5zdG9yZV9uYW1lLnJlcGxhY2UoLyhcXHN8KFxcLnwgXFwuKSkvZywgJycpICsgJy52Y2YnLFxuICAgICAgY29udGVudF90eXBlOiAndGV4dC92Y2FyZCcsXG4gICAgfTtcbiAgfVxuXG4gIGlzTW9iaWxlKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgcmV0dXJuICgvYW5kcm9pZHxhdmFudGdvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVxcL3xwbHVja2VyfHBvY2tldHxwc3B8c3ltYmlhbnx0cmVvfHVwXFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgKGNlfHBob25lKXx4ZGF8eGlpbm8gW05DLE9SXS9pLiB0ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKTtcbiAgfVxuXG4gIGVudGl0eSguLi5hcmdzKSB7XG4gICAgY29uc3QgW2RvYywgZW50aXR5TmFtZSwgLi4uZXh0cmFdID0gYXJncztcbiAgICBjb25zdCBub2RlID0gZG9jLmNyZWF0ZUVsZW1lbnQoZW50aXR5TmFtZSk7XG4gICAgZm9yIChjb25zdCBhcmcgb2YgZXh0cmEpIHtcbiAgICAgIGlmICghYXJnKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKCcnKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKGFyZykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChhcmcpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGNvbnN0cnVjdFhNTERvY3VtZW50KCkge1xuICAgIGNvbnN0IGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCdodHRwOi8vd3d3LnNyc3BoYXJtYWN5LmNvbS9YTUwvUGF0aWVudFJlZmlsbFJlcXVlc3QnLFxuICAgICAgICAnUGF0aWVudFJlZmlsbFJlcXVlc3QnLFxuICAgICAgICBudWxsKTtcblxuICAgIGNvbnN0IHJvb3QgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgIGNvbnN0IHJ4ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5zdGF0ZS5idG5fY291bnQ7IGkrKykge1xuICAgICAgLy8gQXZvaWQgZW1wdHkgdmFsdWVzXG4gICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9uc1tpXVtgcHJlc2NyaXB0aW9uXyR7aX1gXS52YWx1ZSkge1xuICAgICAgICByeC5wdXNoKHRoaXMuc3RhdGUuZmllbGRzLnByZXNjcmlwdGlvbnNbaV1bYHByZXNjcmlwdGlvbl8ke2l9YF0udmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1RvJywgdGhpcy5zdGF0ZS5pZCkpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnRnJvbScsICdzcnN3ZWInKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdTZW50VGltZScsIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSkpO1xuICAgIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgJiYgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlICE9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgIGNvbnN0IHRvbW9ycm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAoNjAgKiA2MCAqIDI0ICogMTAwMCk7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodG9tb3Jyb3cpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgICAgIGxldCBob3VyID0gJyc7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlID09ICdUb21vcnJvdyBNb3JuaW5nJykge1xuICAgICAgICBob3VyID0gJzknO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgPT0gJ1RvbW9ycm93IEFmdGVybm9vbicpIHtcbiAgICAgICAgaG91ciA9ICcxMic7XG4gICAgICB9XG4gICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICBpZiAoaG91cikge1xuICAgICAgICByZXN1bHQgPSBgJHtkYXRlfVQke2hvdXJ9OjAwOjAwYDtcbiAgICAgIH1cbiAgICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnUGlja3VwVGltZScsIHJlc3VsdCkpO1xuICAgIH1cbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ01lc3NhZ2VJRCcsIG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKCkpKTtcbiAgICBjb25zdCByeE51bWJlcnMgPSByeC5tYXAoKG51bWJlcikgPT4gdGhpcy5lbnRpdHkoZG9jLCAnUnhOdW1iZXInLCBudW1iZXIpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1J4TnVtYmVycycsIC4uLnJ4TnVtYmVycykpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnQ29udGFjdCcsXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0xhc3ROYW1lJywgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRmlyc3ROYW1lJywgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS52YWx1ZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ1Bob25lJywgdGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnZhbHVlKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRW1haWwnLCB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0ZheCcsIHRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIudmFsdWUpKSk7XG4gICAgaWYgKHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnZhbHVlID09ICdZZXMnKSB7XG4gICAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1BpY2t1cE1ldGhvZCcsICdEJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1BpY2t1cE1ldGhvZCcsICdQJykpO1xuICAgIH1cbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0NvbW1lbnQnLCB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZSkpO1xuICAgIHJldHVybiBkb2M7XG4gIH1cblxuICBhc3luYyBnZXREYXRhKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICBjb3B5LmRhdGEgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZGVmIGluIGNvcHkuZmllbGRzKSB7XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNvcHkuZmllbGRzLCBkZWYpKSB7XG4gICAgICAgICAgaWYgKGNvcHkuZmllbGRzW2RlZl0udmFsdWUpIHtcbiAgICAgICAgICAgIGF3YWl0IGNvcHkuZGF0YS5wdXNoKGNvcHkuZmllbGRzW2RlZl0udmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBjb3B5LmRhdGEucHVzaCgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFJYTnVtYmVyKCkge1xuICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICBjb3B5LmJ0bl9jb3VudCsrO1xuICAgIGNvbnN0IHByZXNjcmlwdGlvbiA9IGBwcmVzY3JpcHRpb25fJHtjb3B5LmJ0bl9jb3VudH1gO1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIG9ialtwcmVzY3JpcHRpb25dID0ge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rXG4gICAgICB0aXRsZTogJycsXG4gICAgICB0eXBlOiB7XG4gICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgb25DaGFuZ2U6ICh2YWx1ZSwgaWR4KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgaWYgKCEvXlxcZHs1LDEwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrID0gJ0ludmFsaWQgUHJlc2NyaXB0aW9uIE51bWJlciBGb3JtYXQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgfSxcbiAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnMucHVzaChvYmopO1xuICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gIH1cblxuICBnZXRHb29nbGVNYXBzVVJMKCkge1xuICAgIGNvbnN0IHVybCA9IGArJHt0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3N9XG4gICAgKyR7dGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzX3R3b31cbiAgICArJHt0aGlzLnN0YXRlLmNpdHl9LFxuICAgICske3RoaXMuc3RhdGUuc3RhdGV9XG4gICAgKyR7dGhpcy5zdGF0ZS56aXB9YDtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgZ2V0TmF2aWdhdGlvbihjb29yZF9zdHJpbmcpIHtcbiAgICBpZiAobmF2aWdhdG9yICYmIG5hdmlnYXRvci5wbGF0Zm9ybSkge1xuICAgICAgaWYgKChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignaVBob25lJykgIT0gLTEpXG4gICAgICAgIHx8IChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignTWFjJykgIT0gLTEpXG4gICAgICAgIHx8IChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignaVBhZCcpICE9IC0xKVxuICAgICAgICB8fCAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ2lQb2QnKSAhPSAtMSkpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oJ21hcHM6Ly8/cT0nICsgY29vcmRfc3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKCdnb29nbGUubmF2aWdhdGlvbjpxPScgKyBjb29yZF9zdHJpbmcgKyAnJm1vZGU9ZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgdGFnOiB0aGlzLmdldFN0b3JlTnVtYmVyKCksXG4gICAgfTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIGVuZHBvaW50OiAncXVlcnknLFxuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIGFzeW5jIChyZXNwKSA9PiB7XG4gICAgICBjb25zdCByID0gSlNPTi5wYXJzZShyZXNwLmRhdGEpO1xuICAgICAgY29uc3QgcGhhcm1fY29vcmRzID0gW3IuYWRkcmVzczFcbiAgICAgICAgKyAnICdcbiAgICAgICAgKyByLmNpdHlcbiAgICAgICAgKyAnICdcbiAgICAgICAgKyByLnN0YXRlXG4gICAgICAgICsgJyAnXG4gICAgICAgICsgci56aXBdO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0b3JlX25hbWU6IHIubmFtZSxcbiAgICAgICAgbG9nbzogci5sb2dvLFxuICAgICAgICBzdG9yZV9hZGRyZXNzOiByLmFkZHJlc3MxLFxuICAgICAgICBzdG9yZV9hZGRyZXNzX3R3bzogci5hZGRyZXNzMixcbiAgICAgICAgcGhhcm1hY3lfcGhvbmU6IHIucGhvbmUsXG4gICAgICAgIHBoYXJtYWN5X3Ntczogci5zbXMsXG4gICAgICAgIGVtYWlsOiByLmVtYWlsLFxuICAgICAgICB3ZWJzaXRlOiByLndlYnNpdGUsXG4gICAgICAgIHdlYl92ZXJzaW9uOiByLndlYl92ZXJzaW9uLFxuICAgICAgICBjaXR5OiByLmNpdHksXG4gICAgICAgIHN0YXRlOiByLnN0YXRlLFxuICAgICAgICB6aXA6IHIuemlwLFxuICAgICAgICBmYWNlYm9va19saW5rOiByLmZhY2Vib29rX2xpbmssXG4gICAgICAgIHBoYXJtYWN5X2hvdXJzOiByLnN0b3JlX2hvdXJzLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIHBoYXJtX2Nvb3JkczogcGhhcm1fY29vcmRzLFxuICAgICAgfSk7XG4gICAgfSkuY2F0Y2goIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcnM6IGdldEVycm9yTWVzc2FnZShlcnIpLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGUubG9hZGVkKSB7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBzdWJtaXRGb3JtKCkge1xuICAgIGNvbnN0IHJlZmlsbCA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCI/PicgKyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQoKSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgZW5kcG9pbnQ6ICdzdWJtaXQnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IHJlZmlsbCxcbiAgICB9O1xuICAgIGFwaUNhbGwob3B0aW9ucykudGhlbiggKHJlc3ApID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlVmlldygnc3VjY2Vzc19zdWJtaXQnKTtcbiAgICB9KS5jYXRjaCggKGVycikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IGdldEVycm9yTWVzc2FnZShlcnIpLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IGJyZWFkY3J1bWJzID0gJyc7XG4gICAgaWYgKHRoaXMuc3RhdGUudmlldyAhPT0gJ21vYmlsZV9zaXRlJykge1xuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnN0YXRlLnBhZ2VzLmZpbmQoKHApID0+IHtcbiAgICAgICAgcmV0dXJuIHAudmlldyA9PSB0aGlzLnN0YXRlLnZpZXc7XG4gICAgICB9KTtcbiAgICAgIGJyZWFkY3J1bWJzID0gKFxuICAgICAgICA8QnJlYWRjcnVtYnMgc3g9e3sgcGFkZGluZzogJzVweCcgfX0+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIHVuZGVybGluZT0naG92ZXInXG4gICAgICAgICAgICBjb2xvcj0naW5oZXJpdCdcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUudmlldyAhPT0gJ21vYmlsZV9zaXRlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ21vYmlsZV9zaXRlJyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5Ib21lPC9MaW5rPlxuICAgICAgICAgIDxUeXBvZ3JhcGh5IGNvbG9yPSd0ZXh0LnByaW1hcnknPnsgZm91bmQgPyBmb3VuZC5uYW1lIDogJ1N1Y2Nlc3NmdWwgU3VibWlzc2lvbicgfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgPC9CcmVhZGNydW1icz5cbiAgICAgICk7XG4gICAgfVxuICAgIGxldCBib2R5ID0gKFxuICAgICAgPExvYWRpbmcvPlxuICAgICk7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgYm9keSA9IChcbiAgICAgICAgPExvYWRpbmcvPlxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzKSB7XG4gICAgICBsZXQgZXJyb3IgPSAnJztcbiAgICAgIGlmICh0aGlzLnN0YXRlLmVycm9ycyA9PSAnUGhhcm1hY3kgTm90IEZvdW5kIC8gU3RvcmUgTGljZW5zZSBub3QgdmFsaWQnKSB7XG4gICAgICAgIGVycm9yID0gJ01pc3Npbmcgb3IgaW52YWxpZCBzdG9yZSB0YWcgaW4gcmVxdWVzdCc7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3IgPyBlcnJvciA6IHRoaXMuc3RhdGUuZXJyb3JzLFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLnN0YXRlLnN0b3JlX25hbWUpIHtcbiAgICAgICAgcHJvcHMucmV0dXJuVG8gPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yczogbnVsbCB9KTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGJvZHkgPSAoXG4gICAgICAgIEVycm9yKHByb3BzKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlLnZpZXcpIHtcbiAgICAgICAgY2FzZSAnbW9iaWxlX3NpdGUnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8TGlzdFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nOiAndW5zZXQnIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnBhZ2VzLm1hcCgocCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5uZXJfYm94ID0gcC5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAudmlldyA9PSAnY2FsbF9waGFybWFjeScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGhvbmUgPSAndGVsOi8vKzEnICsgdGhpcy5zdGF0ZS5waGFybWFjeV9waG9uZS5yZXBsYWNlKC9bXitcXGRdL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfYm94ID0gPExpbmsgY29sb3I9J2JsYWNrJyB1bmRlcmxpbmU9J25vbmUnIGhyZWY9e3Bob25lfT57IHAubmFtZSB9PC9MaW5rPjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtIGRpc2FibGVQYWRkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7cC5uYW1lfS0ke2lkeH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICcwLjVyZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmdjb2xvcjogJyNkZGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjYjFhYmFiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoWydyZWZpbGxfcmVxdWVzdCcsICdob3Vyc19hbmRfZGlyZWN0aW9ucyddLmluY2x1ZGVzKHAudmlldykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldyhwLnZpZXcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocC52aWV3ID09ICdhZGRfY29udGFjdHMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGNvbnRlbnQsIGZpbGVuYW1lLCBjb250ZW50X3R5cGUgfSA9IHRoaXMuYWRkQ29udGFjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFRvRmlsZShjb250ZW50LCBmaWxlbmFtZSwgY29udGVudF90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAudmlldyA9PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkX3N0cmluZyA9IHRoaXMuZ2V0R29vZ2xlTWFwc1VSTCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXROYXZpZ2F0aW9uKGNvb3JkX3N0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMjUwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnsgcC5pY29uIH08L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleEdyb3c6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnsgaW5uZXJfYm94IH08L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVmaWxsX3JlcXVlc3QnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgIHsgYnJlYWRjcnVtYnMgfVxuICAgICAgICAgICAgICA8UGFwZXIgdmFyaWFudD0nb3V0bGluZWQnPlxuICAgICAgICAgICAgICAgIDxmb3JtIGlkPSdyZWZpbGwtcmVxdWVzdCc+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MX0gc3g9e3sgcGFkZGluZzogJzIwcHgnIH19PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDQnPldlYiBSZWZpbGwgRm9ybTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9ucy5tYXAoKHAsIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0ga2V5PXtpZHh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3BbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17cFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2lkeCA9PSAwID8gcFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnRpdGxlIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgcFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0udmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLm9uQ2hhbmdlKHZhbHVlLCBpZHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5wcmVzY3JpcHRpb25zLmxlbmd0aCA8PSA5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUlhOdW1iZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+QWRkPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbCBmdWxsV2lkdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dExhYmVsPnsgdGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudGl0bGUgfTwvSW5wdXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsSWQ9J2RlbGl2ZXJ5LXNlbGVjdC1sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5Lm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudHlwZS5vcHRpb25zLm1hcCgobywgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIGtleT17YCR7by52YWx1ZX0tJHtpZHh9YH0gdmFsdWU9e28udmFsdWV9Pnsgby52YWx1ZSB9PC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogPGRpdj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1Db250cm9sIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0TGFiZWw+eyB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudGl0bGUgfTwvSW5wdXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsSWQ9J3BpY2t1cC1zZWxlY3QtbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9J3BpY2t1cC1zZWxlY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudHlwZS5vcHRpb25zLm1hcCgobywgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIGtleT17YCR7by52YWx1ZX0tJHtpZHh9YH0gdmFsdWU9e28udmFsdWV9Pnsgby52YWx1ZSB9PC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogPGRpdj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IHBhZGRpbmdUb3A6ICc1cHgnLCBiZ2NvbG9yOiAncmdiYSgwLDAsMCwuMDUnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz0gezR9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdzdWJtaXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5zdGF0ZS5maWVsZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1Ym1pdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRzW2ZpZWxkXS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoQXJyYXkuaXNBcnJheShmaWVsZHNbZmllbGRdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhZmllbGRzW2ZpZWxkXVswXVtgcHJlc2NyaXB0aW9uXzBgXS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBbMTAsIDEzLCAxNV0uaW5jbHVkZXModGhpcy5zdGF0ZS53ZWJfdmVyc2lvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZmllbGQgPT0gJ3BpY2t1cCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZmllbGRzW2ZpZWxkXS52YWx1ZSA9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJtaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17NH0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ncmVzZXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J2Vycm9yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs0fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J2NhbmNlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0nb3V0bGluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldygnbW9iaWxlX3NpdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdWNjZXNzX3N1Ym1pdCc6XG4gICAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxDb250YWluZXIgbWF4V2lkdGg9J2xnJz5cbiAgICAgICAgICAgICAgeyBicmVhZGNydW1icyB9XG4gICAgICAgICAgICAgIDxQYXBlciB2YXJpYW50PSdvdXRsaW5lZCc+XG4gICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDYnIHN4PXt7IHBhZGRpbmc6ICc1cHgnIH19PkZpbGwgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSE8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICAgICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QYXRpZW50OjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudmFsdWUgKyAnICcgKyB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGhvbmUgTnVtYmVyOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci52YWx1ZSB9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5FbWFpbDo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5GYXggTnVtYmVyOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlByZXNjcmlwdGlvbnM6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2NyaXB0aW9uRGF0YSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5EZWxpdmVyeTo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QaWNrdXA6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC52YWx1ZSB9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnZhbHVlID8gJycgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkNvbW1lbnRzOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZSB9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHN4PXt7IHBhZGRpbmc6ICc1cHgnIH19PldvdWxkIHlvdSBsaWtlIHRvIHN1Ym1pdCBhbm90aGVyIGZpbGw/PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17Nn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17eyBtYXJnaW46ICc1cHgnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0nb3V0bGluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ21vYmlsZV9zaXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17Nn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3sgbWFyZ2luOiAnNXB4JyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldygncmVmaWxsX3JlcXVlc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgWWVzXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdob3Vyc19hbmRfZGlyZWN0aW9ucyc6XG4gICAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzVweCcgfX0+XG4gICAgICAgICAgICAgIHsgYnJlYWRjcnVtYnMgfVxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiaDVcIj5TdG9yZSBIb3VyczwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUucGhhcm1hY3lfaG91cnNcbiAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLnBoYXJtYWN5X2hvdXJzXG4gICAgICAgICAgICAgIDogJ05vIHN0b3JlIGhvdXJzIGF2YWlsYWJsZSd9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImg1XCI+RGlyZWN0aW9uczwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc308L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3NfdHdvfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUuY2l0eX0sIHt0aGlzLnN0YXRlLnN0YXRlfSB7dGhpcy5zdGF0ZS56aXB9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5waG9uZV9udW1iZXJ9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkX3N0cmluZyA9IHRoaXMuZ2V0R29vZ2xlTWFwc1VSTCgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5nZXROYXZpZ2F0aW9uKGNvb3JkX3N0cmluZyk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCBibHVlJyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgR2V0IERpcmVjdGlvbnNcbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuZmFjZWJvb2tfbGlua1xuICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICA6IChcbiAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLnN0YXRlLmZhY2Vib29rX2xpbms7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCBibHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgRmFjZWJvb2sgTGlua1xuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICA8TWFwYm94R0xcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzVG9rZW49e21hcGJveFRva2VufVxuICAgICAgICAgICAgICAgICAgICBhZGRyZXNzZXM9e3RoaXMuc3RhdGUucGhhcm1fY29vcmRzfVxuICAgICAgICAgICAgICAgICAgICB6b29tPXsxNX1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdGlvbj17J2dsb2JlJ31cbiAgICAgICAgICAgICAgICAgICAgYWxsb3dGdWxsU2NyZWVuPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBhbGxvd05hdmlnYXRpb249e3RydWV9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxBcHBCYXIgcG9zaXRpb249XCJzdGF0aWNcIj5cbiAgICAgICAgICA8VG9vbGJhcj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5sb2dvID8gKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIHNyYz17dGhpcy5zdGF0ZS5sb2dvfVxuICAgICAgICAgICAgICAgICAgYWx0PXt0aGlzLnN0YXRlLnN0b3JlX25hbWV9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW46ICc1cHgnLCBib3JkZXJSYWRpdXM6ICc1cHgnLCBoZWlnaHQ6ICc1cmVtJyB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+eyB0aGlzLnN0YXRlLnN0b3JlX25hbWUgfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgPC9BcHBCYXI+XG4gICAgICAgIHtib2R5fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNb2JpbGVTaXRlO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhhc2hSb3V0ZXIsIFJvdXRlcywgUm91dGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBNb2JpbGVTaXRlIGZyb20gJy4vcGFnZXMvTW9iaWxlU2l0ZS5qcyc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IENzc0Jhc2VsaW5lIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5cbmNsYXNzIEFwcCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICNkYXJrTW9kZSA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICB0aGVtZTogJ2xpZ2h0JyxcbiAgICB9O1xuICAgIHRoaXMudGhlbWVMaWdodCA9IGNyZWF0ZVRoZW1lKHtcbiAgICAgIHBhbGV0dGU6IHtcbiAgICAgICAgbW9kZTogJ2xpZ2h0JyxcbiAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgIGRlZmF1bHQ6ICcjZWZlZmVmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy50aGVtZURhcmsgPSBjcmVhdGVUaGVtZSh7XG4gICAgICBwYWxldHRlOiB7XG4gICAgICAgIG1vZGU6ICdkYXJrJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUaGVtZSA9IHRoaXMudXBkYXRlVGhlbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZWZlcnNEYXJrTW9kZSA9IHRoaXMucHJlZmVyc0RhcmtNb2RlLmJpbmQodGhpcyk7XG4gIH1cblxuICBhc3luYyBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnByZWZlcnNEYXJrTW9kZSgpO1xuICB9XG5cbiAgYXN5bmMgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMuI2RhcmtNb2RlKSB7XG4gICAgICB0aGlzLiNkYXJrTW9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLnVwZGF0ZVRoZW1lKTtcbiAgICAgIHRoaXMuI2RhcmtNb2RlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcmVmZXJzRGFya01vZGUoKSB7XG4gICAgdGhpcy51cGRhdGVUaGVtZSgpO1xuICAgIHRoaXMuI2RhcmtNb2RlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcbiAgICB0aGlzLiNkYXJrTW9kZS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLnVwZGF0ZVRoZW1lKTtcbiAgfVxuXG4gIHVwZGF0ZVRoZW1lKGUgPSBudWxsKSB7XG4gICAgaWYgKCFlKSB7XG4gICAgICBlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcbiAgICB9XG4gICAgY29uc3QgdGhlbWUgPSBlLm1hdGNoZXMgPyAnZGFyaycgOiAnbGlnaHQnO1xuICAgIHRoaXMuc2V0U3RhdGUoeyB0aGVtZSB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoaXMuc3RhdGUudGhlbWUgPT09ICdkYXJrJyA/IHRoaXMudGhlbWVEYXJrIDogdGhpcy50aGVtZUxpZ2h0fT5cbiAgICAgICAgPENzc0Jhc2VsaW5lIC8+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPEhhc2hSb3V0ZXI+XG4gICAgICAgICAgICA8Um91dGVzPlxuICAgICAgICAgICAgICA8Um91dGUgcGF0aD0nLycgZWxlbWVudD17PE1vYmlsZVNpdGUgdGhlbWVNb2RlPXt0aGlzLnN0YXRlLnRoZW1lfS8+fSAvPlxuICAgICAgICAgICAgICA8Um91dGUgcGF0aD0nbW9iaWxlc2l0ZS8nIGVsZW1lbnQ9ezxNb2JpbGVTaXRlIHRoZW1lTW9kZT17dGhpcy5zdGF0ZS50aGVtZX0vPn0gLz5cbiAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9J20vOnRhZycgZWxlbWVudD17PE1vYmlsZVNpdGUgdGhlbWVNb2RlPXt0aGlzLnN0YXRlLnRoZW1lfSAvPn0gLz5cbiAgICAgICAgICAgIDwvUm91dGVzPlxuICAgICAgICAgIDwvSGFzaFJvdXRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHA7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IEFwcCBmcm9tICcuL0FwcCc7XG5cbmNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTtcbmNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGNvbnRhaW5lcik7XG5yb290LnJlbmRlcig8QXBwIC8+KTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDE3OTogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuX193ZWJwYWNrX3JlcXVpcmVfXy5PLmogPSAoY2h1bmtJZCkgPT4gKGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9PT0gMCk7XG5cbi8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xudmFyIHdlYnBhY2tKc29ucENhbGxiYWNrID0gKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uLCBkYXRhKSA9PiB7XG5cdHZhciBbY2h1bmtJZHMsIG1vcmVNb2R1bGVzLCBydW50aW1lXSA9IGRhdGE7XG5cdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuXHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcblx0dmFyIG1vZHVsZUlkLCBjaHVua0lkLCBpID0gMDtcblx0aWYoY2h1bmtJZHMuc29tZSgoaWQpID0+IChpbnN0YWxsZWRDaHVua3NbaWRdICE9PSAwKSkpIHtcblx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKHJ1bnRpbWUpIHZhciByZXN1bHQgPSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR9XG5cdGlmKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKSBwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtcblx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcblx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgJiYgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF1bMF0oKTtcblx0XHR9XG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMDtcblx0fVxuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHJlc3VsdCk7XG59XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rc3JzcmZsX3JlYWN0XCJdID0gc2VsZltcIndlYnBhY2tDaHVua3Nyc3JmbF9yZWFjdFwiXSB8fCBbXTtcbmNodW5rTG9hZGluZ0dsb2JhbC5mb3JFYWNoKHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgMCkpO1xuY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2ggPSB3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIGNodW5rTG9hZGluZ0dsb2JhbC5wdXNoLmJpbmQoY2h1bmtMb2FkaW5nR2xvYmFsKSk7IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBkZXBlbmRzIG9uIG90aGVyIGxvYWRlZCBjaHVua3MgYW5kIGV4ZWN1dGlvbiBuZWVkIHRvIGJlIGRlbGF5ZWRcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgWzU5Miw0NjUsMTU4LDc1Niw0OTAsMjczLDE1OSwxNTEsODQ1LDM5NCwxNDNdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyg2OTkxKSkpXG5fX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKF9fd2VicGFja19leHBvcnRzX18pO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibGVhZlByb3RvdHlwZXMiLCJnZXRQcm90byIsIk1hcGJveEdMIiwiX0NvbXBvbmVudCIsIl9pbmhlcml0cyIsIl9zdXBlciIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydHkiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiY2FsbCIsImluc3RydWN0aW9uc1JlZiIsIlJlYWN0IiwibWFwUmVmIiwic3RhdGUiLCJ2aWV3IiwiZXJyb3IiLCJtYXJrZXJzIiwiaW5pdE1hcCIsImJpbmQiLCJnZW9jb2RlTWFya2VycyIsImdldERpcmVjdGlvbnMiLCJrZXkiLCJ2YWx1ZSIsIl90aGlzMiIsInJlc3VsdHMiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJ0aGlzIiwiYWNjZXNzVG9rZW4iLCJfc3RlcCIsImNudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWRkcmVzc2VzIiwicyIsIm4iLCJkb25lIiwiYWRkcmVzcyIsInVybCIsImVuY29kZVVSSUNvbXBvbmVudCIsInRvU3RyaW5nIiwid2luZG93IiwiZmV0Y2giLCJ0aGVuIiwicmVzcCIsImpzb24iLCJkYXRhIiwicHVzaCIsImxlbmd0aCIsInNldFN0YXRlIiwiZSIsImNvbnNvbGUiLCJsb2ciLCJlcnIiLCJmIiwiX3RoaXMzIiwiZnJvbUNvb3JkaW5hdGVzIiwiam9pbiIsInQiLCJ0b0Nvb3JkaW5hdGVzIiwiYmFzZVVybCIsImNvbmNhdCIsImRpcmVjdGlvbnMiLCJzdGFjayIsIl90aGlzNCIsIm1hcGJveGdsIiwib3B0aW9ucyIsImdlb2xvY2F0ZSIsImZ1bGxzY3JlZW4iLCJjb250YWluZXIiLCJjdXJyZW50IiwiaWQiLCJzdHlsZSIsImNlbnRlciIsImZlYXR1cmVzIiwiem9vbSIsInByb2plY3Rpb24iLCJtYXAiLCJnZW9Mb2NhdGUiLCJwb3NpdGlvbk9wdGlvbnMiLCJlbmFibGVIaWdoQWNjdXJhY3kiLCJzaG93VXNlckxvY2F0aW9uIiwidHJhY2tVc2VyTG9jYXRpb24iLCJzaG93VXNlckhlYWRpbmciLCJhZGRDb250cm9sIiwiYWxsb3dGdWxsU2NyZWVuIiwiYWxsb3dOYXZpZ2F0aW9uIiwiZWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJzZXRBdHRyaWJ1dGUiLCJpbm5lclRleHQiLCJwbGFjZV9uYW1lIiwibSIsInNldExuZ0xhdCIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJzZXRQb3B1cCIsInNldEhUTUwiLCJvbiIsInNldEZvZyIsInRyaWdnZXIiLCJfcm91dGUkbGVncyQiLCJyb3V0ZSIsInJvdXRlcyIsImdlb2pzb24iLCJ0eXBlIiwicHJvcGVydGllcyIsImlubmVySFRNTCIsInN0ZXBzIiwibGVncyIsInN0ZXAiLCJtYW5ldXZlciIsImluc3RydWN0aW9uIiwiZHVyYXRpb24iLCJNYXRoIiwiZmxvb3IiLCJnZXRTb3VyY2UiLCJzZXREYXRhIiwiYWRkTGF5ZXIiLCJzb3VyY2UiLCJsYXlvdXQiLCJwYWludCIsIl9pIiwiX21hcmtlcnMiLCJhZGRUbyIsIl90aGlzNSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsIl90aGlzNiIsImNvbXBvbmVudCIsImNsYXNzTmFtZSIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImhlaWdodCIsIm1pbkhlaWdodCIsIm9uQ2xpY2siLCJldnQiLCJyZWYiLCJtYXhIZWlnaHQiLCJvdmVyZmxvdyIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImlzUmVxdWlyZWQiLCJ0b0FkZHJlc3MiLCJvcHRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb250ZXh0IiwicmVzcG9uc2VUeXBlIiwibG9jYXRpb24iLCJob3N0bmFtZSIsImhlYWRlcnMiLCJheGlvcyIsIm1ldGhvZCIsInRvTG93ZXJDYXNlIiwiZW5kcG9pbnQiLCJyZXNwb25zZSIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5jbHVkZXMiLCJzdWJzdHJpbmciLCJFcnJvciIsIkNvbnRhaW5lciIsIm1heFdpZHRoIiwiR3JpZCIsImRpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJpdGVtIiwic3JjIiwiaXNNZXNzYWdlIiwiVHlwb2dyYXBoeSIsInZhcmlhbnQiLCJyZXR1cm5UbyIsIkJ1dHRvbiIsIndpZHRoIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwiYm9vbCIsIl9SZWFjdCRDb21wb25lbnQiLCJMb2FkaW5nIiwiYm9keSIsIlBhcGVyIiwicGFkZGluZyIsIm1hcmdpblRvcCIsInhzIiwiQm94IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJDaXJjdWxhclByb2dyZXNzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiYXJnIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJfX2F3YWl0IiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJpbmZvIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJ1bmRlZmluZWQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJhcnIiLCJsZW4iLCJhcnIyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwiZGVzY3JpcHRvciIsIl90b1Byb3BlcnR5S2V5IiwiX3NldFByb3RvdHlwZU9mIiwiUmVmZXJlbmNlRXJyb3IiLCJfZ2V0UHJvdG90eXBlT2YiLCJvYmoiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIl90b1ByaW1pdGl2ZSIsIk1vYmlsZVNpdGUiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJfZ2V0RGF0YSIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsInNoYW0iLCJQcm94eSIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsInJlc3VsdCIsIlN1cGVyIiwiTmV3VGFyZ2V0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJpbnN0YW5jZSIsImVycm9ycyIsImxvYWRlZCIsImdldFN0b3JlTnVtYmVyIiwiaGFzaCIsImdldEhhc2giLCJzdG9yZV9uYW1lIiwibG9nbyIsInN0b3JlX2FkZHJlc3MiLCJzdG9yZV9hZGRyZXNzX3R3byIsInBoYXJtYWN5X3Bob25lIiwicGhhcm1hY3lfc21zIiwiY2l0eSIsInppcCIsImVtYWlsIiwid2Vic2l0ZSIsIndlYl92ZXJzaW9uIiwiZmFjZWJvb2tfbGluayIsInBoYXJtYWN5X2hvdXJzIiwiYnRuX2NvdW50IiwicGhhcm1fY29vcmRzIiwidmFsaWQiLCJlcnJvck1lc3NhZ2VzIiwiZmllbGRzIiwib3BlbiIsInBhZ2VzIiwiaWNvbiIsIk1lZGljYXRpb25JY29uIiwiQ29udGFjdHNJY29uIiwiTG9jYWxUYXhpSWNvbiIsImlubmVyV2lkdGgiLCJpbm5lckhlaWdodCIsIlBob25lSW5UYWxrSWNvbiIsIk5hdmlnYXRpb25JY29uIiwiZmlyc3RfbmFtZSIsInRpdGxlIiwidHlwZW5hbWUiLCJyZXF1aXJlZCIsIm9uQ2hhbmdlIiwiY29weSIsImZlZWRiYWNrIiwiZnVsbHdpZHRoIiwibGFzdF9uYW1lIiwicGhvbmVfbnVtYmVyIiwiZmF4X251bWJlciIsInByZXNjcmlwdGlvbnMiLCJwcmVzY3JpcHRpb25fMCIsImlkeCIsImRlbGl2ZXJ5IiwiZGlzYWJsZWQiLCJOYW1lIiwicGlja3VwIiwiY29tbWVudHMiLCJjaGFuZ2VWaWV3IiwiY2xlYXJGaWVsZHMiLCJnZXRGdWxsQXV0aCIsImdldFJ4TnVtYmVyIiwiYWRkQ29udGFjdCIsImVudGl0eSIsImNvbnN0cnVjdFhNTERvY3VtZW50Iiwic3VibWl0Rm9ybSIsImlzTW9iaWxlIiwiYWRkUlhOdW1iZXIiLCJnZXREYXRhIiwibG9hZCIsImdldEdvb2dsZU1hcHNVUkwiLCJkb3dubG9hZFRvRmlsZSIsImdldE5hdmlnYXRpb24iLCJwcmVzY3JpcHRpb25EYXRhIiwic2VhcmNoIiwiYXJ5IiwicGF0aG5hbWUiLCJzcGxpdCIsInByZXNjcmlwdGlvbl92YWx1ZXMiLCJyZXBsYWNlIiwiY29udGVudCIsImZpbGVuYW1lIiwiY29udGVudF90eXBlIiwiYmxvYiIsIkJsb2IiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJkb3dubG9hZCIsImhyZWYiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJhZGRyZXNzMSIsImFkZHJlc3MyIiwicGhvbmUiLCJzbXMiLCJ0cmltIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiX2xlbiIsIl9rZXkiLCJkb2MiLCJlbnRpdHlOYW1lIiwiZXh0cmEiLCJub2RlIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsImlzQXJyYXkiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiX2UyIiwiY3JlYXRlVGV4dE5vZGUiLCJpbXBsZW1lbnRhdGlvbiIsImNyZWF0ZURvY3VtZW50Iiwicm9vdCIsImRvY3VtZW50RWxlbWVudCIsInJ4IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwidG9tb3Jyb3ciLCJnZXRUaW1lIiwiZGF0ZSIsImhvdXIiLCJyeE51bWJlcnMiLCJudW1iZXIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJpdGVyIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9jYWxsZWUiLCJkZWYiLCJfY29udGV4dCIsInQwIiwidDEiLCJoYXNPd24iLCJ0MiIsImNvb3JkX3N0cmluZyIsInBsYXRmb3JtIiwiaW5kZXhPZiIsInRhZyIsImFwaUNhbGwiLCJfcmVmIiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJwYXJzZSIsInN0b3JlX2hvdXJzIiwiX3giLCJnZXRFcnJvck1lc3NhZ2UiLCJyZWZpbGwiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJfdGhpczciLCJicmVhZGNydW1icyIsImZvdW5kIiwiZmluZCIsIkJyZWFkY3J1bWJzIiwic3giLCJMaW5rIiwidW5kZXJsaW5lIiwiY29sb3IiLCJMaXN0IiwiaW5uZXJfYm94IiwiTGlzdEl0ZW0iLCJkaXNhYmxlUGFkZGluZyIsIkxpc3RJdGVtQnV0dG9uIiwiZ2FwIiwidGV4dEFsaWduIiwiYmdjb2xvciIsImJvcmRlckJvdHRvbSIsImJvcmRlckNvbG9yIiwiX3RoaXM3JGFkZENvbnRhY3QiLCJmbGV4R3JvdyIsInNwYWNpbmciLCJUZXh0RmllbGQiLCJmdWxsV2lkdGgiLCJzaXplIiwibGFiZWwiLCJoZWxwZXJUZXh0IiwiRm9ybUNvbnRyb2wiLCJJbnB1dExhYmVsIiwiU2VsZWN0IiwibGFiZWxJZCIsIk1lbnVJdGVtIiwibXVsdGlsaW5lIiwic3VibWl0IiwiZmllbGQiLCJtYXJnaW4iLCJmb250U2l6ZSIsImN1cnNvciIsIkFwcEJhciIsInBvc2l0aW9uIiwiVG9vbGJhciIsImFsdCIsImJvcmRlclJhZGl1cyIsInRoZW1lTW9kZSIsIl9jbGFzc1ByaXZhdGVGaWVsZFNldCIsInJlY2VpdmVyIiwicHJpdmF0ZU1hcCIsInNldCIsIl9jbGFzc0FwcGx5RGVzY3JpcHRvclNldCIsIl9jbGFzc0V4dHJhY3RGaWVsZERlc2NyaXB0b3IiLCJfY2xhc3NQcml2YXRlRmllbGRHZXQiLCJnZXQiLCJfY2xhc3NBcHBseURlc2NyaXB0b3JHZXQiLCJhY3Rpb24iLCJoYXMiLCJfZGFya01vZGUiLCJXZWFrTWFwIiwiQXBwIiwiX2NvbXBvbmVudFdpbGxVbm1vdW50IiwiX2NvbXBvbmVudERpZE1vdW50IiwicHJpdmF0ZUNvbGxlY3Rpb24iLCJfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbiIsInRoZW1lIiwidGhlbWVMaWdodCIsImNyZWF0ZVRoZW1lIiwicGFsZXR0ZSIsIm1vZGUiLCJiYWNrZ3JvdW5kIiwiZGVmYXVsdCIsInRoZW1lRGFyayIsInVwZGF0ZVRoZW1lIiwicHJlZmVyc0RhcmtNb2RlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1hdGNoTWVkaWEiLCJhZGRFdmVudExpc3RlbmVyIiwibWF0Y2hlcyIsIlRoZW1lUHJvdmlkZXIiLCJDc3NCYXNlbGluZSIsIkhhc2hSb3V0ZXIiLCJSb3V0ZXMiLCJSb3V0ZSIsInBhdGgiLCJlbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjcmVhdGVSb290IiwicmVuZGVyIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJPIiwiY2h1bmtJZHMiLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsIkluZmluaXR5IiwiZnVsZmlsbGVkIiwiaiIsImV2ZXJ5Iiwic3BsaWNlIiwiZ2V0dGVyIiwiX19lc01vZHVsZSIsIm5zIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImRlZmluaXRpb24iLCJwcm9wIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtJZCIsIndlYnBhY2tKc29ucENhbGxiYWNrIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJzb21lIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwiX193ZWJwYWNrX2V4cG9ydHNfXyJdLCJzb3VyY2VSb290IjoiIn0=