/*! For license information please see main.eb5ebf98.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},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};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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Z0JDLEdBQVcsRUFFNUIsT0FBT3RCLEVBQW9CTSxFQUFFclAsRUFBTyxFQUdqQzJRLEVBQXFCMVQsS0FBK0IseUJBQUlBLEtBQStCLDBCQUFLLEdBQ2hHMFQsRUFBbUJqWCxRQUFRNFcsRUFBcUJwa0IsS0FBSyxLQUFNLElBQzNEeWtCLEVBQW1CM2lCLEtBQU9zaUIsRUFBcUJwa0IsS0FBSyxLQUFNeWtCLEVBQW1CM2lCLEtBQUs5QixLQUFLeWtCLFFDN0N2RixJQUFJQyxFQUFzQjdCLEVBQW9CTSxPQUFFaFMsRUFBVyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxJQUFPMFIsRUFBb0IsUUFDckk2QixFQUFzQjdCLEVBQW9CTSxFQUFFdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2xpYi9NYXBib3hHTC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvbGliL3V0aWxzLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvYXBpQ2FsbC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2Vycm9yLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvbG9hZGluZy5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvcGFnZXMvTW9iaWxlU2l0ZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvQXBwLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiLypcbiAqIHNyYy9yZWFjdGxpYi9jb21wb25lbnRzL01hcGJveEdMLmpzXG4gKiBDb3B5cmlnaHQgKGMpMjAyMiBTUlMgUGhhcm1hY3kgU3lzdGVtcywgSW5jLlxuICovXG5cbi8vIGh0dHBzOi8vZG9jcy5tYXBib3guY29tL21hcGJveC1nbC1qcy9leGFtcGxlL1xuXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBtYXBib3hnbCBmcm9tICdtYXBib3gtZ2wnO1xuaW1wb3J0IHsgcmVuZGVyRXJyb3IgfSBmcm9tICcuL3V0aWxzJztcblxuY2xhc3MgTWFwYm94R0wgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFjY2Vzc1Rva2VuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYWRkcmVzc2VzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgdG9BZGRyZXNzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNlbnRlcjogUHJvcFR5cGVzLmFycmF5LFxuICAgIHpvb206IFByb3BUeXBlcy5udW1iZXIsXG4gICAgcHJvamVjdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBnZW9Mb2NhdGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93RnVsbFNjcmVlbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxsb3dOYXZpZ2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBmcm9tQ29vcmRpbmF0ZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICB0b0Nvb3JkaW5hdGVzOiBQcm9wVHlwZXMuYXJyYXksXG4gIH07XG4gIG1hcFJlZjtcbiAgbWFwO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmluc3RydWN0aW9uc1JlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICAgIHRoaXMubWFwUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHZpZXc6ICdsb2FkaW5nJyxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbWFya2VyczogW10sXG4gICAgfTtcbiAgICB0aGlzLmluaXRNYXAgPSB0aGlzLmluaXRNYXAuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdlb2NvZGVNYXJrZXJzID0gdGhpcy5nZW9jb2RlTWFya2Vycy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0RGlyZWN0aW9ucyA9IHRoaXMuZ2V0RGlyZWN0aW9ucy5iaW5kKHRoaXMpO1xuICB9XG4gIGdlb2NvZGVNYXJrZXJzKCkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICBjb25zdCBiYXNlVXJsID0gJ2h0dHBzOi8vYXBpLm1hcGJveC5jb20vZ2VvY29kaW5nL3Y1L21hcGJveC5wbGFjZXMvJztcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLmFwcGVuZCgnYWNjZXNzX3Rva2VuJywgdGhpcy5wcm9wcy5hY2Nlc3NUb2tlbik7XG4gICAgbGV0IGNudCA9IDA7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBjbnQrKztcbiAgICAgIGNvbnN0IHVybCA9IGJhc2VVcmwgKyBlbmNvZGVVUklDb21wb25lbnQoYWRkcmVzcykgKyAnLmpzb24/JyArIHBhcmFtcy50b1N0cmluZygpO1xuICAgICAgd2luZG93LmZldGNoKHVybCkudGhlbigocmVzcCkgPT4gcmVzcC5qc29uKCkpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKGRhdGEpO1xuICAgICAgICBpZiAoY250ID09PSB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWFya2VyczogcmVzdWx0cywgdmlldzogJ21hcCcgfSwgdGhpcy5pbml0TWFwKTtcbiAgICAgICAgfVxuICAgICAgfSkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUpKTtcbiAgICB9XG4gIH1cbiAgZ2V0RGlyZWN0aW9ucygpIHtcbiAgICBjb25zdCBmID0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMuam9pbignLCAnKTtcbiAgICBjb25zdCB0ID0gdGhpcy5wcm9wcy50b0Nvb3JkaW5hdGVzLmpvaW4oJywgJyk7XG4gICAgY29uc3QgYmFzZVVybCA9IGBodHRwczovL2FwaS5tYXBib3guY29tL2RpcmVjdGlvbnMvdjUvbWFwYm94L2RyaXZpbmctdHJhZmZpYy8ke2Z9OyR7dH1gO1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdnZW9tZXRyaWVzJywgJ2dlb2pzb24nKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdzdGVwcycsIHRydWUpO1xuICAgIHBhcmFtcy5hcHBlbmQoJ2FjY2Vzc190b2tlbicsIHRoaXMucHJvcHMuYWNjZXNzVG9rZW4pO1xuICAgIGNvbnN0IHVybCA9IGJhc2VVcmwgKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICB3aW5kb3cuZmV0Y2godXJsKS50aGVuKChyZXNwKSA9PiByZXNwLmpzb24oKSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpcmVjdGlvbnM6IGRhdGEsIHZpZXc6ICdtYXAnIH0sIHRoaXMuaW5pdE1hcCk7XG4gICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcjogZS5zdGFjayB9KTtcbiAgICB9KTtcbiAgfVxuICBpbml0TWFwKCkge1xuICAgIG1hcGJveGdsLmFjY2Vzc1Rva2VuID0gdGhpcy5wcm9wcy5hY2Nlc3NUb2tlbjtcbiAgICBjb25zdCBtYXJrZXJzID0gW107XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGxldCBnZW9sb2NhdGUgPSBudWxsO1xuICAgIGxldCBmdWxsc2NyZWVuID0gbnVsbDtcbiAgICBvcHRpb25zLmNvbnRhaW5lciA9IHRoaXMubWFwUmVmLmN1cnJlbnQuaWQ7XG4gICAgb3B0aW9ucy5zdHlsZSA9ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjEyJztcbiAgICBpZiAodGhpcy5wcm9wcy5jZW50ZXIpIHtcbiAgICAgIG9wdGlvbnMuY2VudGVyID0gdGhpcy5wcm9wcy5jZW50ZXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgb3B0aW9ucy5jZW50ZXIgPSB0aGlzLnN0YXRlLm1hcmtlcnNbMF0uZmVhdHVyZXNbMF0uY2VudGVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy56b29tKSB7XG4gICAgICBvcHRpb25zLnpvb20gPSB0aGlzLnByb3BzLnpvb207XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnByb2plY3Rpb24pIHtcbiAgICAgIG9wdGlvbnMucHJvamVjdGlvbiA9IHRoaXMucHJvcHMucHJvamVjdGlvbjtcbiAgICB9XG4gICAgdGhpcy5tYXAgPSBuZXcgbWFwYm94Z2wuTWFwKG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLnByb3BzLmdlb0xvY2F0ZSkge1xuICAgICAgZ2VvbG9jYXRlID0gbmV3IG1hcGJveGdsLkdlb2xvY2F0ZUNvbnRyb2woe1xuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHtcbiAgICAgICAgICBlbmFibGVIaWdoQWNjdXJhY3k6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dVc2VyTG9jYXRpb246IHRydWUsXG4gICAgICAgIHRyYWNrVXNlckxvY2F0aW9uOiB0cnVlLFxuICAgICAgICBzaG93VXNlckhlYWRpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2woZ2VvbG9jYXRlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYWxsb3dGdWxsU2NyZWVuKSB7XG4gICAgICBmdWxsc2NyZWVuID0gbmV3IG1hcGJveGdsLkZ1bGxzY3JlZW5Db250cm9sKCk7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKGZ1bGxzY3JlZW4pO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5hbGxvd05hdmlnYXRpb24pIHtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wobmV3IG1hcGJveGdsLk5hdmlnYXRpb25Db250cm9sKCksICdib3R0b20tcmlnaHQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUubWFya2VycyAmJiB0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdXNlIHRoZSBmaXJzdCBtYXJrZXIgaW5zdGVhZCBvZiBhbGwgb2YgdGhlbVxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKCdtYXRlcmlhbC1pY29ucycpO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2ZvbnQtc2l6ZTogM2VtJyk7XG4gICAgICBlbC5pbm5lclRleHQgPSAoJ3BsYWNlJyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgdGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLnBsYWNlX25hbWUpO1xuICAgICAgY29uc3QgbSA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpO1xuICAgICAgbS5zZXRMbmdMYXQodGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLmdlb21ldHJ5LmNvb3JkaW5hdGVzKTtcbiAgICAgIG0uc2V0UG9wdXAobmV3IG1hcGJveGdsLlBvcHVwKCkuc2V0SFRNTChgPHN0cm9uZyR7dGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLnBsYWNlX25hbWV9PHN0cm9uZz5gKSk7XG4gICAgICBtYXJrZXJzLnB1c2gobSk7XG4gICAgICAvLyBmb3IgKGNvbnN0IG1hcmtlciBvZiB0aGlzLnN0YXRlLm1hcmtlcnMpIHtcbiAgICAgIC8vICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIG1hcmtlci5mZWF0dXJlcykge1xuICAgICAgLy8gICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgLy8gICAgIGVsLmNsYXNzTGlzdC5hZGQoJ21hdGVyaWFsLWljb25zJyk7XG4gICAgICAvLyAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICAvLyAgICAgZWwuc2V0QXR0cmlidXRlKCdzdHlsZScsICdmb250LXNpemU6IDNlbScpO1xuICAgICAgLy8gICAgIGVsLmlubmVyVGV4dCA9ICdwbGFjZSc7XG4gICAgICAvLyAgICAgZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsIGZlYXR1cmUucGxhY2VfbmFtZSk7XG4gICAgICAvLyAgICAgY29uc3QgbSA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpO1xuICAgICAgLy8gICAgIG0uc2V0TG5nTGF0KGZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXMpO1xuICAgICAgLy8gICAgIG0uc2V0UG9wdXAobmV3IG1hcGJveGdsLlBvcHVwKCkuc2V0SFRNTChgPHN0cm9uZz4ke2ZlYXR1cmUucGxhY2VfbmFtZX08L3N0cm9uZz5gKSk7XG4gICAgICAvLyAgICAgbWFya2Vycy5wdXNoKG0pO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgfVxuICAgIHRoaXMubWFwLm9uKCdzdHlsZS5sb2FkJywgKCkgPT4ge1xuICAgICAgdGhpcy5tYXAuc2V0Rm9nKHt9KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbignbG9hZCcsICgpID0+IHtcbiAgICAgIGlmIChnZW9sb2NhdGUpIHtcbiAgICAgICAgZ2VvbG9jYXRlLnRyaWdnZXIoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnN0YXRlLmRpcmVjdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnN0YXRlLmRpcmVjdGlvbnMucm91dGVzWzBdO1xuICAgICAgICBjb25zdCBnZW9qc29uID0ge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgICBnZW9tZXRyeTogcm91dGUuZ2VvbWV0cnksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25zUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIGNvbnN0IHN0ZXBzID0gYDx1bD4ke3JvdXRlLmxlZ3NbMF0/LnN0ZXBzLm1hcCgoc3RlcCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgPGxpPiR7c3RlcC5tYW5ldXZlci5pbnN0cnVjdGlvbn08L2xpPmA7XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpfVxuICAgICAgICA8L3VsPmA7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gYDxwPjxzdHJvbmc+VHJpcCBkdXJhdGlvbjogJHtNYXRoLmZsb29yKHJvdXRlLmR1cmF0aW9uIC8gNjApfSBtaW48L3N0cm9uZz48L3A+YDtcbiAgICAgICAgdGhpcy5pbnN0cnVjdGlvbnNSZWYuY3VycmVudC5pbm5lckhUTUwgPSBgJHtkdXJhdGlvbn0ke3N0ZXBzfWA7XG5cbiAgICAgICAgaWYgKHRoaXMubWFwLmdldFNvdXJjZSgncm91dGUnKSkge1xuICAgICAgICAgIHRoaXMubWFwLmdldFNvdXJjZSgncm91dGUnKS5zZXREYXRhKGdlb2pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWFwLmFkZExheWVyKHtcbiAgICAgICAgICAgIGlkOiAncm91dGUnLFxuICAgICAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICAgICAgZGF0YTogZ2VvanNvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgJ2xpbmUtam9pbic6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICdsaW5lLWNhcCc6ICdyb3VuZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFpbnQ6IHtcbiAgICAgICAgICAgICAgJ2xpbmUtY29sb3InOiAnIzM4ODdCRScsXG4gICAgICAgICAgICAgICdsaW5lLXdpZHRoJzogNSxcbiAgICAgICAgICAgICAgJ2xpbmUtb3BhY2l0eSc6IDAuNzUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWFya2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgbWFya2VyIG9mIG1hcmtlcnMpIHtcbiAgICAgICAgICBtYXJrZXIuYWRkVG8odGhpcy5tYXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6ICdtYXAnIH0pO1xuICB9XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZHJlc3NlcyAmJiB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgIHRoaXMuZ2V0RGlyZWN0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNYXAoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICBpZiAocHJldlByb3BzLmZyb21Db29yZGluYXRlcyAhPT0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgICAgdGhpcy5nZXREaXJlY3Rpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdE1hcCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByZXZQcm9wcy5hZGRyZXNzZXMgIT09IHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hZGRyZXNzZXMgJiYgdGhpcy5wcm9wcy5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gcmVuZGVyRXJyb3IodGhpcyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUudmlldyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICByZXR1cm4gKDxkaXY+TG9hZGluZzwvZGl2Pik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IHJlZj17dGhpcy5pbnN0cnVjdGlvbnNSZWZ9IHN0eWxlPXt7XG4gICAgICAgICAgICAgIG1heEhlaWdodDogJzMwMHB4JyxcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgICAgICAgfX0gY2xhc3NOYW1lPVwiY29sXCIgaWQ9XCJtYXBib3hHTEluc3RydWN0aW9uc1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiByZWY9e3RoaXMubWFwUmVmfSBjbGFzc05hbWU9XCJjb2xcIiBzdHlsZT17eyBoZWlnaHQ6ICczMDBweCcgfX0gaWQ9XCJtYXBib3hHTE1hcFwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcGJveEdMO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgbWFwYm94VG9rZW4gPSAncGsuZXlKMUlqb2liVzFqYldsc2JHRnVJaXdpWVNJNkltTnNiMm94Ylc5aU5EQXdhWEF5YW5Cd1ltazBkM1l6TTJFaWZRLjVCNnUxRVRiclhibTZ3czBIZVM4SXcnO1xuXG5jb25zdCByZW5kZXJFcnJvciA9IChjb21wb25lbnQpID0+IHtcbiAgaWYgKGNvbXBvbmVudC5zdGF0ZS5lcnJvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInBhZC0zIGJnLWRhbmdlciB0ZXh0LXdoaXRlXCJcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLCBoZWlnaHQ6ICc0JScsIG1pbkhlaWdodDogJzEuOGVtJyB9fVxuICAgICAgPlxuICAgICAgICB7Y29tcG9uZW50LnN0YXRlLmVycm9yfVxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgY29tcG9uZW50LnNldFN0YXRlKHsgZXJyb3I6IG51bGwgfSk7XG4gICAgICAgIH19PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWF0ZXJpYWwtaWNvbnMnPmNsb3NlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5leHBvcnQge1xuICBtYXBib3hUb2tlbixcbiAgcmVuZGVyRXJyb3IsXG59O1xuIiwiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuY29uc3QgYXBpQ2FsbCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgb3B0cy5jb250ZXh0ID0gb3B0cy5jb250ZXh0IHx8IG51bGw7XG4gICAgb3B0cy5yZXNwb25zZVR5cGUgPSBvcHRzLnJlc3BvbnNlVHlwZSB8fCAnYXBwbGljYXRpb24vanNvbic7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChvcHRzLnVybCkge1xuICAgICAgdXJsID0gb3B0cy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAnbG9jYWxob3N0JyA/IGBodHRwczovL3Nyc3JmbC1zdGFnaW5nLmNvbS9gIDogJy8nO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gb3B0cy5oZWFkZXJzIHx8IHt9O1xuICAgIGF4aW9zKHtcbiAgICAgIG1ldGhvZDogb3B0cy5tZXRob2QudG9Mb3dlckNhc2UoKSxcbiAgICAgIHVybDogYCR7dXJsfSR7b3B0cy5lbmRwb2ludH1gLFxuICAgICAgcmVzcG9uc2VUeXBlOiBvcHRzLnJlc3BvbnNlVHlwZSxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICBwYXJhbXM6IG9wdHMucGFyYW1zLFxuICAgICAgZGF0YTogb3B0cy5kYXRhLFxuICAgIH0pLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhcGlDYWxsO1xuIiwiY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKGVycikgPT4ge1xuICBsZXQgZXJyb3IgPSAnJztcbiAgaWYgKGVyci5yZXNwb25zZSAmJiBlcnIucmVzcG9uc2UuZGF0YSkge1xuICAgIGlmIChlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9IEpTT04uc3RyaW5naWZ5KGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVyci5yZXNwb25zZS5kYXRhID09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEuaW5jbHVkZXMoJ21lc3NhZ2UnKSkge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLnN1YnN0cmluZygxMiwgKGVyci5yZXNwb25zZS5kYXRhLmxlbmd0aCAtIDIpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IgPSBKU09OLnN0cmluZ2lmeShlcnIucmVzcG9uc2UuZGF0YSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGVycm9yID0gZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZSA6IEpTT04uc3RyaW5naWZ5KGVycik7XG4gIH1cbiAgcmV0dXJuIGVycm9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0RXJyb3JNZXNzYWdlO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByb3BUeXBlcyB9IGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgR3JpZCwgVHlwb2dyYXBoeSwgQnV0dG9uLCBDb250YWluZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCBMb2FkaW5nQ2Fwc3VsZUltZyBmcm9tICcuLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nJztcblxuY29uc3QgRXJyb3IgPSAocHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdjb2x1bW4nIGp1c3RpZnlDb250ZW50PSdjZW50ZXInIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPGltZyBzcmM9e0xvYWRpbmdDYXBzdWxlSW1nfSAvPlxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDYnPlxuICAgICAgICAgICAgRXJyb3I6IHtwcm9wcy5tZXNzYWdlfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIHsgcHJvcHMucmV0dXJuVG9cbiAgICAgICAgICAgICYmIChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICB3aWR0aD0nNTAlJ1xuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgcHJvcHMucmV0dXJuVG8oKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICA8L0dyaWQ+XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuXG5FcnJvci5wcm9wVHlwZXMgPSB7XG4gIG1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgcmV0dXJuVG86IFByb3BUeXBlcy5mdW5jLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXJyb3I7XG4iLCJleHBvcnQgZGVmYXVsdCBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDSkNBWUFBQURrTVRBREFBQUt4bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFTSW1WbHdkWVUxa1dnTzk3TDczUUFoR1FFbm9UcEZjcG9ZY3VIV3lFSkpCUVlrd0lLalpVQmtkd0xLaElVd1FjRkZGd0xJQ01CYkZnUlZFQit3UVpWTlJ4c0NBcUt2dUFKY3pzZnJ2NzdYbmZ5ZjNmZWVlZWMrNzk3djIrRXdDb0JMWklsQUVyQVpBcHpCSkhCbmd6NGhNU0dmamZBUXdRb0F3QXdMQTVFaEV6SWlJRVpUQTEvbDArOWdCb2ZMeGpPUjdyMzcvL1YxSG04aVFjQUtBSWxKTzVFazRteXNkUmZjTVJpYk1BUVBhaGRvT2xXYUp4dm95eXFoZ3RFT1ZINDV3NnlVUGpuRHpCR015RVQzU2tEOHJxQUJBb2JMWTRGUUNLSVdwblpITlMwVGdVWDVTdGhWeUJFR1gwSFhodytHd3V5bWhlTUNzemMvRTR5MUEyVGY1TG5OUy94VXlXeDJTelUrVTh1WllKSWZnS0pLSU05dkwvY3p2K3QyUm1TS2R5R0tOSzRZc0RJOUdSanU3WnZmVEZ3WElXSm9lRlQ3R0FPK0Uvd1h4cFlNd1VjeVEraVZQTVpmc0d5K2RtaElWTWNZckFueVdQazhXS25tS2V4QzlxaXNXTEkrVzVVc1ErekNsbWk2ZnpTdE5qNUhZK2p5V1BuOE9QanB2aWJFRnMyQlJMMHFPQ3AzMTg1SGF4TkZKZVAwOFk0RDJkMTErKzlrekpYOVlyWU1ublp2R2pBK1ZyWjAvWHp4TXlwMk5LNHVXMWNYbStmdE0rTVhKL1VaYTNQSmNvSTBMdXo4c0lrTnNsMlZIeXVWbm9nWnllR3lIZnd6UjJVTVFVQTEvZ0IwTFFod0ZpZ0Myd0J6Ym9ieWdBV2J4bDQyY1UrQ3dXTFJjTFV2bFpEQ1o2eTNnTWxwQmpOWXRoYTIxckRjRDRuWjA4RXUvdlRkeEZpRTZZdG9uUStDN29tVWRxcG0zSm1nQTBvK2RJZ3podE05d1BnR0k4QUUyNUhLazRlOUkyZnAwQUZwQ0FJbEFGR2tBSEdBQlRZSWxXNWdqY2dCZGFjUkFJQjlFZ0FTd0VITUFIbVVBTWxvS1ZZQzNJQjRWZ0s5Z0p5a0FscUFFSHdHRndGRFNEVStBY3VBU3VnVnVnR3p3RU1qQUFYb0VoOEJHTVFoQ0VoNmdRRGRLQWRDRWp5QUt5aFp3aEQ4Z1BDb0Vpb1FRb0NVcUZoSkFVV2dtdGh3cWhJcWdNcW9McW9GK2drOUE1NkFyVUJkMkgrcUJCNkIzMEJVWmdDcXdLYThQRzhHellHV2JDd1hBMHZBQk9oWmZBT1hBZXZCa3VnYXZoUTNBVGZBNitCbmZETXZnVlBJd0FoSXpRRVQzRUVuRkdmSkJ3SkJGSlFjVElhcVFBS1VhcWtRYWtGZWxBN2lBeTVEWHlHWVBEMERBTWpDWEdEUk9JaWNGd01Fc3dxekdiTUdXWUE1Z216QVhNSFV3ZlpnanpIVXZGYW1FdHNLNVlGalllbTRwZGlzM0hGbU5yc1Nld0Y3SGQyQUhzUnh3T1I4ZVo0Snh3Z2JnRVhCcHVCVzRUYmpldUVkZUc2OEwxNDRieGVMd0czZ0x2amcvSHMvRlorSHg4S2Y0US9peitObjRBLzRsQUp1Z1NiQW4raEVTQ2tMQ09VRXc0U0RoRHVFMTRUaGdsS2hHTmlLN0VjQ0tYdUp5NGhiaVAyRXE4U1J3Z2pwS1VTU1lrZDFJMEtZMjBsbFJDYWlCZEpEMGl2U2VUeWZwa0YvSmNzb0NjU3k0aEh5RmZKdmVSUDFOVUtPWVVIOHA4aXBTeW1iS2Ywa2E1VDNsUHBWS05xVjdVUkdvV2RUTzFqbnFlK29UNlNZR21ZS1hBVXVBcXJGRW9WMmhTdUszd1JwR29hS1RJVkZ5b21LTllySGhNOGFiaWF5V2lrckdTanhKYmFiVlN1ZEpKcFY2bFlXV2FzbzF5dUhLbThpYmxnOHBYbEYrbzRGV01WZnhVdUNwNUtqVXE1MVg2YVFqTmdPWkQ0OURXMC9iUkx0SUdWSEdxSnFvczFUVFZRdFhEcXAycVEyb3Fhdlpxc1dyTDFNclZUcXZKNkFqZG1NNmlaOUMzMEkvU2UraGZabWpQWU03Z3pkZzRvMkhHN1JrajZqUFZ2ZFI1NmdYcWplcmQ2bDgwR0JwK0d1a2EyelNhTlI1cllqVE5OZWRxTHRYY28zbFI4L1ZNMVpsdU16a3pDMlllbmZsQUM5WXkxNHJVV3FGVm8zVmRhMWhiUnp0QVc2UmRxbjFlKzdVT1hjZExKMDFuaDg0Wm5VRmRtcTZIcmtCM2grNVozWmNNTlFhVGtjRW9ZVnhnRE9scDZRWHFTZldxOURyMVJ2Vk45R1AwMStrMzZqODJJQms0RzZRWTdEQm9OeGd5MURVTU5WeHBXRy80d0lobzVHekVOOXBsMUdFMFlteGlIR2U4d2JqWitJV0p1Z25MSk1lazN1U1JLZFhVMDNTSmFiWHBYVE9jbWJOWnV0bHVzMXZtc0xtRE9kKzgzUHltQld6aGFDR3cyRzNSTlFzN3kyV1djRmIxckY1TGlpWFRNdHV5M3JMUGltNFZZclhPcXRucXpXekQyWW16dDgzdW1QM2Qyc0U2dzNxZjlVTWJGWnNnbTNVMnJUYnZiTTF0T2JibHRuZnRxSGIrZG12c1d1emUybHZZOCt6MzJOOXpvRG1FT214d2FIZjQ1dWprS0hac2NCeDBNblJLY3FwdzZuVldkWTV3M3VSODJRWHI0dTJ5eHVXVXkyZFhSOWNzMTZPdWY3cFp1cVc3SFhSN01jZGtEbS9PdmpuOTd2cnViUGNxZDVrSHd5UEpZNitIekZQUGsrMVo3Zm5VeThDTDYxWHI5WnhweGt4akhtSys4YmIyRm51ZjhCN3hjZlZaNWRQbWkvZ0crQmI0ZHZxcCtNWDRsZms5OGRmM1QvV3Y5eDhLY0FoWUVkQVdpQTBNRHR3VzJNdlNabkZZZGF5aElLZWdWVUVYZ2luQlVjRmx3VTlEekVQRUlhMmhjR2hRNlBiUVIyRkdZY0t3NW5BUXpncmZIdjQ0d2lSaVNjU3ZjM0Z6SSthV3ozMFdhUk81TXJJamloYTFLT3BnMU1kbzcrZ3QwUTlqVEdPa01lMnhpckh6WSt0aVIrSjg0NHJpWlBHejQxZkZYMHZRVEJBa3RDVGlFMk1UYXhPSDUvbk4yemx2WUw3RC9QejVQUXRNRml4YmNHV2g1c0tNaGFjWEtTNWlMenFXaEUyS1N6cVk5SlVkenE1bUR5ZXpraXVTaHpnK25GMmNWMXd2N2c3dUlNK2RWOFI3bnVLZVVwVHlJdFU5ZFh2cUlOK1RYOHgvTGZBUmxBbmVwZ1dtVmFhTnBJZW43MDhmeTRqTGFNd2taQ1psbmhTcUNOT0ZGeGJyTEY2MnVFdGtJY29YeVphNEx0bTVaRWdjTEs2VlFKSUZrcFlzVmJRNXVpNDFsZjRnN2N2MnlDN1AvclEwZHVteFpjckxoTXV1THpkZnZuSDU4eHovbko5WFlGWndWclN2MUZ1NWRtWGZLdWFxcXRYUTZ1VFY3V3NNMXVTdEdjZ055RDJ3bHJRMmZlMk5kZGJyaXRaOVdCKzN2alZQT3k4M3IvK0hnQi9xOHhYeXhmbTlHOXcyVlA2SStWSHdZK2RHdTQybEc3OFhjQXV1RmxvWEZoZCszY1RaZFBVbm01OUtmaHJibkxLNWM0dmpsajFiY1Z1RlczdTJlVzQ3VUtSY2xGUFV2ejEwZTlNT3hvNkNIUjkyTHRwNXBkaSt1SElYYVpkMGw2d2twS1NsMUxCMGErblhNbjVaZDdsM2VXT0ZWc1hHaXBIZDNOMjM5M2p0YWFqVXJpeXMvTEpYc1BkZVZVQlZVN1Z4ZFhFTnJpYTc1dG0rMkgwZFB6di9YRmVyV1Z0WSsyMi9jTC9zUU9TQkMzVk9kWFVIdFE1dXFZZnJwZldEaCtZZnVuWFk5M0JMZzJWRFZTTzlzZkFJT0NJOTh2S1hwRjk2amdZZmJUL21mS3podU5IeGloTzBFd1ZOVU5QeXBxRm1mck9zSmFHbDYyVFF5ZlpXdDlZVHYxcjl1ditVM3FueTAycW50NXdobmNrN00zWTI1K3h3bTZqdDliblVjLzN0aTlvZm5vOC9mL2ZDM0F1ZEY0TXZYcjdrZitsOEI3UGo3R1gzeTZldXVGNDVlZFg1YXZNMXgydE4xeDJ1bjdqaGNPTkVwMk5uMDAybm15MjNYRzYxZHMzcE9uUGI4L2E1Tzc1M0x0MWwzYjNXSGRiZDFSUFRjNjkzZnEvc0h2ZmVpL3NaOTk4K3lINHcrakQzRWZaUndXT2x4OFZQdEo1VS8yYjJXNlBNVVhhNno3ZnYrdE9vcHcvN09mMnZmcGY4L25VZzd4bjFXZkZ6M2VkMUwyeGZuQnIwSDd6MWN0N0xnVmVpVjZPdjgvOVEvcVBpamVtYjQzOTYvWGw5S0g1bzRLMzQ3ZGk3VGU4MTN1Ly9ZUCtoZlRoaStNbkh6SStqSXdXZk5ENGQrT3o4dWVOTDNKZm5vMHUvNHIrV2ZEUDcxdm85K1B1anNjeXhNUkZieko1b0JSQlU0WlFVQU42aGZRSTFBUURhTFFCSTh5Wjc2Z21CSnY4SFRCRDRUenpaZDArSUl3QTFiUUJFNXdJUWdvNmw2R2lNcXFJWEFCR29SbnNCMk01T3J2OFVTWXFkN1dRc2NqUGFtaFNQamIxSCswZThHUURmZXNmR1Jwdkh4cjdWb3NVK0FLRHQ0MlF2UHk1S2h3RFl1OExCS1N6a3hramJNUGdYK1FmV3lCSVA1OHNrbWdBQUFGWmxXRWxtVFUwQUtnQUFBQWdBQVlkcEFBUUFBQUFCQUFBQUdnQUFBQUFBQTVLR0FBY0FBQUFTQUFBQVJLQUNBQVFBQUFBQkFBQUFnS0FEQUFRQUFBQUJBQUFBaVFBQUFBQkJVME5KU1FBQUFGTmpjbVZsYm5Ob2IzVDduaUh2QUFBQjFtbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDBMakFpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenBsZUdsbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMMlY0YVdZdk1TNHdMeUkrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNHhNamc4TDJWNGFXWTZVR2w0Wld4WVJHbHRaVzV6YVc5dVBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwVmMyVnlRMjl0YldWdWRENVRZM0psWlc1emFHOTBQQzlsZUdsbU9sVnpaWEpEYjIxdFpXNTBQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01UTTNQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ252MXVDVUFBQmJNU1VSQlZIZ0I3VjBKY0JYbmZmOERBaVJ1Y1VuaUVraml4Z1p4T0Jpd3pZMmRPQjdIU1dhYWVveG5QRTJheWJSTzNNNmtTVHNldDA2UFROdWtHWGZxWnBMWWNSTGl4clhiU1JwekdBSEdCekVJaklVdzZPSVE0aFFnY1FrRVFvaitmN3Y3MzkyM2I5L1QyN2ZYMDlQK05VL2Y3cmZmOGYrKzMrODc5cnUyejEwV2lxVFg1a0RmWHB2eUtPRktEa1FFNk9WRWlBZ1FFYUNYNTBBdlQzNVVBMFFFNk9VNTBNdVRIOVVBRVFGNmVRNzA4dVJITlVCRWdGNmVBNzA4K1RsQnB4OER6eTFYMnVsR3h4M0s2ZHVIaGcwZVFFUHkrZ2V0UmhTZmxnT0JFR0JEUlQxVjFweW5UNCszMHZHejE5U28reGdZREJzMGdNb21ES2Y1WmFOb3laeENXbEUrM25nWVhmbWFBMzM4bWd6YXZLZUpmclBqQ0wxLzRLeWFBQlBna2lMRHlyakNzNUZEQjlMakQ1YlFVMnZLcUxoZ3FEaVBUQjl5d0hNQ3ZGdDFobDU2cTVxcWpyUVF4ZUtxcUc5WUdWZDZ1aXhXZHptQVp4NmVSczk5K2Q2b21kQXp5ZHNMendpQXR2MzVWeXZwMTlzYTRqUTBjRFd1RkVlV1c5Z0JkSWorZXNLM0JmbDU5UHo2QmZUSWZST1ZaOUUvNzNMQUV3S2NhTDVHei83N0g2ajY2RVZkTXdOYjQwcDVhTG1GblIzb2VrRGFCUll0Zk91TDk5Q3pUOHl4UG9ydVhlU0Fhd0xVTkYybXovN1ZSa1VGQTF2anl2SkFWelZWMEhVUHVPalRoOWF2blVwL3k3VkJKTjdrZ0t1M2dGTVgydWhQZi9DZVZtazdBMTF4YmZHQ0pNVXRUMkxRemZMTHJRMDBzRjlmK3U2VDVXYnI2RHJOSE5DYjJuVDgvOFhMdStuVStldnNWUU1KaHZ5MEFGSFM4Y01mSXVOWGZ4czNLdkE2K0FCZGZsbzRpbC9ONjg4MjE5RXZ0OVpyVHlMRFRRNmtUWUMvMzdDZjl0V2VOOEFFc0pwNEFib0FEaE5CZ3h3R1FZais3bGY3bFhFRkxjcklTRE1IMGlMQVhnYisxVTIxS2pJS01Hb3BUMWJTQlVBeEZYMmxsR3ZWdkJsMGNXY0dYV0dDaVdqZmYrTkFtc21PdkVrT3BFV0FsLzczVTZWYWw1S3VBd2R3NU1lWGNTQWlWbGVnUytDcStkR2g4L1QyUjAwSU5aSTBjOEF4QVQ0NGVJNCsvTFJaYmM4NVVtdWI3Z1Iwd0JqbjNveXhrcWc0aXhnT3ZmcE8xQmRJRTN2Rm0yTUN2TG56cUdlZzY0ckhZUnhuRVFPNjdvOHZEaHhycGQwOHp4Qkplam5naUFCdDdiZHA0MjYxeW8wcnVZZy9RZlVPT01XOXJtWWN4bkVXMXVCMHI5TDB3SVM4dmZ1ay9peTZjSllEamdpQWlaMFlJTTJBV3pweWZvT3VKRlBqekJ0Y0swV1NYZzQ0SWtCbC9ZVzRVbzVvRVFoK1FZS092b2NhcC9vRzhvZkR6VkFsRW9jNTRJZ0FOU2N1NmNFbkJGMHJsZWEzQVpVYThpQ1dRMXJGb1lkcnJkNlZCNXBYSytqU0JNRE45ayswYVdjOXBPZ2lsUnh3UklCVHpXMzJKVjJ3aGFsTHJLVzV0ZENkYUJkcGdXNE9ucTkvVVJFL0MybU5KN3FQendGSEJEaDMrYWJTQjFDQ01RT2doeHRyNlFoMGs5ZUVKZDNrUnFLVVBnbk12UTNHYktROGo4emtPWkF5QVRvNnU2dzF1Ulp5TENwcGc4NmhRUm5NR1VpTm9FUVFHN3hpWlFZZEZ2Q0gzNDc5WjNBYmlZTWNTSmtBV01CcFNDd3FZWUxlMXhUNXo3WkVnMElHUnFsZHBVeUF2a3dBTE41VXE0SFlqcHcxS2luQmVpZE40NHRVN1lqVVRVazNneTV4UzYxUWZkem9xTXF6eUV5Y0F5a1RBRUZNR0RORUg1eXhCcGtLNkluY0tHOE1Xb0FDSkV3SUZGUitwcEt1UE9CL1ZyY0lwK0tUcUJtUS9FbkZkRVNBcVJPR3hZU1pDRkJ6U1Uva1JrQTNnNWd1NkVwWVdndjFuMi9YeE9nWTNTVFBBVWNFbUZjNlN1K2dBVmhGTE5XN3VXcTN1aEV2WnRCRlBhY2wzUXc2d2tDODhsZDc4b29FRzVuZDVJQWpBbURUaGlKSlFOZmowOXdvUUxHbEU5RE5icVZXVU1LUk1EazhBVnRNUFY2KzJGWVZEUXFaOHlQWnRTTUNsQlVOVldZQzRRa1pMOVc3SG9FQUJKUEZES1JxazdoTnQzT2JESFFKVDh5N0hLZjhmdlRiUTJJZG1kM2tnQ01DSUt3Ly84SWNCWGc5M0F3QlhkWEhVT2FvYkVIVEZZMHU3SExBTVFGV2xZOUQ4VGQrZkdsWGVoR3c4clAwM3UzY1dzT1RhaDJtVmFTVXcxVEZVRWEvNG92dFVUTWdHWlRVZEV5QTJjVWpsQUN0UU9xQTgxUHJlN3JWclJLQWpwYXFueGVnNjBUaUlQLzVmejVWQTQ3K0o4MEJ4d1JBYUY5L2RJWVNxQmwwZllBQUpaN0ZMOUJWb21nVmtJVkUxamliTG1ESmVpVEpjaUF0QXF5ZVAxNnAzcnNGM1F5UXlnc3VwTWFmVmJGRTFic1pkTDJVYStGWlFWZkMxSnFkYlFmT1dhT0k3aTA1a0JZQjVwV001Q0tvSWhBSGdCbDBMVElEY2cwMWt4S2VnRzd1WjJoNklhWWR2Rk01a3VRNWtQYldNR3piZmtVbVgrSnhWY3E1WGRSRzU4MzhWQTFBRDBhL01OeUFhREdpQVcyMnMzcmJVM2VSbW5rS3UyQkVydGxaWU5mdDdlM1UydHBLVjY1Y29ldlhyOU90Vzdmb3l0V3JOR1R3WU1ySnlhSGMzRndhT25Rb0RSOCtuRWFQSGszOSt2VUxURGVKS0cwQ3JDNHZvbGNzUzdKUjB1MGtTTkFsZm9sekc5Y0NUeTR2RVd2ZnpUdDM3dERKcHBOMDV1d1p1blQ1c20xOGJVd0dSWmdZNTVxTnBXeUZCUVUwYnR3NEtpb3FzdlhuaDZXcjNjRmx6N3lWRVNWZE1rWkFsM3VZRDg0dW9GZS91Y1JzNWR0MVEwTURIVHQyakRxWkJHNWwzdHk1Tkg2OC8wZmxwTlVIa01ROXRhcE1MaFVUQU1qUGVJQmFRWG9CV3RkQnRkS2R4UGNqMklHMDY1b3I4UUxUTEJKZkxQaUc2L2Q1OTFCclc0ZlppK2ZYelZ5S2QrN2NTZlZNQUMvQWg0SlZCdzVRWldVbHRiVzFlYTZ2T1VCWEJGakRnMExKQU5CNzd3WWVldHgrZ281SWRQN3doWitEUXZYMTliVHY0NC9wK28wYmV0cTh1cmh3OFNKOThPRUhkT2FNZjUxWlZ3UllNbXVzS2EwcXlvbEFOd091ZCtnRUpaZ3NacDZvTmtid3lZaW0rb3dGM1R4UDRkZnJZSFYxTlRVY09XSW82Y05WVjlkZCtxU3FpbzRkUCs1RDZPcG9yYXVBLytpaEVxMkNWd0hRVWVSUXphRHJrU1FCWFhlalhiZ0JIVUZJL051cXo5SDE5azVyOEs3dUQzQVZmZkxVS1ZkaE9QRmNVMU5EeHhzYm5YaEp5YTJyR2dBeHJKN0hVOFJTZFBsZU1oMm1McTVBbDhERlRGelNFWjgxZmlIUjFtcnZwb2pyNnVybzFPblRldktDdWpoOCtEQy9OWGc3dU9XYUFNdnZMWXJMZENWRFBBTmR6VjRKRG8yN3VYckgwMFNnZzVpZ0RmNTcxUXljUFh1V2pod05ieXNhbXAyYk4yOHFxZkxpbjJzQ1FJa25saFNydWdoS01GbWt6S3AzcWhQNUx5VVRwaXJ4cmlVNEsraG13SEVOa2ZETW9KdUpzbm4vV1ZLV3Rxdk8wL3JmMWRWRk5iWGhMam03ZmJ1VDBCeDRKWjRRQUlOQ1NyZWJ0WXFIMFZCVlFISUx1b1FvNFNVQ0hlN0VEY3dLbDNNRGVNOXZiL2V1OUVrNm5KcG51QmE2Y042YkxmSGVFR0Jla1E2OE5URm1BTlJuOFJSSnBhUkx1QkplcXFERG45UVliZ2lBYWpmTXFsL1NMK1pSSG5EeVFqd2hBT2IvUC84WjR4UlBBUW1tS3NHRHZwQVBuaGJnUll2ZjdUMUY2WDRtODdoUHIyR2ltMU96aGVjWUVnMDFPd25MRXdJZ3dwVnpDL1hxVmxVZ0ZuUXA1VENUdGVtcVg2UHFkbExTSCtHQnFSODhYVTdWUC93c3ZmbVhTNVdnUkFzbFRvNjhnbys0Y1NxWTFQSHJQZHlwTG1iM1p6eDRFMGw3TXNpc0NLNVh6OFVFQnJMYkVBVnM3UllkTXJOSTV5M0dUbk1pb0ttZE9NT0ZVYU1ZZG84dEdrOXI3aTJrTlJ6L3dQNnhmUDdxbWxMNjZUYWpxa1NjYUFiV3Nuc25rbW1sWDNSdlB0OU1zMmZQbHR1MFRNOElrRHVnSDYyYlgwUmJ0WDM2VnZDZ25SVjBNNkJPUVAvaS9aTVk5QUlHdlZCZGZwWWc2V3Y0RmZVbkpnTEEyWDkvZEpMKzVhbDVDWHpFVzkvZ0lWNC9CbURpWTNKdWd3N3B0V3ZYbENsbDU3NVZINTRSQU1HdG5qdU8zdmtrdG9ydERuVDRzNUxGVEF3OGgzeGxXYkVDK0lvNUJhcEZDdi92SytPRkt5elc4TjdsQ2FJVnM4M0QySWtEeTlUU0x4cGY1ZlVGV0ZPUXJuaExBSDRiZ0hnRit0TXJTcFNTdm5UR21IVFRSK3M1akYvc2xHWkFiV08yOHRCd0tnVEFJbzdHRXlmU2pqc0lqOURSalhoS2dLRjVPYlNTMjlmdG5NRlM2cVJxaDVLcGxQU3ZyaTVWU3ZvaTdzVjdJV3Z2S1dBQ0hJOGg1WVlQbStpZnZuSnZ0OEZuZXVsSEF0eU9DbnBLQUNpMGNtNEJiZWVldGxyV1ZOQmhMeUxFa0h1WTMzaGtHcTNtTnIxOGNyN1oycFByQjJhTTFzRy9hK3FWZmxqZlFzdW1KU1laNXVGUE5EVjVvb09mZ1hSMnVwdms4cHdBNkkzLzlZYnFtRFJiUVVjVDhhMUhweXM5OTltV0hjY3hIajI2K1dQdVAveDZsd0VtNGtjemtJd0FXTm5URzhSekFvemlEejR0bXptR1BxamxJK1ZNZ2t6L3p1TXp1YVFYRXZZWUJpbHJ1WGJab0JGQW1xUlgzbXVrRjc5ay93cUZubldRVTcxdThnS0xTOTFJN0l1em01Qk1mcFVwWXI0SDZQSmJQRzAwZlgzZDFNREJoMXFydU1ldk5FbjhEN1dSMUVoN2o3YmljWnowcE5LUGxjVnV4QmNDNFAwYndJc2c4L2ZVWHlTY01oYVdmR254QkNYcUxxYUMvRFlmTkZia2lsNTRyUXBqcmwvaWQyb09HVExFcVpjWTk3NFFvQ2cvVnlseGFxbmorWHZ1Zk9GWElkOFFqRkVobUJzMEF3QmVCTFhBeXp1T3k2MXU5cVRTRDZXeHA4Q04rRUlBS1BRMzNMNUtyMXVhZ1FxYkV1ZEdlU2QrSCtiWFFhbitwUWxBNHF1YWpOTkVzSUhqdEk4TE1KM29tNHJid1lNRzBXRGVaT0pHZkNNQXh1Y0ZlRkZ3WjgwRjM1ZG9TMXhXRXpPV1gxZ3dUdDJ5emc5UkYwQS9jelBRMDBwL1lhR3pPUTFybnVEZU53SVVqMUdaYVMxMVc2dmoyMTA3eGZ5d1czZlAyRGhTL21pcnVyenJNdS9pd1VLTG5pVFlSZVJXZkNNQUZQczJ2L2FwZ3ZLbXJ1V3I0UGZ2c0FUTkFLU0xhd1A1NGI2R1R4UHBhYVYvN0pneE5HeFk3S2x0U0l0VDhaVUFtSGFWNFY5VXQ1Q3QzQTlvdStsdTlFb055Zm4vM1A3OTZHR2VRWVJJOHdSejU0RW1PbnN1UEdJcUNqbjhOMlhLRkljKzdKMzdTb0NwaGVvcmlyd0ZpTGtseEZyZ0lkUFFNRmNFeWxMR1BiWCs3Ynl4ejNaM3RnVmp4eXE3aWQyRm92cjJsUUNJNHJuUFRkZjFsRkszOWFBM0N4cjFnQjFjeko4MFhBRWQ0S3UxVXg5cWFQRjM3NkFEOVZKeTZsWHBSMlMrRTJBZHYzOUw5WStlQUxyZkcva0FKN2RMdEJGVU9sTENuVk1CSHY2aDI1bWJ2bWRET3FyYStzRVc4bEdqRWs5aTJYcEtZdWw3eXBYSkhwUTI3U2U2YkFscFRHQklibzRDdXRSRzBPZGFwKy9aSU1sMmJYcForcUZNSUNsL2RtMlprbkFaZ29XSjJiZ3dSZm9qTUpFSlVrdUZxVk4zY1JmeGUvL0lrZW9xcCs3Y3B2bzhFQUtZaDJHbEpuanJZLzRDV1FpNWZyM2pEdmNCdEE5WmN5NmhXWUlhTUROZHZDNzlTRzhnQkNqbnN3VUZlSWtVRWIvRFh5QU5XazYwdE1jMUFRVzU3ay8wOERzZDQvalltUHg4N3hmTUJFSUFaTTQzVms1UjJDWWxEcVZ1Y3dodkF3ZTBrOFNGa0RBbkR1cnlHei9YNGZ0UitxRlVZQVJZaDhrWVV6WmdKTzQzZTA2WmJJSzUzTm5Rb3RSR2lFMzZKS1hETXJzR0dNOUR2aU5HcUNlMGVwMUxnUkhnTTZVajllRlhnQThCSVRhNTNMQ3BCSlRpdjNadS85LzgrSndPdkhpYm1wL1pQWUNTa2hKUjFYTXpNQUpBOHo5NXNEaXUvZjBWYjlRSVNsNzd5S2h4a0hEOEJ2TFJmQ1dqM0MycjhsUC9DWHhTbUJkai9vbDBESlFBajJNYnVTYW9CUERiWHR0Q0ZZZGoxdytLR3kvTkc3ZnYwUE8vcTFQN0lSeXY5QUhXRnR4U3Y0YnVaV1FlaHVWbjZZZWFnUkpnVVVrK0xlYW1BTWliUitQKzRmZjF2cjhTdm9nNE5PQ1JjRFEvK0gxdTlnaGF2V29WbFV5WkF1dU1rb2tUSnJqYTlaTktZZ0lsQUJUNjJ2TEppbDRDQU14RFBCMzczQnYrSGUvK2V1VnArdW11a3pyb2lCT3lmRXdIclZ3MGt3WU9IRWd6Wjg2a1ZTdFgwcFRKazVWbm1mRFA3OUtQTkFaT2dFZDVibUNOdGkvUFBCcjMrcDdUOUwzZjEzbWU3Mi96cSthZnZYRklBVjhDbDNqWEw4aVBtVlhEQ3R0WnMyYlJ5aFVyYUhKeHNUZ1B4WncwY1NLNVhmQ1ppdUtCRXdCS3ZmRDVhZFMzWC94bzNFczdHdW5iYng1T1JlK1UzR3hnVXExL3JZcXJmbU5oS3E0aHoweHBwNGNXeW9LVjJPRHk4dktVYmRjcmxpK240a21UWWg4R2RCZEU2VWRTWEowVjdDWXZYdDk5aXI3SkpWTUU3YlBJd3NrajZNWEhwdE45YktZamwvbE13QmMzTmREUFRiMStoS05oVDh2eWI5RUw2NHBvd1lJRktRV1BEWmhZTWRSME1wZzNGcEJ1enB3NUtlbm0xbEZvQklEaTM5OThoUDYxUWwyVEp3a3hMOTErOGo0Ky9HSDJHSHFNMS9LbEloZjVUT0RYbUZndnYzZUNMbWtIUXdybzRuL3E0RTc2em9LN3RQeUJKWlR2Y0hBRit3VkJCTDkzRGFIbUdjUXJmb09RVUFtQUJINXZZejM5Mi9iR21MUkt1eVMxd29LSncyZ0ZyK1NaejJicDJDRTBlbkIvd3JlTXJ6TElKMXJicWZyMFZYci9TQ3R0T2F4K1B0NEt1Z1NPTjQ4Zkw3bEZVNHVMYVA3OCtXTHQyTVRXTVJEQmp3MGs2SHU0UGZYRFNZSkNKd0NVL1krZGpmVEMvOVVyZWd2bzVrUklyMTNzcEIyWGU1akpRTWZ6eGZrZDlMVTVkMmxBVGg5YXVtU0pKME9yMkVVRUluaTVsd0FkVVBSQmdwS01JQUFTKzI1ZEMzMzN0N1hVY0Y0OThNQUwwQ1VUbnk1dXB6VWw2dGM0TUt0V1hsNHVqend4cjE2OVFrZVBIbk85ckJ5dm9IZ0xDVkl5aGdDUzZIL2NnbjZCdWpYYld0SVRsWEw0UmZWdWxmdEhkdEFUSlYxVU5GUWFGYUpsUzVlNjNrNWxqVWZ1c2JjQU5VSzZLNHd4RHVGMnM2Zm9rcXFaY1FTQTR1ak0vWnpuQ1A1cjMxbHE1RFkra2RpQmpvbmRKL2lRaXNYOVR0Q0U0UWJ3Q0FPemF2UG1wWDVBVktKNHU3UEgrWDNIK0R4aDgrZGd1dk9Ea1VnTVJnVXRHVWtBY3laVU5sNm1keHRhYWYvSnExUjNybzFPWGJsRmQvZ01mWkhoZy9wVDZlZzhtanQrR04wL1pRUjl1YnhRZVYwN2VQQ2dPTkhOQjVZdDgzVmlSWTlJdTJocGFTRWNNOU9jd3JHdUdJN0dpR1RRa3ZFRXNNdVF0bHVkMU1ra0dNUWJQUWJreEpaeXVOKzRhVk9jTjh5cXplWHY4SVFoRi9uTEh5REMrUXYyazE2bFBOMDdZOGFNTUZRTGZpallpMVFPR1poREkvTDYyNExmbE9CY242QkcxdXpTaDAvQ0xWcTBpRVluV000ZHBtN3h4Y2N1QlQzSXp1NWtyeUJtMWJyTEloem1kSkdiQkt1VWxaYlNnQUVEck5hQjNXY1ZBYzV6VzZ0L2s4K1VoV0dXTUZFRGJ3ZDJFclp1V1VXQWN6WWJQTkh6RDJKV3pRNWNzZXZvNkxEOXVOVFVzakxxMzcrL09BdkZ6Q29Db0Fhd1NoQWZYN1RHYWIyM2E1YmdKdXpTRHgyeWhnQVluNy9GSmMwc09md3Qzakc4ano1TXdmZUM3VDQwTVgzYU5PWDd3V0hxaHJpemlnRFd6UFI2RzVVMS9GVHVFNVgrS1R6d2t3bVNOUVRBc2U1V0NidnR4em0rZHA5Mm1URjllaWhmQ3JmbUQrNnpoZ0RvYUZrbGpKRTFzdzZaWHZxaGE5WVFBSjkwczBxZnZ1RWxMOUZuWm1ieWlGL2ZFUFd5NWxGNE9XVFZ4T1c5WGFiZWNYbVN0aHVWZWtMcFIvcXloZ0IybzJsdXo5SlBsd0NKUGpNemkyZjdzRFU5a3lSckNHQzNpZ2F2aG1GSVR5bjl5SnVzSVlEZGQzTmFMMTJpTzNlQzNmbWI2RE16UWEvMFNaWDRXVU1BYktERXdJOVZtcHVEUFlRaVllbm41VjZaS0ZsREFHVHVXRDQvenlvbkExckxqM2dUZldabWpzdHYrMW5UNU9WOVZoSEFickVucG1EdDVnaTh6RVFKSzlHTVgzSEkyOHhFUHpzenF3aUFCT2JsNWNhbGMrKytmWEYyWGx0YzROVStkaHRHN2dsb2gwKzY2Y2s2QWlUYTFGbGJXNXR1SG5YcjcvYnQyM1Rva0xITnpleGhVa2g3QzgwNkpMdk9PZ0tVbEpRU1BxUmdGWXpKTng1dnRGcDdjbDlWVlVYWGJlWWk1b1cwQnRGSm9yS09BRWo4ZEo1c3NaTkROWWQ1M1g3c1hrUTdkNm5hNFJWejc5Njl0b3M5Y2FSckpxeEY2QzR0V1VtQUl0NzlnMTAyZGxKVFcwZlYxZFhrOW9PTFdQSzlhOWN1Vy9BSDhDcWZUSDN2dCtaSmoxd1diazFFb3Z0RXBWUGNvNFBtdEkzR1FBL2U5Wk45VlhUUndvVzJyNlFTYnlhWldVMEFWTkdWbFpXRUVjRmtnbDA1V0RtRUJTUjJrMHFZVTBDSng1ckQ3bmI3bFBQT0l5OCs1WkpNWHkrZlpUVUJrRkdZSnQ2L2YzOUt1M1BnSGgxSVRDeUJDQzJ0OWgrV2hEczdXYkJnUGhVV3VQK1FrMTNZZnRsbFBRRWs0K3JxNm16WDVzbHpOeVlPbXNDSkhuNmU1K2RHdjJSK2V3MEJrQW5Zb2xWZlgwL1l2T21GWUdKM0dpL3VMT1BsM1QxVmVoVUJCS1F6L0hISXhzWkdWMFRBZnI3Si9LWVI5SFp1U1lOWFpxOGtnR1FldmhTSzJVSU00MTdtNjJTU3gwZkk0Vk10WTNqQ0NZZE1aSXYwYWdLWVFiekxYNjlROWhad2ovODJMeVhEZmIrY2ZyeGxPNWNHOFpFdFlTOHdOZXZxNVhWRUFDOXpzd2VHbFpVamdUMFFoOUJVamdnUVd0Wm5Sc1FSQVRJRGg5QzBpQWdRV3RablJzUVJBVElEaDlDMGlBZ1FXdFpuUnNUL0QveG9scTU2alJwbEFBQUFBRWxGVGtTdVFtQ0NcIiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBCb3gsXG4gIENpcmN1bGFyUHJvZ3Jlc3MsXG4gIEdyaWQsXG4gIFBhcGVyLFxuICBUeXBvZ3JhcGh5LFxuICBDb250YWluZXIsXG59IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuY2xhc3MgTG9hZGluZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGJvZHkgPSAoXG4gICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgIDxQYXBlclxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwYWRkaW5nOiAnNXB4JyxcbiAgICAgICAgICAgIG1hcmdpblRvcDogJzEwcHgnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8R3JpZCBjb250YWluZXI+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAxMDAsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDMnPkxvYWRpbmcuLi48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAwLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdzdWJ0aXRsZTEnPlRoaXMgbWF5IHRha2UgYSBtb21lbnQuPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvUGFwZXI+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7Ym9keX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTG9hZGluZztcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTWFwYm94R0wgZnJvbSAnLi4vbGliL01hcGJveEdMLmpzJztcbmltcG9ydCBhcGlDYWxsIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9hcGlDYWxsLmpzJztcbmltcG9ydCBnZXRFcnJvck1lc3NhZ2UgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyc7XG5pbXBvcnQgRXJyb3IgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2Vycm9yLmpzJztcbmltcG9ydCBMb2FkaW5nIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2FkaW5nLmpzJztcbmltcG9ydCB7IG1hcGJveFRva2VuIH0gZnJvbSAnLi4vbGliL3V0aWxzLmpzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTG9jYWxUYXhpSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0xvY2FsVGF4aSc7XG5pbXBvcnQgUGhvbmVJblRhbGtJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvUGhvbmVJblRhbGsnO1xuaW1wb3J0IE1lZGljYXRpb25JY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvTWVkaWNhdGlvbic7XG5pbXBvcnQgTmF2aWdhdGlvbkljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9OYXZpZ2F0aW9uJztcbmltcG9ydCBDb250YWN0c0ljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Db250YWN0cyc7XG5pbXBvcnQge1xuICBCb3gsXG4gIFBhcGVyLFxuICBCcmVhZGNydW1icyxcbiAgQXBwQmFyLFxuICBUb29sYmFyLFxuICBUeXBvZ3JhcGh5LFxuICBMaW5rLFxuICBMaXN0LFxuICBMaXN0SXRlbSxcbiAgTGlzdEl0ZW1CdXR0b24sXG4gIEdyaWQsXG4gIFRleHRGaWVsZCxcbiAgQnV0dG9uLFxuICBDb250YWluZXIsXG4gIEZvcm1Db250cm9sLFxuICBJbnB1dExhYmVsLFxuICBTZWxlY3QsXG4gIE1lbnVJdGVtLFxufSBmcm9tICdAbXVpL21hdGVyaWFsJztcblxuY2xhc3MgTW9iaWxlU2l0ZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgdmlldzogJ21vYmlsZV9zaXRlJyxcbiAgICAgIGlkOiB0aGlzLmdldFN0b3JlTnVtYmVyKCksXG4gICAgICBoYXNoOiB0aGlzLmdldEhhc2goKSxcbiAgICAgIHN0b3JlX25hbWU6ICcnLFxuICAgICAgbG9nbzogJycsXG4gICAgICBzdG9yZV9hZGRyZXNzOiAnJyxcbiAgICAgIHN0b3JlX2FkZHJlc3NfdHdvOiAnJyxcbiAgICAgIHBoYXJtYWN5X3Bob25lOiAnJyxcbiAgICAgIHBoYXJtYWN5X3NtczogJycsXG4gICAgICBjaXR5OiAnJyxcbiAgICAgIHN0YXRlOiAnJyxcbiAgICAgIHppcDogJycsXG4gICAgICBlbWFpbDogJycsXG4gICAgICB3ZWJzaXRlOiAnJyxcbiAgICAgIHdlYl92ZXJzaW9uOiBudWxsLFxuICAgICAgZmFjZWJvb2tfbGluazogJycsXG4gICAgICBwaGFybWFjeV9ob3VyczogJycsXG4gICAgICBidG5fY291bnQ6IDAsXG4gICAgICBwaGFybV9jb29yZHM6IFtdLFxuICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlczoge30sXG4gICAgICBmaWVsZHM6IGZpZWxkcyxcbiAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIHBhZ2VzOiBbXG4gICAgICAgIHsgbmFtZTogJ1JlZmlsbCAtIEVudGVyIFJ4IG51bWJlcicsIHZpZXc6ICdyZWZpbGxfcmVxdWVzdCcsIGljb246IDxNZWRpY2F0aW9uSWNvbi8+IH0sXG4gICAgICAgIHsgbmFtZTogJ0FkZCB0byBDb250YWN0cycsIHZpZXc6ICdhZGRfY29udGFjdHMnLCBpY29uOiA8Q29udGFjdHNJY29uLz4gfSxcbiAgICAgICAgeyBuYW1lOiAnSG91cnMgYW5kIERpcmVjdGlvbicsIHZpZXc6ICdob3Vyc19hbmRfZGlyZWN0aW9ucycsIGljb246IDxMb2NhbFRheGlJY29uIC8+IH0sXG4gICAgICBdLFxuICAgIH07XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDgxMCAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPD0gMTA4MCkge1xuICAgICAgdGhpcy5zdGF0ZS5wYWdlcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ0NhbGwgUGhhcm1hY3knLCB2aWV3OiAnY2FsbF9waGFybWFjeScsIGljb246IDxQaG9uZUluVGFsa0ljb24vPixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdGF0ZS5wYWdlcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ05hdmlnYXRpb24nLCB2aWV3OiAnbmF2aWdhdGlvbicsIGljb246IDxOYXZpZ2F0aW9uSWNvbi8+LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGZpZWxkcyA9IHtcbiAgICAgIGZpcnN0X25hbWU6IHtcbiAgICAgICAgdGl0bGU6ICdGaXJzdCBOYW1lJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MSwyMH0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZmVlZGJhY2sgPSAnSW52YWxpZCBGaXJzdCBOYW1lIEZvcm1hdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5maXJzdF9uYW1lLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBsYXN0X25hbWU6IHtcbiAgICAgICAgdGl0bGU6ICdMYXN0IE5hbWUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXsxLDIwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2sgPSAnSW52YWxpZCBMYXN0IE5hbWUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5sYXN0X25hbWUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHBob25lX251bWJlcjoge1xuICAgICAgICB0aXRsZTogJ1Bob25lIE51bWJlcicsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlxcKD9cXGR7M31bKSBdP1xcZHszfVstIF0/XFxkezR9Ly50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLnBob25lX251bWJlci5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmZlZWRiYWNrID0gJ0ludmFsaWQgUGhvbmUgTnVtYmVyIChpLmUuLCAoOTg5KTExMS0xMTExIG9yIDk4OTExMTExMTEpJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLnBob25lX251bWJlci5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzLnBob25lX251bWJlci5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5waG9uZV9udW1iZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGVtYWlsOiB7XG4gICAgICAgIHRpdGxlOiAnRW1haWwgQWRkcmVzcycsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MCwyNTV9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuZW1haWwuZmVlZGJhY2sgPSAnSW52YWxpZCBFbWFpbCBBZGRyZXNzIEZvcm1hdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmVtYWlsLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBmYXhfbnVtYmVyOiB7XG4gICAgICAgIHRpdGxlOiAnRmF4IE51bWJlcicsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eXFwoP1xcZHszfVspIF0/XFxkezN9Wy0gXT9cXGR7NH0vLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gJycpIHtcbiAgICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkcy5mYXhfbnVtYmVyLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZmVlZGJhY2sgPSAnSW52YWxpZCBGYXggTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5mYXhfbnVtYmVyLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5mYXhfbnVtYmVyLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBwcmVzY3JpcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcmVzY3JpcHRpb25fMDoge1xuICAgICAgICAgICAgdGl0bGU6ICdQcmVzY3JpcHRpb24gTnVtYmVyJyxcbiAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICAgICAgaWYgKCEvXlxcZHs1LDEwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrID0gJ0ludmFsaWQgUHJlc2NyaXB0aW9uIE51bWJlciBGb3JtYXQnO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGRlbGl2ZXJ5OiB7XG4gICAgICAgIHRpdGxlOiAnRGVsaXZlcnkgLyBNYWlsIFNoaXBtZW50JyxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6ICdObycsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgY29weS5maWVsZHMuZGVsaXZlcnkudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICdzZWxlY3RvcicsXG4gICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgeyB2YWx1ZTogJ05vJywgTmFtZTogJ05vJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1llcycsIE5hbWU6ICdZZXMnIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwaWNrdXA6IHtcbiAgICAgICAgdGl0bGU6ICdEZXNpcmVkIFBpY2t1cCBUaW1lJyxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6ICctLSBTZWxlY3QgT25lIC0tJyxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJy0tIFNlbGVjdCBPbmUgLS0nKSB7XG4gICAgICAgICAgICBjb3B5LmZpZWxkcy5waWNrdXAuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29weS5maWVsZHMucGlja3VwLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC5mZWVkYmFjayA9ICdQbGVhc2Ugc2VsZWN0IGEgdmFsaWQgdGltZSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3NlbGVjdG9yJyxcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7IHZhbHVlOiAnLS0gU2VsZWN0IE9uZSAtLScsIE5hbWU6ICctLSBTZWxlY3QgT25lIC0tJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ05vIFByZWZlcmVuY2UnLCBOYW1lOiAnTm8gUHJlZmVyZW5jZScgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdTb21ldGltZSBUb2RheScsIE5hbWU6ICdTb21ldGltZSBUb2RheScgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdUb21vcnJvdycsIE5hbWU6ICdUb21vcnJvdycgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdUb21vcnJvdyBNb3JuaW5nJywgTmFtZTogJ1RvbW9ycm93IE1vcm5pbmcnIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnVG9tb3Jyb3cgQWZ0ZXJub29uJywgTmFtZTogJ1RvbW9ycm93IEFmdGVybm9vbicgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbW1lbnRzOiB7XG4gICAgICAgIHRpdGxlOiAnQ29tbWVudHMnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogZmFsc2UsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlsgLX5dezAsMjU1fSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzLmNvbW1lbnRzLmZlZWRiYWNrID0gJ0ludmFsaWQgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmNvbW1lbnRzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMuY29tbWVudHMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuc3RhdGUuZmllbGRzID0gZmllbGRzO1xuICAgIHRoaXMuY2hhbmdlVmlldyA9IHRoaXMuY2hhbmdlVmlldy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2xlYXJGaWVsZHMgPSB0aGlzLmNsZWFyRmllbGRzLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRGdWxsQXV0aCA9IHRoaXMuZ2V0RnVsbEF1dGguYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFN0b3JlTnVtYmVyID0gdGhpcy5nZXRTdG9yZU51bWJlci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0UnhOdW1iZXIgPSB0aGlzLmdldFJ4TnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRIYXNoID0gdGhpcy5nZXRIYXNoLmJpbmQodGhpcyk7XG4gICAgdGhpcy5hZGRDb250YWN0ID0gdGhpcy5hZGRDb250YWN0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5lbnRpdHkgPSB0aGlzLmVudGl0eS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQgPSB0aGlzLmNvbnN0cnVjdFhNTERvY3VtZW50LmJpbmQodGhpcyk7XG4gICAgdGhpcy5zdWJtaXRGb3JtID0gdGhpcy5zdWJtaXRGb3JtLmJpbmQodGhpcyk7XG4gICAgdGhpcy5pc01vYmlsZSA9IHRoaXMuaXNNb2JpbGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmFkZFJYTnVtYmVyID0gdGhpcy5hZGRSWE51bWJlci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0RGF0YSA9IHRoaXMuZ2V0RGF0YS5iaW5kKHRoaXMpO1xuICAgIHRoaXMubG9hZCA9IHRoaXMubG9hZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0R29vZ2xlTWFwc1VSTCA9IHRoaXMuZ2V0R29vZ2xlTWFwc1VSTC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZG93bmxvYWRUb0ZpbGUgPSB0aGlzLmRvd25sb2FkVG9GaWxlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXROYXZpZ2F0aW9uID0gdGhpcy5nZXROYXZpZ2F0aW9uLmJpbmQodGhpcyk7XG4gICAgdGhpcy5wcmVzY3JpcHRpb25EYXRhID0gdGhpcy5wcmVzY3JpcHRpb25EYXRhLmJpbmQodGhpcyk7XG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHRoZW1lTW9kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNoYW5nZVZpZXcodmlldykge1xuICAgIHRoaXMuc2V0U3RhdGUoeyB2aWV3OiB2aWV3IH0pO1xuICB9XG5cbiAgY2xlYXJGaWVsZHMoKSB7XG4gICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvcHkuZmllbGRzKSB7XG4gICAgICBpZiAoY29weS5maWVsZHNba2V5XS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChrZXkgPT0gJ3BpY2t1cCcpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJy0tIFNlbGVjdCBPbmUgLS0nO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PSAnZGVsaXZlcnknKSB7XG4gICAgICAgICAgY29weS5maWVsZHNba2V5XS52YWx1ZSA9ICdObyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29weS5maWVsZHNba2V5XS52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3B5LmZpZWxkc1trZXldLnJlcXVpcmVkKSB7XG4gICAgICAgICAgY29weS5maWVsZHNba2V5XS5lcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvcHkuYnRuX2NvdW50ID49IDApIHtcbiAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcmVzY3JpcHRpb25fMDoge1xuICAgICAgICAgICAgdGl0bGU6ICdQcmVzY3JpcHRpb24gTnVtYmVyJyxcbiAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICAgICAgaWYgKCEvXlxcZHs1LDEwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrID0gJ0ludmFsaWQgUHJlc2NyaXB0aW9uIE51bWJlciBGb3JtYXQnO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIGNvcHkuYnRuX2NvdW50ID0gMDtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgfVxuXG4gIGdldEZ1bGxBdXRoKCkge1xuICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSA9PSAnZGVtbydcbiAgICB8fCB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSA9PSAndD1kZW1vJykge1xuICAgICAgcmV0dXJuICcxSHMxRjJ5NzcxMDI3MTAxMDg2JztcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEsIDMpID09ICd0PScpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0b3JlTnVtYmVyKCkge1xuICAgIC8vIEZvciBsb2NhbCB0ZXN0aW5nXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAnbG9jYWxob3N0Jykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cmluZyg0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXJ5ID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJyk7XG4gICAgICByZXR1cm4gYXJ5W2FyeS5sZW5ndGggLSAxXTtcbiAgICB9XG4gIH1cblxuICBwcmVzY3JpcHRpb25EYXRhKCkge1xuICAgIGNvbnN0IHByZXNjcmlwdGlvbl92YWx1ZXMgPSBbXTtcbiAgICBjb25zdCBwcmVzY3JpcHRpb25zID0gdGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9ucztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXNjcmlwdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcHJlc2NyaXB0aW9uc1tpXVtgcHJlc2NyaXB0aW9uXyR7aX1gXS52YWx1ZTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBwcmVzY3JpcHRpb25fdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPHRkPnsgcHJlc2NyaXB0aW9uX3ZhbHVlcy5qb2luKCcsICcpIH08L3RkPlxuICAgICk7XG4gIH1cblxuICBnZXRSeE51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGdWxsQXV0aCgpLnN1YnN0cmluZygxMykucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgfVxuXG4gIGdldEhhc2goKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RnVsbEF1dGgoKS5zdWJzdHJpbmcoMCwgNyk7XG4gIH1cblxuICBkb3dubG9hZFRvRmlsZShjb250ZW50LCBmaWxlbmFtZSwgY29udGVudF90eXBlKSB7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjb250ZW50XSwgeyB0eXBlOiBjb250ZW50X3R5cGUgfSk7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBjb25zdCBkb3dubG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBkb3dubG9hZC5ocmVmID0gdXJsO1xuICAgIGRvd25sb2FkLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZCk7XG4gICAgZG93bmxvYWQuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvd25sb2FkKTtcbiAgfVxuXG4gIGFkZENvbnRhY3QoKSB7XG4gICAgY29uc3Qgc3RvcmVfbmFtZSA9IHRoaXMuc3RhdGUuc3RvcmVfbmFtZSA/IHRoaXMuc3RhdGUuc3RvcmVfbmFtZSA6ICcnO1xuICAgIGNvbnN0IGFkZHJlc3MxID0gdGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzID8gdGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzIDogJyc7XG4gICAgY29uc3QgYWRkcmVzczIgPSB0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3NfdHdvID8gdGhpcy5zdG9yZV9hZGRyZXNzX3R3byA6ICcnO1xuICAgIGNvbnN0IGNpdHkgPSB0aGlzLnN0YXRlLmNpdHkgPyB0aGlzLnN0YXRlLmNpdHkgOiAnJztcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUuc3RhdGUgPyB0aGlzLnN0YXRlLnN0YXRlIDogJyc7XG4gICAgY29uc3QgemlwID0gdGhpcy5zdGF0ZS56aXAgPyB0aGlzLnN0YXRlLnppcCA6ICcnO1xuICAgIGNvbnN0IGVtYWlsID0gdGhpcy5zdGF0ZS5lbWFpbCA/IHRoaXMuc3RhdGUuZW1haWwgOiAnJztcbiAgICBjb25zdCBwaG9uZSA9IHRoaXMuc3RhdGUucGhvbmVfbnVtYmVyID8gdGhpcy5zdGF0ZS5waG9uZV9udW1iZXIgOiAnJztcbiAgICBjb25zdCBsb2dvID0gdGhpcy5zdGF0ZS5sb2dvID8gdGhpcy5zdGF0ZS5sb2dvIDogJyc7XG4gICAgY29uc3QgdXJsID0gdGhpcy5zdGF0ZS53ZWJzaXRlID8gdGhpcy5zdGF0ZS53ZWJzaXRlIDogJyc7XG4gICAgY29uc3Qgc21zID0gdGhpcy5zdGF0ZS5waGFybWFjeV9zbXMgPyB0aGlzLnN0YXRlLnBoYXJtYWN5X3NtcyA6ICcnO1xuICAgIGNvbnN0IHZjYXJkID0gYEJFR0lOOlZDQVJEXG5WRVJTSU9OOjMuMFxuQ0xBU1M6UFVCTElDXG5PUkc6JHtzdG9yZV9uYW1lfVxuQURSO1RZUEU9d29yazo7OyR7YWRkcmVzczF9JHthZGRyZXNzMn07JHtjaXR5fTske3N0YXRlfTske3ppcH07XG5FTUFJTDtUWVBFPWludGVybmV0LHByZWY6JHtlbWFpbH1cblRFTDtUWVBFPXdvcmssdm9pY2U6JHtwaG9uZX1cblRFTDtUWVBFPW1vYmlsZSx2b2ljZToke3Ntc31cblBIT1RPO1ZBTFVFPXVyaTtUWVBFPUdJRjoke2xvZ299XG5VUkw7VFlQRT13b3JrOiR7dXJsfVxuRU5EOlZDQVJEXG4gICAgYDtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogdmNhcmQudHJpbSgpLFxuICAgICAgZmlsZW5hbWU6IHRoaXMuc3RhdGUuc3RvcmVfbmFtZS5yZXBsYWNlKC8oXFxzfChcXC58IFxcLikpL2csICcnKSArICcudmNmJyxcbiAgICAgIGNvbnRlbnRfdHlwZTogJ3RleHQvdmNhcmQnLFxuICAgIH07XG4gIH1cblxuICBpc01vYmlsZSgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIHJldHVybiAoL2FuZHJvaWR8YXZhbnRnb3xibGFja2JlcnJ5fGJsYXplcnxjb21wYWx8ZWxhaW5lfGZlbm5lY3xoaXB0b3B8aWVtb2JpbGV8aXAoaG9uZXxvZCl8aXJpc3xraW5kbGV8bGdlIHxtYWVtb3xtaWRwfG1tcHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHN5bWJpYW58dHJlb3x1cFxcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vIFtOQyxPUl0vaS4gdGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSk7XG4gIH1cblxuICBlbnRpdHkoLi4uYXJncykge1xuICAgIGNvbnN0IFtkb2MsIGVudGl0eU5hbWUsIC4uLmV4dHJhXSA9IGFyZ3M7XG4gICAgY29uc3Qgbm9kZSA9IGRvYy5jcmVhdGVFbGVtZW50KGVudGl0eU5hbWUpO1xuICAgIGZvciAoY29uc3QgYXJnIG9mIGV4dHJhKSB7XG4gICAgICBpZiAoIWFyZykge1xuICAgICAgICBub2RlLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSgnJykpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgICAgICBub2RlLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZShhcmcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoYXJnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBjb25zdHJ1Y3RYTUxEb2N1bWVudCgpIHtcbiAgICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy5zcnNwaGFybWFjeS5jb20vWE1ML1BhdGllbnRSZWZpbGxSZXF1ZXN0JyxcbiAgICAgICAgJ1BhdGllbnRSZWZpbGxSZXF1ZXN0JyxcbiAgICAgICAgbnVsbCk7XG5cbiAgICBjb25zdCByb290ID0gZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgICBjb25zdCByeCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHRoaXMuc3RhdGUuYnRuX2NvdW50OyBpKyspIHtcbiAgICAgIC8vIEF2b2lkIGVtcHR5IHZhbHVlc1xuICAgICAgaWYgKHRoaXMuc3RhdGUuZmllbGRzLnByZXNjcmlwdGlvbnNbaV1bYHByZXNjcmlwdGlvbl8ke2l9YF0udmFsdWUpIHtcbiAgICAgICAgcngucHVzaCh0aGlzLnN0YXRlLmZpZWxkcy5wcmVzY3JpcHRpb25zW2ldW2BwcmVzY3JpcHRpb25fJHtpfWBdLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdUbycsIHRoaXMuc3RhdGUuaWQpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0Zyb20nLCAnc3Jzd2ViJykpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnU2VudFRpbWUnLCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpKTtcbiAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlICYmIHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC52YWx1ZSAhPT0gJy0tIFNlbGVjdCBPbmUgLS0nKSB7XG4gICAgICBjb25zdCB0b21vcnJvdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgKDYwICogNjAgKiAyNCAqIDEwMDApO1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRvbW9ycm93KS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gICAgICBsZXQgaG91ciA9ICcnO1xuICAgICAgaWYgKHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC52YWx1ZSA9PSAnVG9tb3Jyb3cgTW9ybmluZycpIHtcbiAgICAgICAgaG91ciA9ICc5JztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlID09ICdUb21vcnJvdyBBZnRlcm5vb24nKSB7XG4gICAgICAgIGhvdXIgPSAnMTInO1xuICAgICAgfVxuICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgaWYgKGhvdXIpIHtcbiAgICAgICAgcmVzdWx0ID0gYCR7ZGF0ZX1UJHtob3VyfTowMDowMGA7XG4gICAgICB9XG4gICAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1BpY2t1cFRpbWUnLCByZXN1bHQpKTtcbiAgICB9XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdNZXNzYWdlSUQnLCBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpKSk7XG4gICAgY29uc3QgcnhOdW1iZXJzID0gcngubWFwKChudW1iZXIpID0+IHRoaXMuZW50aXR5KGRvYywgJ1J4TnVtYmVyJywgbnVtYmVyKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdSeE51bWJlcnMnLCAuLi5yeE51bWJlcnMpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0NvbnRhY3QnLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdMYXN0TmFtZScsIHRoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS52YWx1ZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0ZpcnN0TmFtZScsIHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudmFsdWUpLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdQaG9uZScsIHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci52YWx1ZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0VtYWlsJywgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWUpLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdGYXgnLCB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnZhbHVlKSkpO1xuICAgIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5kZWxpdmVyeS52YWx1ZSA9PSAnWWVzJykge1xuICAgICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdQaWNrdXBNZXRob2QnLCAnRCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdQaWNrdXBNZXRob2QnLCAnUCcpKTtcbiAgICB9XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdDb21tZW50JywgdGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMudmFsdWUpKTtcbiAgICByZXR1cm4gZG9jO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGF0YSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgY29weS5kYXRhID0gW107XG4gICAgICBmb3IgKGNvbnN0IGRlZiBpbiBjb3B5LmZpZWxkcykge1xuICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihjb3B5LmZpZWxkcywgZGVmKSkge1xuICAgICAgICAgIGlmIChjb3B5LmZpZWxkc1tkZWZdLnZhbHVlKSB7XG4gICAgICAgICAgICBhd2FpdCBjb3B5LmRhdGEucHVzaChjb3B5LmZpZWxkc1tkZWZdLnZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgY29weS5kYXRhLnB1c2goJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9XG4gIH1cblxuICBhZGRSWE51bWJlcigpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgY29weS5idG5fY291bnQrKztcbiAgICBjb25zdCBwcmVzY3JpcHRpb24gPSBgcHJlc2NyaXB0aW9uXyR7Y29weS5idG5fY291bnR9YDtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBvYmpbcHJlc2NyaXB0aW9uXSA9IHtcbiAgICAgIC8vIEludGVudGlvbmFsbHkgbGVmdCBibGFua1xuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZToge1xuICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgIG9uQ2hhbmdlOiAodmFsdWUsIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgIGlmICghL15cXGR7NSwxMH0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICdJbnZhbGlkIFByZXNjcmlwdGlvbiBOdW1iZXIgRm9ybWF0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgIH0sXG4gICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICBmZWVkYmFjazogJycsXG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcbiAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zLnB1c2gob2JqKTtcbiAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICB9XG5cbiAgZ2V0R29vZ2xlTWFwc1VSTCgpIHtcbiAgICBjb25zdCB1cmwgPSBgKyR7dGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzfVxuICAgICske3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc190d299XG4gICAgKyR7dGhpcy5zdGF0ZS5jaXR5fSxcbiAgICArJHt0aGlzLnN0YXRlLnN0YXRlfVxuICAgICske3RoaXMuc3RhdGUuemlwfWA7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb24oY29vcmRfc3RyaW5nKSB7XG4gICAgaWYgKG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IucGxhdGZvcm0pIHtcbiAgICAgIGlmICgobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ2lQaG9uZScpICE9IC0xKVxuICAgICAgICB8fCAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ01hYycpICE9IC0xKVxuICAgICAgICB8fCAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ2lQYWQnKSAhPSAtMSlcbiAgICAgICAgfHwgKG5hdmlnYXRvci5wbGF0Zm9ybS5pbmRleE9mKCdpUG9kJykgIT0gLTEpKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKCdtYXBzOi8vP3E9JyArIGNvb3JkX3N0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cub3BlbignZ29vZ2xlLm5hdmlnYXRpb246cT0nICsgY29vcmRfc3RyaW5nICsgJyZtb2RlPWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsb2FkKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIHRhZzogdGhpcy5nZXRTdG9yZU51bWJlcigpLFxuICAgIH07XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBlbmRwb2ludDogJ3F1ZXJ5JyxcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgIH07XG4gICAgYXBpQ2FsbChvcHRpb25zKS50aGVuKCBhc3luYyAocmVzcCkgPT4ge1xuICAgICAgY29uc3QgciA9IEpTT04ucGFyc2UocmVzcC5kYXRhKTtcbiAgICAgIGNvbnN0IHBoYXJtX2Nvb3JkcyA9IFtyLmFkZHJlc3MxXG4gICAgICAgICsgJyAnXG4gICAgICAgICsgci5jaXR5XG4gICAgICAgICsgJyAnXG4gICAgICAgICsgci5zdGF0ZVxuICAgICAgICArICcgJ1xuICAgICAgICArIHIuemlwXTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzdG9yZV9uYW1lOiByLm5hbWUsXG4gICAgICAgIGxvZ286IHIubG9nbyxcbiAgICAgICAgc3RvcmVfYWRkcmVzczogci5hZGRyZXNzMSxcbiAgICAgICAgc3RvcmVfYWRkcmVzc190d286IHIuYWRkcmVzczIsXG4gICAgICAgIHBoYXJtYWN5X3Bob25lOiByLnBob25lLFxuICAgICAgICBwaGFybWFjeV9zbXM6IHIuc21zLFxuICAgICAgICBlbWFpbDogci5lbWFpbCxcbiAgICAgICAgd2Vic2l0ZTogci53ZWJzaXRlLFxuICAgICAgICB3ZWJfdmVyc2lvbjogci53ZWJfdmVyc2lvbixcbiAgICAgICAgY2l0eTogci5jaXR5LFxuICAgICAgICBzdGF0ZTogci5zdGF0ZSxcbiAgICAgICAgemlwOiByLnppcCxcbiAgICAgICAgZmFjZWJvb2tfbGluazogci5mYWNlYm9va19saW5rLFxuICAgICAgICBwaGFybWFjeV9ob3Vyczogci5zdG9yZV9ob3VycyxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBwaGFybV9jb29yZHM6IHBoYXJtX2Nvb3JkcyxcbiAgICAgIH0pO1xuICAgIH0pLmNhdGNoKCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3JzOiBnZXRFcnJvck1lc3NhZ2UoZXJyKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICBjb25zdCByZWZpbGwgPSAnPD94bWwgdmVyc2lvbj1cIjEuMFwiPz4nICsgbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0aGlzLmNvbnN0cnVjdFhNTERvY3VtZW50KCkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGVuZHBvaW50OiAnc3VibWl0JyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBkYXRhOiByZWZpbGwsXG4gICAgfTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIChyZXNwKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZVZpZXcoJ3N1Y2Nlc3Nfc3VibWl0Jyk7XG4gICAgfSkuY2F0Y2goIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiBnZXRFcnJvck1lc3NhZ2UoZXJyKSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCBicmVhZGNydW1icyA9ICcnO1xuICAgIGlmICh0aGlzLnN0YXRlLnZpZXcgIT09ICdtb2JpbGVfc2l0ZScpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5zdGF0ZS5wYWdlcy5maW5kKChwKSA9PiB7XG4gICAgICAgIHJldHVybiBwLnZpZXcgPT0gdGhpcy5zdGF0ZS52aWV3O1xuICAgICAgfSk7XG4gICAgICBicmVhZGNydW1icyA9IChcbiAgICAgICAgPEJyZWFkY3J1bWJzIHN4PXt7IHBhZGRpbmc6ICc1cHgnIH19PlxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICB1bmRlcmxpbmU9J2hvdmVyJ1xuICAgICAgICAgICAgY29sb3I9J2luaGVyaXQnXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnZpZXcgIT09ICdtb2JpbGVfc2l0ZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VWaWV3KCdtb2JpbGVfc2l0ZScpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+SG9tZTwvTGluaz5cbiAgICAgICAgICA8VHlwb2dyYXBoeSBjb2xvcj0ndGV4dC5wcmltYXJ5Jz57IGZvdW5kID8gZm91bmQubmFtZSA6ICdTdWNjZXNzZnVsIFN1Ym1pc3Npb24nIH08L1R5cG9ncmFwaHk+XG4gICAgICAgIDwvQnJlYWRjcnVtYnM+XG4gICAgICApO1xuICAgIH1cbiAgICBsZXQgYm9keSA9IChcbiAgICAgIDxMb2FkaW5nLz5cbiAgICApO1xuICAgIGlmICghdGhpcy5zdGF0ZS5sb2FkZWQpIHtcbiAgICAgIGJvZHkgPSAoXG4gICAgICAgIDxMb2FkaW5nLz5cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmVycm9ycykge1xuICAgICAgbGV0IGVycm9yID0gJyc7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ1BoYXJtYWN5IE5vdCBGb3VuZCAvIFN0b3JlIExpY2Vuc2Ugbm90IHZhbGlkJykge1xuICAgICAgICBlcnJvciA9ICdNaXNzaW5nIG9yIGludmFsaWQgc3RvcmUgdGFnIGluIHJlcXVlc3QnO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yID8gZXJyb3IgOiB0aGlzLnN0YXRlLmVycm9ycyxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5zdGF0ZS5zdG9yZV9uYW1lKSB7XG4gICAgICAgIHByb3BzLnJldHVyblRvID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IG51bGwgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBib2R5ID0gKFxuICAgICAgICBFcnJvcihwcm9wcylcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZS52aWV3KSB7XG4gICAgICAgIGNhc2UgJ21vYmlsZV9zaXRlJzpcbiAgICAgICAgICBib2R5ID0gKFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPExpc3RcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgcGFkZGluZzogJ3Vuc2V0JyB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5wYWdlcy5tYXAoKHAsIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlubmVyX2JveCA9IHAubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwLnZpZXcgPT0gJ2NhbGxfcGhhcm1hY3knKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBob25lID0gJ3RlbDovLysxJyArIHRoaXMuc3RhdGUucGhhcm1hY3lfcGhvbmUucmVwbGFjZSgvW14rXFxkXS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyX2JveCA9IDxMaW5rIGNvbG9yPSdibGFjaycgdW5kZXJsaW5lPSdub25lJyBocmVmPXtwaG9uZX0+eyBwLm5hbWUgfTwvTGluaz47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbSBkaXNhYmxlUGFkZGluZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3AubmFtZX0tJHtpZHh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMC41cmVtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJnY29sb3I6ICcjZGRkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2IxYWJhYicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFsncmVmaWxsX3JlcXVlc3QnLCAnaG91cnNfYW5kX2RpcmVjdGlvbnMnXS5pbmNsdWRlcyhwLnZpZXcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcocC52aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAudmlldyA9PSAnYWRkX2NvbnRhY3RzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBjb250ZW50LCBmaWxlbmFtZSwgY29udGVudF90eXBlIH0gPSB0aGlzLmFkZENvbnRhY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRUb0ZpbGUoY29udGVudCwgZmlsZW5hbWUsIGNvbnRlbnRfdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwLnZpZXcgPT0gJ25hdmlnYXRpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb29yZF9zdHJpbmcgPSB0aGlzLmdldEdvb2dsZU1hcHNVUkwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmF2aWdhdGlvbihjb29yZF9zdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzI1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57IHAuaWNvbiB9PC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhHcm93OiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57IGlubmVyX2JveCB9PC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaXN0SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9MaXN0PlxuICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlZmlsbF9yZXF1ZXN0JzpcbiAgICAgICAgICBib2R5ID0gKFxuICAgICAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgICAgICAgICB7IGJyZWFkY3J1bWJzIH1cbiAgICAgICAgICAgICAgPFBhcGVyIHZhcmlhbnQ9J291dGxpbmVkJz5cbiAgICAgICAgICAgICAgICA8Zm9ybSBpZD0ncmVmaWxsLXJlcXVlc3QnPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezF9IHN4PXt7IHBhZGRpbmc6ICcyMHB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g0Jz5XZWIgUmVmaWxsIEZvcm08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLnByZXNjcmlwdGlvbnMubWFwKChwLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IGtleT17aWR4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXtwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3BbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpZHggPT0gMCA/IHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS50aXRsZSA6ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5vbkNoYW5nZSh2YWx1ZSwgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9ucy5sZW5ndGggPD0gOSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFJYTnVtYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPkFkZDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2wgZnVsbFdpZHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbD57IHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnRpdGxlIH08L0lucHV0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbElkPSdkZWxpdmVyeS1zZWxlY3QtbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5kZWxpdmVyeS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5kZWxpdmVyeS5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnR5cGUub3B0aW9ucy5tYXAoKG8sIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbSBrZXk9e2Ake28udmFsdWV9LSR7aWR4fWB9IHZhbHVlPXtvLnZhbHVlfT57IG8udmFsdWUgfTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbCBmdWxsV2lkdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dExhYmVsPnsgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnRpdGxlIH08L0lucHV0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbElkPSdwaWNrdXAtc2VsZWN0LWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSdwaWNrdXAtc2VsZWN0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnR5cGUub3B0aW9ucy5tYXAoKG8sIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbSBrZXk9e2Ake28udmFsdWV9LSR7aWR4fWB9IHZhbHVlPXtvLnZhbHVlfT57IG8udmFsdWUgfTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBwYWRkaW5nVG9wOiAnNXB4JywgYmdjb2xvcjogJ3JnYmEoMCwwLDAsLjA1JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9IHs0fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nc3VibWl0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuc3RhdGUuZmllbGRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJtaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIGZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkc1tmaWVsZF0uZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKEFycmF5LmlzQXJyYXkoZmllbGRzW2ZpZWxkXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWZpZWxkc1tmaWVsZF1bMF1bYHByZXNjcmlwdGlvbl8wYF0udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggWzEwLCAxMywgMTVdLmluY2x1ZGVzKHRoaXMuc3RhdGUud2ViX3ZlcnNpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGZpZWxkID09ICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGZpZWxkc1tmaWVsZF0udmFsdWUgPT0gJy0tIFNlbGVjdCBPbmUgLS0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5waWNrdXAuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VibWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezR9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3Jlc2V0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdlcnJvcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17NH0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdjYW5jZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J291dGxpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ21vYmlsZV9zaXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICA8L1BhcGVyPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3VjY2Vzc19zdWJtaXQnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgIHsgYnJlYWRjcnVtYnMgfVxuICAgICAgICAgICAgICA8UGFwZXIgdmFyaWFudD0nb3V0bGluZWQnPlxuICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g2JyBzeD17eyBwYWRkaW5nOiAnNXB4JyB9fT5GaWxsIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGF0aWVudDo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlICsgJyAnICsgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBob25lIE51bWJlcjo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWUgPyAnJyA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RW1haWw6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIudmFsdWUgPyAnJyA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RmF4IE51bWJlcjo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci52YWx1ZSB9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QcmVzY3JpcHRpb25zOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNjcmlwdGlvbkRhdGEoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGVsaXZlcnk6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGlja3VwOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5Db21tZW50czo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnIH19PlxuICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSBzeD17eyBwYWRkaW5nOiAnNXB4JyB9fT5Xb3VsZCB5b3UgbGlrZSB0byBzdWJtaXQgYW5vdGhlciBmaWxsPzwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezZ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3sgbWFyZ2luOiAnNXB4JyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J291dGxpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VWaWV3KCdtb2JpbGVfc2l0ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBOb1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezZ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7IG1hcmdpbjogJzVweCcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ3JlZmlsbF9yZXF1ZXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA8L1BhcGVyPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaG91cnNfYW5kX2RpcmVjdGlvbnMnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICc1cHgnIH19PlxuICAgICAgICAgICAgICB7IGJyZWFkY3J1bWJzIH1cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImg1XCI+U3RvcmUgSG91cnM8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLnBoYXJtYWN5X2hvdXJzXG4gICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5waGFybWFjeV9ob3Vyc1xuICAgICAgICAgICAgICA6ICdObyBzdG9yZSBob3VycyBhdmFpbGFibGUnfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJoNVwiPkRpcmVjdGlvbnM8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3N9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzX3R3b308L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLmNpdHl9LCB7dGhpcy5zdGF0ZS5zdGF0ZX0ge3RoaXMuc3RhdGUuemlwfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUucGhvbmVfbnVtYmVyfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjb29yZF9zdHJpbmcgPSB0aGlzLmdldEdvb2dsZU1hcHNVUkwoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmF2aWdhdGlvbihjb29yZF9zdHJpbmcpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgYmx1ZScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEdldCBEaXJlY3Rpb25zXG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZhY2Vib29rX2xpbmtcbiAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgOiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5zdGF0ZS5mYWNlYm9va19saW5rO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgYmx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIEZhY2Vib29rIExpbmtcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgPE1hcGJveEdMXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuPXttYXBib3hUb2tlbn1cbiAgICAgICAgICAgICAgICAgICAgYWRkcmVzc2VzPXt0aGlzLnN0YXRlLnBoYXJtX2Nvb3Jkc31cbiAgICAgICAgICAgICAgICAgICAgem9vbT17MTV9XG4gICAgICAgICAgICAgICAgICAgIHByb2plY3Rpb249eydnbG9iZSd9XG4gICAgICAgICAgICAgICAgICAgIGFsbG93RnVsbFNjcmVlbj17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgYWxsb3dOYXZpZ2F0aW9uPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCI+XG4gICAgICAgICAgPFRvb2xiYXI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGUubG9nbyA/IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBzcmM9e3RoaXMuc3RhdGUubG9nb31cbiAgICAgICAgICAgICAgICAgIGFsdD17dGhpcy5zdGF0ZS5zdG9yZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luOiAnNXB4JywgYm9yZGVyUmFkaXVzOiAnNXB4JywgaGVpZ2h0OiAnNXJlbScgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PnsgdGhpcy5zdGF0ZS5zdG9yZV9uYW1lIH08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L1Rvb2xiYXI+XG4gICAgICAgIDwvQXBwQmFyPlxuICAgICAgICB7Ym9keX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9iaWxlU2l0ZTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIYXNoUm91dGVyLCBSb3V0ZXMsIFJvdXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTW9iaWxlU2l0ZSBmcm9tICcuL3BhZ2VzL01vYmlsZVNpdGUuanMnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciwgY3JlYXRlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBDc3NCYXNlbGluZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuXG5jbGFzcyBBcHAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAjZGFya01vZGUgPSBudWxsO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXJyb3JzOiBudWxsLFxuICAgICAgdGhlbWU6ICdsaWdodCcsXG4gICAgfTtcbiAgICB0aGlzLnRoZW1lTGlnaHQgPSBjcmVhdGVUaGVtZSh7XG4gICAgICBwYWxldHRlOiB7XG4gICAgICAgIG1vZGU6ICdsaWdodCcsXG4gICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICBkZWZhdWx0OiAnI2VmZWZlZicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMudGhlbWVEYXJrID0gY3JlYXRlVGhlbWUoe1xuICAgICAgcGFsZXR0ZToge1xuICAgICAgICBtb2RlOiAnZGFyaycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlVGhlbWUgPSB0aGlzLnVwZGF0ZVRoZW1lLmJpbmQodGhpcyk7XG4gICAgdGhpcy5wcmVmZXJzRGFya01vZGUgPSB0aGlzLnByZWZlcnNEYXJrTW9kZS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5wcmVmZXJzRGFya01vZGUoKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLiNkYXJrTW9kZSkge1xuICAgICAgdGhpcy4jZGFya01vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy51cGRhdGVUaGVtZSk7XG4gICAgICB0aGlzLiNkYXJrTW9kZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJlZmVyc0RhcmtNb2RlKCkge1xuICAgIHRoaXMudXBkYXRlVGhlbWUoKTtcbiAgICB0aGlzLiNkYXJrTW9kZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk7XG4gICAgdGhpcy4jZGFya01vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy51cGRhdGVUaGVtZSk7XG4gIH1cblxuICB1cGRhdGVUaGVtZShlID0gbnVsbCkge1xuICAgIGlmICghZSkge1xuICAgICAgZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk7XG4gICAgfVxuICAgIGNvbnN0IHRoZW1lID0gZS5tYXRjaGVzID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICB0aGlzLnNldFN0YXRlKHsgdGhlbWUgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGlzLnN0YXRlLnRoZW1lID09PSAnZGFyaycgPyB0aGlzLnRoZW1lRGFyayA6IHRoaXMudGhlbWVMaWdodH0+XG4gICAgICAgIDxDc3NCYXNlbGluZSAvPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxIYXNoUm91dGVyPlxuICAgICAgICAgICAgPFJvdXRlcz5cbiAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9Jy8nIGVsZW1lbnQ9ezxNb2JpbGVTaXRlIHRoZW1lTW9kZT17dGhpcy5zdGF0ZS50aGVtZX0vPn0gLz5cbiAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9J21vYmlsZXNpdGUvJyBlbGVtZW50PXs8TW9iaWxlU2l0ZSB0aGVtZU1vZGU9e3RoaXMuc3RhdGUudGhlbWV9Lz59IC8+XG4gICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPSdtLzp0YWcnIGVsZW1lbnQ9ezxNb2JpbGVTaXRlIHRoZW1lTW9kZT17dGhpcy5zdGF0ZS50aGVtZX0gLz59IC8+XG4gICAgICAgICAgICA8L1JvdXRlcz5cbiAgICAgICAgICA8L0hhc2hSb3V0ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCBBcHAgZnJvbSAnLi9BcHAnO1xuXG5jb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7XG5jb25zdCByb290ID0gY3JlYXRlUm9vdChjb250YWluZXIpO1xucm9vdC5yZW5kZXIoPEFwcCAvPik7XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIi8vIG5vIGJhc2VVUklcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQxNzk6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbl9fd2VicGFja19yZXF1aXJlX18uTy5qID0gKGNodW5rSWQpID0+IChpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPT09IDApO1xuXG4vLyBpbnN0YWxsIGEgSlNPTlAgY2FsbGJhY2sgZm9yIGNodW5rIGxvYWRpbmdcbnZhciB3ZWJwYWNrSnNvbnBDYWxsYmFjayA9IChwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiwgZGF0YSkgPT4ge1xuXHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuXHQvLyBhZGQgXCJtb3JlTW9kdWxlc1wiIHRvIHRoZSBtb2R1bGVzIG9iamVjdCxcblx0Ly8gdGhlbiBmbGFnIGFsbCBcImNodW5rSWRzXCIgYXMgbG9hZGVkIGFuZCBmaXJlIGNhbGxiYWNrXG5cdHZhciBtb2R1bGVJZCwgY2h1bmtJZCwgaSA9IDA7XG5cdGlmKGNodW5rSWRzLnNvbWUoKGlkKSA9PiAoaW5zdGFsbGVkQ2h1bmtzW2lkXSAhPT0gMCkpKSB7XG5cdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZihydW50aW1lKSB2YXIgcmVzdWx0ID0gcnVudGltZShfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0fVxuXHRpZihwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbikgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG5cdGZvcig7aSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y2h1bmtJZCA9IGNodW5rSWRzW2ldO1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpICYmIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuXHRcdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdWzBdKCk7XG5cdFx0fVxuXHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG5cdH1cblx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uTyhyZXN1bHQpO1xufVxuXG52YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua3Nyc3JmbF9yZWFjdFwiXSA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtzcnNyZmxfcmVhY3RcIl0gfHwgW107XG5jaHVua0xvYWRpbmdHbG9iYWwuZm9yRWFjaCh3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIDApKTtcbmNodW5rTG9hZGluZ0dsb2JhbC5wdXNoID0gd2VicGFja0pzb25wQ2FsbGJhY2suYmluZChudWxsLCBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCkpOyIsIi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLy8gVGhpcyBlbnRyeSBtb2R1bGUgZGVwZW5kcyBvbiBvdGhlciBsb2FkZWQgY2h1bmtzIGFuZCBleGVjdXRpb24gbmVlZCB0byBiZSBkZWxheWVkXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFs1OTIsNDY1LDE1OCw3NTYsNDkwLDI3MywxNTksMTUxLDg0NSwzOTQsMTQzXSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oNjk5MSkpKVxuX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyhfX3dlYnBhY2tfZXhwb3J0c19fKTtcbiJdLCJuYW1lcyI6WyJkZWZlcnJlZCIsImxlYWZQcm90b3R5cGVzIiwiZ2V0UHJvdG8iLCJNYXBib3hHTCIsIl9Db21wb25lbnQiLCJfaW5oZXJpdHMiLCJfc3VwZXIiLCJwcm9wcyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImNhbGwiLCJpbnN0cnVjdGlvbnNSZWYiLCJSZWFjdCIsIm1hcFJlZiIsInN0YXRlIiwidmlldyIsImVycm9yIiwibWFya2VycyIsImluaXRNYXAiLCJiaW5kIiwiZ2VvY29kZU1hcmtlcnMiLCJnZXREaXJlY3Rpb25zIiwia2V5IiwidmFsdWUiLCJfdGhpczIiLCJyZXN1bHRzIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwidGhpcyIsImFjY2Vzc1Rva2VuIiwiX3N0ZXAiLCJjbnQiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFkZHJlc3NlcyIsInMiLCJuIiwiZG9uZSIsImFkZHJlc3MiLCJ1cmwiLCJlbmNvZGVVUklDb21wb25lbnQiLCJ0b1N0cmluZyIsIndpbmRvdyIsImZldGNoIiwidGhlbiIsInJlc3AiLCJqc29uIiwiZGF0YSIsInB1c2giLCJsZW5ndGgiLCJzZXRTdGF0ZSIsImUiLCJjb25zb2xlIiwibG9nIiwiZXJyIiwiZiIsIl90aGlzMyIsImZyb21Db29yZGluYXRlcyIsImpvaW4iLCJ0IiwidG9Db29yZGluYXRlcyIsImJhc2VVcmwiLCJjb25jYXQiLCJkaXJlY3Rpb25zIiwic3RhY2siLCJfdGhpczQiLCJtYXBib3hnbCIsIm9wdGlvbnMiLCJnZW9sb2NhdGUiLCJmdWxsc2NyZWVuIiwiY29udGFpbmVyIiwiY3VycmVudCIsImlkIiwic3R5bGUiLCJjZW50ZXIiLCJmZWF0dXJlcyIsInpvb20iLCJwcm9qZWN0aW9uIiwibWFwIiwiZ2VvTG9jYXRlIiwicG9zaXRpb25PcHRpb25zIiwiZW5hYmxlSGlnaEFjY3VyYWN5Iiwic2hvd1VzZXJMb2NhdGlvbiIsInRyYWNrVXNlckxvY2F0aW9uIiwic2hvd1VzZXJIZWFkaW5nIiwiYWRkQ29udHJvbCIsImFsbG93RnVsbFNjcmVlbiIsImFsbG93TmF2aWdhdGlvbiIsImVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwic2V0QXR0cmlidXRlIiwiaW5uZXJUZXh0IiwicGxhY2VfbmFtZSIsIm0iLCJzZXRMbmdMYXQiLCJnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwic2V0UG9wdXAiLCJzZXRIVE1MIiwib24iLCJzZXRGb2ciLCJ0cmlnZ2VyIiwiX3JvdXRlJGxlZ3MkIiwicm91dGUiLCJyb3V0ZXMiLCJnZW9qc29uIiwidHlwZSIsInByb3BlcnRpZXMiLCJpbm5lckhUTUwiLCJzdGVwcyIsImxlZ3MiLCJzdGVwIiwibWFuZXV2ZXIiLCJpbnN0cnVjdGlvbiIsImR1cmF0aW9uIiwiTWF0aCIsImZsb29yIiwiZ2V0U291cmNlIiwic2V0RGF0YSIsImFkZExheWVyIiwic291cmNlIiwibGF5b3V0IiwicGFpbnQiLCJfaSIsIl9tYXJrZXJzIiwiYWRkVG8iLCJfdGhpczUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJfdGhpczYiLCJjb21wb25lbnQiLCJjbGFzc05hbWUiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJoZWlnaHQiLCJtaW5IZWlnaHQiLCJvbkNsaWNrIiwiZXZ0IiwicmVmIiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3ciLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJpc1JlcXVpcmVkIiwidG9BZGRyZXNzIiwib3B0cyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY29udGV4dCIsInJlc3BvbnNlVHlwZSIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJoZWFkZXJzIiwiYXhpb3MiLCJtZXRob2QiLCJ0b0xvd2VyQ2FzZSIsImVuZHBvaW50IiwicmVzcG9uc2UiLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImluY2x1ZGVzIiwic3Vic3RyaW5nIiwiRXJyb3IiLCJDb250YWluZXIiLCJtYXhXaWR0aCIsIkdyaWQiLCJkaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwiaXRlbSIsInNyYyIsIlR5cG9ncmFwaHkiLCJ2YXJpYW50IiwicmV0dXJuVG8iLCJCdXR0b24iLCJ3aWR0aCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiZnVuYyIsIl9SZWFjdCRDb21wb25lbnQiLCJMb2FkaW5nIiwiYm9keSIsIlBhcGVyIiwicGFkZGluZyIsIm1hcmdpblRvcCIsInhzIiwiQm94IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJDaXJjdWxhclByb2dyZXNzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiYXJnIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJfX2F3YWl0IiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJpbmZvIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJ1bmRlZmluZWQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJhcnIiLCJsZW4iLCJhcnIyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwiZGVzY3JpcHRvciIsIl90b1Byb3BlcnR5S2V5IiwiX3NldFByb3RvdHlwZU9mIiwiUmVmZXJlbmNlRXJyb3IiLCJfZ2V0UHJvdG90eXBlT2YiLCJvYmoiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIl90b1ByaW1pdGl2ZSIsIk1vYmlsZVNpdGUiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJfZ2V0RGF0YSIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsInNoYW0iLCJQcm94eSIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsInJlc3VsdCIsIlN1cGVyIiwiTmV3VGFyZ2V0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJpbnN0YW5jZSIsImVycm9ycyIsImxvYWRlZCIsImdldFN0b3JlTnVtYmVyIiwiaGFzaCIsImdldEhhc2giLCJzdG9yZV9uYW1lIiwibG9nbyIsInN0b3JlX2FkZHJlc3MiLCJzdG9yZV9hZGRyZXNzX3R3byIsInBoYXJtYWN5X3Bob25lIiwicGhhcm1hY3lfc21zIiwiY2l0eSIsInppcCIsImVtYWlsIiwid2Vic2l0ZSIsIndlYl92ZXJzaW9uIiwiZmFjZWJvb2tfbGluayIsInBoYXJtYWN5X2hvdXJzIiwiYnRuX2NvdW50IiwicGhhcm1fY29vcmRzIiwidmFsaWQiLCJlcnJvck1lc3NhZ2VzIiwiZmllbGRzIiwib3BlbiIsInBhZ2VzIiwiaWNvbiIsIk1lZGljYXRpb25JY29uIiwiQ29udGFjdHNJY29uIiwiTG9jYWxUYXhpSWNvbiIsImlubmVyV2lkdGgiLCJpbm5lckhlaWdodCIsIlBob25lSW5UYWxrSWNvbiIsIk5hdmlnYXRpb25JY29uIiwiZmlyc3RfbmFtZSIsInRpdGxlIiwidHlwZW5hbWUiLCJyZXF1aXJlZCIsIm9uQ2hhbmdlIiwiY29weSIsImZlZWRiYWNrIiwiZnVsbHdpZHRoIiwibGFzdF9uYW1lIiwicGhvbmVfbnVtYmVyIiwiZmF4X251bWJlciIsInByZXNjcmlwdGlvbnMiLCJwcmVzY3JpcHRpb25fMCIsImlkeCIsImRlbGl2ZXJ5IiwiZGlzYWJsZWQiLCJOYW1lIiwicGlja3VwIiwiY29tbWVudHMiLCJjaGFuZ2VWaWV3IiwiY2xlYXJGaWVsZHMiLCJnZXRGdWxsQXV0aCIsImdldFJ4TnVtYmVyIiwiYWRkQ29udGFjdCIsImVudGl0eSIsImNvbnN0cnVjdFhNTERvY3VtZW50Iiwic3VibWl0Rm9ybSIsImlzTW9iaWxlIiwiYWRkUlhOdW1iZXIiLCJnZXREYXRhIiwibG9hZCIsImdldEdvb2dsZU1hcHNVUkwiLCJkb3dubG9hZFRvRmlsZSIsImdldE5hdmlnYXRpb24iLCJwcmVzY3JpcHRpb25EYXRhIiwic2VhcmNoIiwiYXJ5IiwicGF0aG5hbWUiLCJzcGxpdCIsInByZXNjcmlwdGlvbl92YWx1ZXMiLCJyZXBsYWNlIiwiY29udGVudCIsImZpbGVuYW1lIiwiY29udGVudF90eXBlIiwiYmxvYiIsIkJsb2IiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJkb3dubG9hZCIsImhyZWYiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJhZGRyZXNzMSIsImFkZHJlc3MyIiwicGhvbmUiLCJzbXMiLCJ0cmltIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiX2xlbiIsIl9rZXkiLCJkb2MiLCJlbnRpdHlOYW1lIiwiZXh0cmEiLCJub2RlIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsImlzQXJyYXkiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiX2UyIiwiY3JlYXRlVGV4dE5vZGUiLCJpbXBsZW1lbnRhdGlvbiIsImNyZWF0ZURvY3VtZW50Iiwicm9vdCIsImRvY3VtZW50RWxlbWVudCIsInJ4IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwidG9tb3Jyb3ciLCJnZXRUaW1lIiwiZGF0ZSIsImhvdXIiLCJyeE51bWJlcnMiLCJudW1iZXIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJpdGVyIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9jYWxsZWUiLCJkZWYiLCJfY29udGV4dCIsInQwIiwidDEiLCJoYXNPd24iLCJ0MiIsImNvb3JkX3N0cmluZyIsInBsYXRmb3JtIiwiaW5kZXhPZiIsInRhZyIsImFwaUNhbGwiLCJfcmVmIiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJwYXJzZSIsInN0b3JlX2hvdXJzIiwiX3giLCJnZXRFcnJvck1lc3NhZ2UiLCJyZWZpbGwiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJfdGhpczciLCJicmVhZGNydW1icyIsImZvdW5kIiwiZmluZCIsIkJyZWFkY3J1bWJzIiwic3giLCJMaW5rIiwidW5kZXJsaW5lIiwiY29sb3IiLCJMaXN0IiwiaW5uZXJfYm94IiwiTGlzdEl0ZW0iLCJkaXNhYmxlUGFkZGluZyIsIkxpc3RJdGVtQnV0dG9uIiwiZ2FwIiwidGV4dEFsaWduIiwiYmdjb2xvciIsImJvcmRlckJvdHRvbSIsImJvcmRlckNvbG9yIiwiX3RoaXM3JGFkZENvbnRhY3QiLCJmbGV4R3JvdyIsInNwYWNpbmciLCJUZXh0RmllbGQiLCJmdWxsV2lkdGgiLCJzaXplIiwibGFiZWwiLCJoZWxwZXJUZXh0IiwiRm9ybUNvbnRyb2wiLCJJbnB1dExhYmVsIiwiU2VsZWN0IiwibGFiZWxJZCIsIk1lbnVJdGVtIiwibXVsdGlsaW5lIiwic3VibWl0IiwiZmllbGQiLCJtYXJnaW4iLCJmb250U2l6ZSIsImN1cnNvciIsIkFwcEJhciIsInBvc2l0aW9uIiwiVG9vbGJhciIsImFsdCIsImJvcmRlclJhZGl1cyIsInRoZW1lTW9kZSIsIl9jbGFzc1ByaXZhdGVGaWVsZFNldCIsInJlY2VpdmVyIiwicHJpdmF0ZU1hcCIsInNldCIsIl9jbGFzc0FwcGx5RGVzY3JpcHRvclNldCIsIl9jbGFzc0V4dHJhY3RGaWVsZERlc2NyaXB0b3IiLCJfY2xhc3NQcml2YXRlRmllbGRHZXQiLCJnZXQiLCJfY2xhc3NBcHBseURlc2NyaXB0b3JHZXQiLCJhY3Rpb24iLCJoYXMiLCJfZGFya01vZGUiLCJXZWFrTWFwIiwiQXBwIiwiX2NvbXBvbmVudFdpbGxVbm1vdW50IiwiX2NvbXBvbmVudERpZE1vdW50IiwicHJpdmF0ZUNvbGxlY3Rpb24iLCJfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbiIsInRoZW1lIiwidGhlbWVMaWdodCIsImNyZWF0ZVRoZW1lIiwicGFsZXR0ZSIsIm1vZGUiLCJiYWNrZ3JvdW5kIiwiZGVmYXVsdCIsInRoZW1lRGFyayIsInVwZGF0ZVRoZW1lIiwicHJlZmVyc0RhcmtNb2RlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1hdGNoTWVkaWEiLCJhZGRFdmVudExpc3RlbmVyIiwibWF0Y2hlcyIsIlRoZW1lUHJvdmlkZXIiLCJDc3NCYXNlbGluZSIsIkhhc2hSb3V0ZXIiLCJSb3V0ZXMiLCJSb3V0ZSIsInBhdGgiLCJlbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjcmVhdGVSb290IiwicmVuZGVyIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJPIiwiY2h1bmtJZHMiLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsIkluZmluaXR5IiwiZnVsZmlsbGVkIiwiaiIsImV2ZXJ5Iiwic3BsaWNlIiwiZ2V0dGVyIiwiX19lc01vZHVsZSIsIm5zIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImRlZmluaXRpb24iLCJwcm9wIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtJZCIsIndlYnBhY2tKc29ucENhbGxiYWNrIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJzb21lIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwiX193ZWJwYWNrX2V4cG9ydHNfXyJdLCJzb3VyY2VSb290IjoiIn0=