/*! For license information please see main.4ee32a24.js.LICENSE.txt */ (()=>{"use strict";var e,t,r,n={9047:(e,t,r)=>{var n=r(6540),o=r(5338),i=r(4976),a=r(7767),s=r(5556),l=r.n(s),c=r(842),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)}var p=function(e,t,r){var n=e.replace(/\D/g,"");if(n.length<=3?t.fields[r].value=n.length?"(".concat(n):n:n.length<=6?t.fields[r].value="(".concat(n.substring(0,3),")").concat(n.substring(3)):n.length<=10&&(t.fields[r].value="(".concat(n.substring(0,3),")").concat(n.substring(3,6),"-").concat(n.substring(6))),t.fields[r].value&&/^(?:\+?1[-. ]?)?\(?([2-9][0-8][0-9])\)?[-. ]?([2-9][0-9]{2})[-. ]?([0-9]{4})$/.test(t.fields[r].value))t.fields[r].error=!1,t.fields[r].feedback="";else{var o="phone_number"==r?"Phone ":"Fax ";t.fields[r].error=!0,t.fields[r].feedback="Invalid "+o+"Number (i.e., (989)234-4435)"}t.fields[r].value&&function(e){console.log("typeof: ",f(e));var t=!1,r=e.slice(1,4),n=e.slice(5,8);return(null!=r&&r.startsWith("1")||null!=n&&n.startsWith("1"))&&(t=!0),t}(t.fields[r].value)&&(t.fields[r].error||(t.fields[r].error=!0),t.fields[r].feedback+=". Zip and central office codes cannot start with one.")};function d(e){return d="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},d(e)}function h(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.attributionControl=!1,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; display: inline-block;min-height: 44px; min-width: 44px; line-height: 44px; text-align: center;"),i.innerText="place";var a=this.state.markers[0].features[0].place_name;i.setAttribute("aria-label","place marker for ".concat(a)),i.setAttribute("title",this.state.markers[0].features[0].place_name);var s=new(u().Marker)(i);s.setLngLat(this.state.markers[0].features[0].geometry.coordinates),s.setPopup((new(u().Popup)).setHTML(""))),t.push(s)}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",role:"region","aria-label":"Interactive Map"})));var e}}])&&m(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(n.Component);b(A,"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 E=A;var x=r(1083);const k=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,x.A)({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)}))},C=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 O=r(7951),P=r(8239),S=r(4073),j=r(6990),T=function(e){return n.createElement(O.A,{maxWidth:"lg"},n.createElement(P.Ay,{container:!0,direction:"column",justifyContent:"center",alignItems:"center"},n.createElement(P.Ay,{item:!0},n.createElement("img",{src:"data:image/png;base64,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"})),n.createElement(P.Ay,{item:!0},null!=e&&e.isMessage?n.createElement(S.A,{variant:"h6"},e.message):n.createElement(S.A,{variant:"h6"},"Error: ",e.message)),n.createElement(P.Ay,{item:!0},e.returnTo&&n.createElement(j.A,{variant:"contained",width:"50%",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.returnTo()}},"Back"))))};T.propTypes={message:s.PropTypes.string.isRequired,returnTo:s.PropTypes.func,isMessage:s.PropTypes.bool};const M=T;var F=r(4155),L=r(8161),_=r(3357);function D(e){return D="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},D(e)}function N(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),j(r),y}},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;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:M(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function ae(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 se(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){ae(i,n,o,a,s,"next",e)}function s(e){ae(i,n,o,a,s,"throw",e)}a(void 0)}))}}function le(e,t){if(e){if("string"==typeof e)return ce(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)?ce(e,t):void 0}}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?p(e,r,"fax_number"):(r.fields.fax_number.value="",r.fields.fax_number.error=!1,r.fields.fax_number.feedback=""),t.setState(r)},fullwidth:!0,feedback:"",value:""},prescriptions:[{prescription_0:{title:"Prescription Number",type:{typename:"text"},required:!0,error:!0,onChange:function(e,r){var n=fe({},t.state);/^\d{5,10}$/.test(e)?(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=e,t.setState(n)},fullwidth:!0,feedback:"",value:""}}],delivery:{title:"Delivery / Mail Shipment",required:!1,error:!1,disabled:!1,value:"No",onChange:function(e){var r=fe({},t.state);r.fields.delivery.value=e,t.setState(r)},type:{typename:"selector",options:[{value:"No",Name:"No"},{value:"Yes",Name:"Yes"}]}},pickup:{title:"Desired Pickup Time",required:!1,disabled:!1,error:!1,value:"-- Select One --",feedback:"",onChange:function(e){var r=fe({},t.state);e&&"-- Select One --"!==e?r.fields.pickup.error=!1:(r.fields.pickup.error=!0,r.fields.pickup.feedback="Please select a valid time"),r.fields.pickup.value=e,t.setState(r)},type:{typename:"selector",options:[{value:"-- Select One --",Name:"-- Select One --"},{value:"No Preference",Name:"No Preference"},{value:"Sometime Today",Name:"Sometime Today"},{value:"Tomorrow",Name:"Tomorrow"},{value:"Tomorrow Morning",Name:"Tomorrow Morning"},{value:"Tomorrow Afternoon",Name:"Tomorrow Afternoon"}]}},comments:{title:"Comments",type:{typename:"text"},required:!1,error:!1,onChange:function(e){var n=fe({},t.state);/^[ -~]{0,255}$/.test(e)?(r.comments.error=!1,r.comments.feedback=""):(r.comments.error=!0,r.comments.feedback="Invalid Format"),n.fields.comments.value=e,t.setState(n)},fullwidth:!0,feedback:"",value:""}};return t.state.fields=r,t.mainContentFocus=n.createRef(),t.changeView=t.changeView.bind(he(t)),t.clearFields=t.clearFields.bind(he(t)),t.getFullAuth=t.getFullAuth.bind(he(t)),t.getStoreNumber=t.getStoreNumber.bind(he(t)),t.getRxNumber=t.getRxNumber.bind(he(t)),t.getHash=t.getHash.bind(he(t)),t.addContact=t.addContact.bind(he(t)),t.entity=t.entity.bind(he(t)),t.constructXMLDocument=t.constructXMLDocument.bind(he(t)),t.submitForm=t.submitForm.bind(he(t)),t.isMobile=t.isMobile.bind(he(t)),t.addRXNumber=t.addRXNumber.bind(he(t)),t.getData=t.getData.bind(he(t)),t.load=t.load.bind(he(t)),t.getGoogleMapsURL=t.getGoogleMapsURL.bind(he(t)),t.downloadToFile=t.downloadToFile.bind(he(t)),t.getNavigation=t.getNavigation.bind(he(t)),t.prescriptionData=t.prescriptionData.bind(he(t)),t}return t=l,r=[{key:"changeView",value:function(e){this.setState({view:e})}},{key:"clearFields",value:function(){var e=this,t=fe({},this.state);for(var r in t.fields)void 0!==t.fields[r].value&&(t.fields[r].value="pickup"==r?"-- Select One --":"delivery"==r?"No":"",t.fields[r].required&&(t.fields[r].error=!0));t.btn_count>=0&&(t.fields.prescriptions=[{prescription_0:{title:"Prescription Number",type:{typename:"text"},required:!0,error:!0,onChange:function(t,r){var n=fe({},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 ce(e)}(c=u)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||le(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=se(ie().mark((function e(){var t,r;return ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,(t=fe({},this.state)).data=[],e.t0=ie().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=fe({},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=fe({},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()};k({method:"get",endpoint:"query",params:t}).then(function(){var t=se(ie().mark((function t(r){var n,o;return ie().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:C(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());k({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:C(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(X.A,{sx:{padding:"5px","& .MuiTypography-root":{color:"dark"===this.props.themeMode?"#BDBDBD":"#404040"},"& .MuiBreadcrumbs-separator":{color:"dark"===this.props.themeMode?"#BDBDBD":"#404040"},"& .MuiLink-root":{color:"dark"===this.props.themeMode?"#90CAF9":"#104473"}}},n.createElement(Y.A,{underline:"hover",color:"inherit",onClick:function(){"mobile_site"!==e.state.view&&e.clearFields(),e.changeView("mobile_site")}},"Home"),n.createElement(S.A,{color:"text.primary"},r?r.name:"Successful Submission"))}var o=n.createElement(W,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=M(a)}else switch(this.state.view){case"mobile_site":o=n.createElement("div",null,n.createElement(O.A,{maxWidth:"lg"},n.createElement(S.A,{variant:"h1",sx:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",border:"0"}},"Pharmacy Services Menu"),n.createElement(L.A,{style:{height:"100vh",overflow:"auto"}},n.createElement(Q.A,{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(Y.A,{color:"black",underline:"none",href:i},t.name)}return n.createElement(n.Fragment,null,n.createElement(H.Ay,{disablePadding:!0},n.createElement(Z.A,{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(L.A,{sx:{width:"250px",display:"flex",justifyContent:"space-between"}},n.createElement(L.A,{sx:{width:"50px"}},t.icon),n.createElement(L.A,{sx:{display:"flex",justifyContent:"center",flexGrow:"1"}},o)))))}))))));break;case"refill_request":o=n.createElement(O.A,{maxWidth:"lg"},t,n.createElement(F.A,{variant:"outlined"},n.createElement("form",{id:"refill-request"},n.createElement(P.Ay,{container:!0,spacing:1,sx:{padding:"20px"}},n.createElement(P.Ay,{item:!0,xs:12},n.createElement(S.A,{variant:"h4",component:"h1"},"Web Refill Form"),n.createElement("hr",null)),n.createElement(P.Ay,{item:!0,xs:12},n.createElement(P.Ay,{container:!0,spacing:2},n.createElement(P.Ay,{item:!0,xs:12},n.createElement(K.A,{fullWidth:!0,error:this.state.fields.first_name.error,required:this.state.fields.first_name.required,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.Ay,{item:!0,xs:12},n.createElement(K.A,{fullWidth:!0,error:this.state.fields.last_name.error,required:this.state.fields.last_name.required,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.Ay,{item:!0,xs:12},n.createElement(K.A,{fullWidth:!0,error:this.state.fields.phone_number.error,required:this.state.fields.phone_number.required,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.Ay,{item:!0,xs:12},n.createElement(K.A,{fullWidth:!0,error:this.state.fields.email.error,required:this.state.fields.email.required,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.Ay,{item:!0,xs:12},n.createElement(K.A,{fullWidth:!0,error:this.state.fields.fax_number.error,required:this.state.fields.fax_number.required,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.Ay,{item:!0,xs:12,key:r},n.createElement(K.A,{fullWidth:!0,error:t["prescription_".concat(r)].error,required:t["prescription_".concat(r)].required,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.Ay,{item:!0,xs:12},n.createElement(j.A,{fullWidth:!0,size:"large",sx:{minHeight:"44px",backgroundColor:"#14558F",color:"#ffffff"},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.Ay,{item:!0,xs:12},n.createElement(J.A,{fullWidth:!0},n.createElement($.A,{id:"delivery-label"},this.state.fields.delivery.title),n.createElement(ee.A,{value:this.state.fields.delivery.value,label:this.state.fields.delivery.title,labelId:"delivery-label",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(te.A,{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.Ay,{item:!0,xs:12},n.createElement(J.A,{fullWidth:!0},n.createElement($.A,null,this.state.fields.pickup.title),n.createElement(ee.A,{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,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(te.A,{key:"".concat(e.value,"-").concat(t),value:e.value},e.value)}))))):n.createElement("div",null),n.createElement(P.Ay,{item:!0,xs:12},n.createElement(K.A,{fullWidth:!0,multiline:!0,minRows:3,error:this.state.fields.comments.error,required:this.state.fields.comments.required,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.Ay,{item:!0,xs:12,sx:{paddingTop:"5px",bgcolor:"rgba(0,0,0,.05"}},n.createElement(P.Ay,{container:!0,spacing:2},n.createElement(P.Ay,{item:!0,xs:4,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(j.A,{className:"submit",size:"large",variant:"contained",sx:{backgroundColor:"#14558F",color:"#ffffff"},color:"primary",onClick:function(t){t.stopPropagation(),t.preventDefault();var r=e.state.fields,n=!0,o=fe({},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.Ay,{item:!0,xs:4,sx:{display:"flex",justifyContent:"center"}},n.createElement(j.A,{className:"reset",size:"large",variant:"contained",sx:{backgroundColor:"#AA1616",color:"#FFFFFF"},onClick:function(t){t.stopPropagation(),t.preventDefault(),e.clearFields()}},"Reset")),n.createElement(P.Ay,{item:!0,xs:4,sx:{display:"flex",justifyContent:"flex-end"}},n.createElement(j.A,{className:"cancel",sx:{minHeight:"44px",color:"dark"===this.props.themeMode?"#90CAF9":"#14558F"},size:"large",variant:"outlined",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.clearFields(),e.changeView("mobile_site")}},"Cancel"))))))))));break;case"success_submit":o=n.createElement(O.A,{maxWidth:"lg"},t,n.createElement(F.A,{variant:"outlined"},n.createElement(P.Ay,{container:!0,spacing:2},n.createElement(P.Ay,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(S.A,{variant:"h6",component:"h1",sx:{padding:"5px"}},"Fill submitted successfully!")),n.createElement(P.Ay,{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.Ay,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(S.A,{sx:{padding:"5px"}},"Would you like to submit another fill?")),n.createElement(P.Ay,{item:!0,xs:12},n.createElement(P.Ay,{container:!0,spacing:2},n.createElement(P.Ay,{item:!0,xs:6,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(j.A,{sx:{margin:"5px",minHeight:"44px",color:"dark"===this.props.themeMode?"#90CAF9":"#14558F"},type:"button",size:"large",variant:"outlined",color:"primary",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.clearFields(),e.changeView("mobile_site")}},"No")),n.createElement(P.Ay,{item:!0,xs:6,sx:{display:"flex",justifyContent:"flex-end"}},n.createElement(j.A,{sx:{margin:"5px",minHeight:"44px",backgroundColor:"#14558F",color:"#ffffff"},type:"button",size:"large",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(S.A,{variant:"h5",component:"h1"},"Store Hours"),n.createElement(S.A,{varian:"h5",component:"p"},this.state.pharmacy_hours?this.state.pharmacy_hours:"No store hours available"),n.createElement("hr",null),n.createElement(S.A,{variant:"h5",component:"h2"},"Directions"),n.createElement(S.A,{variant:"h5",component:"p",sx:{lineHeight:"1.5"}},this.state.store_address),n.createElement(S.A,{variant:"h5",component:"p",sx:{lineHeight:"1.5"}},this.state.store_address_two),n.createElement(S.A,{variant:"h5",component:"p",sx:{lineHeight:"1.5"}},this.state.city,", ",this.state.state," ",this.state.zip),n.createElement(S.A,{variant:"h5",component:"p",sx:{lineHeight:"1.5"}},this.state.phone_number),n.createElement("a",{onClick:function(){var t=e.getGoogleMapsURL();e.getNavigation(t)},style:{fontSize:"16px",color:"dark"===this.props.themeMode?"#90CAF9":"#104473",cursor:"pointer",borderBottom:"1px solid"+("dark"===this.props.themeMode?"#90CAF9":"#104473")}},"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.Ay,{container:!0,spacing:2},n.createElement(P.Ay,{item:!0,xs:12},n.createElement(E,{accessToken:"pk.eyJ1IjoibW1jbWlsbGFuIiwiYSI6ImNsb2oxbW9iNDAwaXAyanBwYmk0d3YzM2EifQ.5B6u1ETbrXbm6ws0HeS8Iw",addresses:this.state.pharm_coords,zoom:15,projection:"globe",allowFullScreen:!0,allowNavigation:!0}))))}else o=n.createElement(W,null);return n.createElement(L.A,null,n.createElement(j.A,{component:"a",href:"#main-content",onClick:function(t){t.preventDefault(),e.mainContentFocus.current&&e.mainContentFocus.current.focus()},sx:{position:"absolute",left:"-10000px",top:"auto",width:"1px",height:"1px",overflow:"hidden",zIndex:9999,"&:focus":{left:"10px",top:"10px",width:"auto",height:"auto",backgroundColor:"secondary.main",color:"white",padding:"10px 20px",borderRadius:"4px",boxShadow:3}}},"Skip to main content"),n.createElement(re.A,{position:"static"},n.createElement(ne.A,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(S.A,null,this.state.store_name))),n.createElement(L.A,{component:"main",id:"main-content","aria-label":"Pharmacy Mobile Site",tabIndex:"-1",ref:this.mainContentFocus},o))}}],r&&pe(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),l}(n.Component);ye(ge,"propTypes",{themeMode:l().string.isRequired});const be=ge;var we=r(3478),Ae=r(2363),Ee=r(4519);function xe(e){return xe="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},xe(e)}function ke(){ke=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 v?t:v,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",y={};function v(){}function g(){}function b(){}var w={};c(w,a,(function(){return this}));var A=Object.getPrototypeOf,E=A&&A(A(M([])));E&&E!==r&&n.call(E,a)&&(w=E);var x=b.prototype=v.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function C(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"==xe(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=P(s,n);if(l){if(l===y)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===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=m,n.method="throw",n.arg=c.arg)}}}function P(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,P(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;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,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function S(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 j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function M(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),j(r),y}},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;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:M(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function Ce(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 Oe(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){Ce(i,n,o,a,s,"next",e)}function s(e){Ce(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(Ae.A,{theme:"dark"===this.state.theme?this.themeDark:this.themeLight},n.createElement(Ee.Ay,null),n.createElement("div",null,n.createElement(i.I9,null,n.createElement(a.BV,null,n.createElement(a.qh,{path:"/",element:n.createElement(be,{themeMode:this.state.theme})}),n.createElement(a.qh,{path:"mobilesite/",element:n.createElement(be,{themeMode:this.state.theme})}),n.createElement(a.qh,{path:"m/:tag",element:n.createElement(be,{themeMode:this.state.theme})})))))}}],r&&Pe(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(n.Component);var Re=document.getElementById("container");(0,o.H)(Re).render(n.createElement(Ne,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={792: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(9047)));a=i.O(a)})(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QXFCOVQsS0FBK0IseUJBQUlBLEtBQStCLDBCQUFLLEdBQ2hHOFQsRUFBbUJuWCxRQUFROFcsRUFBcUJya0IsS0FBSyxLQUFNLElBQzNEMGtCLEVBQW1COWlCLEtBQU95aUIsRUFBcUJya0IsS0FBSyxLQUFNMGtCLEVBQW1COWlCLEtBQUs1QixLQUFLMGtCLFFDN0N2RixJQUFJQyxFQUFzQjdCLEVBQW9CTSxPQUFFcFMsRUFBVyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxJQUFPOFIsRUFBb0IsUUFDcEk2QixFQUFzQjdCLEVBQW9CTSxFQUFFdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2xpYi91dGlscy5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvbGliL01hcGJveEdMLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvYXBpQ2FsbC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2Vycm9yLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvbG9hZGluZy5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvcGFnZXMvTW9iaWxlU2l0ZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvQXBwLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgbWFwYm94VG9rZW4gPSAncGsuZXlKMUlqb2liVzFqYldsc2JHRnVJaXdpWVNJNkltTnNiMm94Ylc5aU5EQXdhWEF5YW5Cd1ltazBkM1l6TTJFaWZRLjVCNnUxRVRiclhibTZ3czBIZVM4SXcnO1xuXG5jb25zdCByZW5kZXJFcnJvciA9IChjb21wb25lbnQpID0+IHtcbiAgaWYgKGNvbXBvbmVudC5zdGF0ZS5lcnJvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInBhZC0zIGJnLWRhbmdlciB0ZXh0LXdoaXRlXCJcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLCBoZWlnaHQ6ICc0JScsIG1pbkhlaWdodDogJzEuOGVtJyB9fVxuICAgICAgPlxuICAgICAgICB7Y29tcG9uZW50LnN0YXRlLmVycm9yfVxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgY29tcG9uZW50LnNldFN0YXRlKHsgZXJyb3I6IG51bGwgfSk7XG4gICAgICAgIH19PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWF0ZXJpYWwtaWNvbnMnPmNsb3NlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5jb25zdCB2YWxpZGF0ZVBob25lID0gKHZhbHVlLCBjb3B5LCBrZXkpID0+IHtcbiAgY29uc3QgbmFucFJlZ2V4ID0gL14oPzpcXCs/MVstLiBdPyk/XFwoPyhbMi05XVswLThdWzAtOV0pXFwpP1stLiBdPyhbMi05XVswLTldezJ9KVstLiBdPyhbMC05XXs0fSkkLztcbiAgLy8gU3RyaXAgYWxsIG5vbi1kaWdpdCBjaGFyYWN0ZXJzIGZpcnN0XG4gIGNvbnN0IGRpZ2l0cyA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG5cbiAgLy8gRm9ybWF0IGJhc2VkIG9uIG51bWJlciBvZiBkaWdpdHMgZW50ZXJlZFxuICBpZiAoZGlnaXRzLmxlbmd0aCA8PSAzKSB7XG4gICAgY29weS5maWVsZHNba2V5XS52YWx1ZSA9IGRpZ2l0cy5sZW5ndGggPyBgKCR7ZGlnaXRzfWAgOiBkaWdpdHM7XG4gIH0gZWxzZSBpZiAoZGlnaXRzLmxlbmd0aCA8PSA2KSB7XG4gICAgY29weS5maWVsZHNba2V5XS52YWx1ZSA9IGAoJHtkaWdpdHMuc3Vic3RyaW5nKDAsIDMpfSkke2RpZ2l0cy5zdWJzdHJpbmcoMyl9YDtcbiAgfSBlbHNlIGlmIChkaWdpdHMubGVuZ3RoIDw9IDEwKSB7XG4gICAgY29weS5maWVsZHNba2V5XS52YWx1ZSA9IGAoJHtkaWdpdHMuc3Vic3RyaW5nKDAsIDMpfSkke2RpZ2l0cy5zdWJzdHJpbmcoMywgNil9LSR7ZGlnaXRzLnN1YnN0cmluZyg2KX1gO1xuICB9XG5cbiAgY29uc3QgY2hlY2tTdGFydHNXaXRoT25lID0gKG51bWJlcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKCd0eXBlb2Y6ICcsIHR5cGVvZihudW1iZXIpKTtcbiAgICBsZXQgZmxhZyA9IGZhbHNlO1xuICAgIGNvbnN0IHppcCA9IG51bWJlci5zbGljZSgxLCA0KTtcbiAgICBjb25zdCBjZW50cmFsX29mZmljZSA9IG51bWJlci5zbGljZSg1LCA4KTtcblxuICAgIGlmICh6aXA/LnN0YXJ0c1dpdGgoJzEnKSB8fCBjZW50cmFsX29mZmljZT8uc3RhcnRzV2l0aCgnMScpKSB7XG4gICAgICBmbGFnID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmxhZztcbiAgfTtcblxuICAvLyBWYWxpZGF0ZSBjb21wbGV0ZSBudW1iZXJcbiAgaWYgKGNvcHkuZmllbGRzW2tleV0udmFsdWUgJiYgbmFucFJlZ2V4LnRlc3QoY29weS5maWVsZHNba2V5XS52YWx1ZSkpIHtcbiAgICBjb3B5LmZpZWxkc1trZXldLmVycm9yID0gZmFsc2U7XG4gICAgY29weS5maWVsZHNba2V5XS5mZWVkYmFjayA9ICcnO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHN0cmluZyA9IGtleSA9PSAncGhvbmVfbnVtYmVyJyA/ICdQaG9uZSAnIDogJ0ZheCAnO1xuICAgIGNvcHkuZmllbGRzW2tleV0uZXJyb3IgPSB0cnVlO1xuICAgIGNvcHkuZmllbGRzW2tleV0uZmVlZGJhY2sgPSAnSW52YWxpZCAnICsgc3RyaW5nICsgJ051bWJlciAoaS5lLiwgKDk4OSkyMzQtNDQzNSknO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHppcCBvciBjZW50cmFsIG9mZmljZSBjb2RlcyBzdGFydCB3aXRoIHRoZSBudW1iZXIgMS5cbiAgaWYgKGNvcHkuZmllbGRzW2tleV0udmFsdWUgJiYgY2hlY2tTdGFydHNXaXRoT25lKGNvcHkuZmllbGRzW2tleV0udmFsdWUpKSB7XG4gICAgaWYgKCFjb3B5LmZpZWxkc1trZXldLmVycm9yKSB7XG4gICAgICBjb3B5LmZpZWxkc1trZXldLmVycm9yID0gdHJ1ZTtcbiAgICB9XG4gICAgY29weS5maWVsZHNba2V5XS5mZWVkYmFjayArPSAnLiBaaXAgYW5kIGNlbnRyYWwgb2ZmaWNlIGNvZGVzIGNhbm5vdCBzdGFydCB3aXRoIG9uZS4nO1xuICB9XG59O1xuXG5leHBvcnQge1xuICBtYXBib3hUb2tlbixcbiAgcmVuZGVyRXJyb3IsXG4gIHZhbGlkYXRlUGhvbmUsXG59O1xuIiwiLypcbiAqIHNyYy9yZWFjdGxpYi9jb21wb25lbnRzL01hcGJveEdMLmpzXG4gKiBDb3B5cmlnaHQgKGMpMjAyMiAtIDIwMjYgU1JTIFBoYXJtYWN5IFN5c3RlbXMsIEluYy5cbiAqL1xuXG4vLyBodHRwczovL2RvY3MubWFwYm94LmNvbS9tYXBib3gtZ2wtanMvZXhhbXBsZS9cblxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgbWFwYm94Z2wgZnJvbSAnbWFwYm94LWdsJztcbmltcG9ydCB7IHJlbmRlckVycm9yIH0gZnJvbSAnLi91dGlscyc7XG5cbmNsYXNzIE1hcGJveEdMIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhY2Nlc3NUb2tlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGFkZHJlc3NlczogUHJvcFR5cGVzLmFycmF5LFxuICAgIHRvQWRkcmVzczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjZW50ZXI6IFByb3BUeXBlcy5hcnJheSxcbiAgICB6b29tOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHByb2plY3Rpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZ2VvTG9jYXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbGxvd0Z1bGxTY3JlZW46IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93TmF2aWdhdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgZnJvbUNvb3JkaW5hdGVzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgdG9Db29yZGluYXRlczogUHJvcFR5cGVzLmFycmF5LFxuICB9O1xuICBtYXBSZWY7XG4gIG1hcDtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5pbnN0cnVjdGlvbnNSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgICB0aGlzLm1hcFJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB2aWV3OiAnbG9hZGluZycsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIG1hcmtlcnM6IFtdLFxuICAgIH07XG4gICAgdGhpcy5pbml0TWFwID0gdGhpcy5pbml0TWFwLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZW9jb2RlTWFya2VycyA9IHRoaXMuZ2VvY29kZU1hcmtlcnMuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldERpcmVjdGlvbnMgPSB0aGlzLmdldERpcmVjdGlvbnMuYmluZCh0aGlzKTtcbiAgfVxuICBnZW9jb2RlTWFya2VycygpIHtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgY29uc3QgYmFzZVVybCA9ICdodHRwczovL2FwaS5tYXBib3guY29tL2dlb2NvZGluZy92NS9tYXBib3gucGxhY2VzLyc7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIHBhcmFtcy5hcHBlbmQoJ2FjY2Vzc190b2tlbicsIHRoaXMucHJvcHMuYWNjZXNzVG9rZW4pO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiB0aGlzLnByb3BzLmFkZHJlc3Nlcykge1xuICAgICAgY250Kys7XG4gICAgICBjb25zdCB1cmwgPSBiYXNlVXJsICsgZW5jb2RlVVJJQ29tcG9uZW50KGFkZHJlc3MpICsgJy5qc29uPycgKyBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICAgIHdpbmRvdy5mZXRjaCh1cmwpLnRoZW4oKHJlc3ApID0+IHJlc3AuanNvbigpKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHJlc3VsdHMucHVzaChkYXRhKTtcbiAgICAgICAgaWYgKGNudCA9PT0gdGhpcy5wcm9wcy5hZGRyZXNzZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1hcmtlcnM6IHJlc3VsdHMsIHZpZXc6ICdtYXAnIH0sIHRoaXMuaW5pdE1hcCk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKChlKSA9PiBjb25zb2xlLmxvZyhlKSk7XG4gICAgfVxuICB9XG4gIGdldERpcmVjdGlvbnMoKSB7XG4gICAgY29uc3QgZiA9IHRoaXMucHJvcHMuZnJvbUNvb3JkaW5hdGVzLmpvaW4oJywgJyk7XG4gICAgY29uc3QgdCA9IHRoaXMucHJvcHMudG9Db29yZGluYXRlcy5qb2luKCcsICcpO1xuICAgIGNvbnN0IGJhc2VVcmwgPSBgaHR0cHM6Ly9hcGkubWFwYm94LmNvbS9kaXJlY3Rpb25zL3Y1L21hcGJveC9kcml2aW5nLXRyYWZmaWMvJHtmfTske3R9YDtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLmFwcGVuZCgnZ2VvbWV0cmllcycsICdnZW9qc29uJyk7XG4gICAgcGFyYW1zLmFwcGVuZCgnc3RlcHMnLCB0cnVlKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdhY2Nlc3NfdG9rZW4nLCB0aGlzLnByb3BzLmFjY2Vzc1Rva2VuKTtcbiAgICBjb25zdCB1cmwgPSBiYXNlVXJsICsgJz8nICsgcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgd2luZG93LmZldGNoKHVybCkudGhlbigocmVzcCkgPT4gcmVzcC5qc29uKCkpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBkaXJlY3Rpb25zOiBkYXRhLCB2aWV3OiAnbWFwJyB9LCB0aGlzLmluaXRNYXApO1xuICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3I6IGUuc3RhY2sgfSk7XG4gICAgfSk7XG4gIH1cbiAgaW5pdE1hcCgpIHtcbiAgICBtYXBib3hnbC5hY2Nlc3NUb2tlbiA9IHRoaXMucHJvcHMuYWNjZXNzVG9rZW47XG4gICAgY29uc3QgbWFya2VycyA9IFtdO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7fTtcbiAgICBsZXQgZ2VvbG9jYXRlID0gbnVsbDtcbiAgICBsZXQgZnVsbHNjcmVlbiA9IG51bGw7XG4gICAgb3B0aW9ucy5jb250YWluZXIgPSB0aGlzLm1hcFJlZi5jdXJyZW50LmlkO1xuICAgIG9wdGlvbnMuYXR0cmlidXRpb25Db250cm9sID0gZmFsc2U7XG4gICAgb3B0aW9ucy5zdHlsZSA9ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjEyJztcbiAgICBpZiAodGhpcy5wcm9wcy5jZW50ZXIpIHtcbiAgICAgIG9wdGlvbnMuY2VudGVyID0gdGhpcy5wcm9wcy5jZW50ZXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgb3B0aW9ucy5jZW50ZXIgPSB0aGlzLnN0YXRlLm1hcmtlcnNbMF0uZmVhdHVyZXNbMF0uY2VudGVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy56b29tKSB7XG4gICAgICBvcHRpb25zLnpvb20gPSB0aGlzLnByb3BzLnpvb207XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnByb2plY3Rpb24pIHtcbiAgICAgIG9wdGlvbnMucHJvamVjdGlvbiA9IHRoaXMucHJvcHMucHJvamVjdGlvbjtcbiAgICB9XG4gICAgdGhpcy5tYXAgPSBuZXcgbWFwYm94Z2wuTWFwKG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLnByb3BzLmdlb0xvY2F0ZSkge1xuICAgICAgZ2VvbG9jYXRlID0gbmV3IG1hcGJveGdsLkdlb2xvY2F0ZUNvbnRyb2woe1xuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHtcbiAgICAgICAgICBlbmFibGVIaWdoQWNjdXJhY3k6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dVc2VyTG9jYXRpb246IHRydWUsXG4gICAgICAgIHRyYWNrVXNlckxvY2F0aW9uOiB0cnVlLFxuICAgICAgICBzaG93VXNlckhlYWRpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2woZ2VvbG9jYXRlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYWxsb3dGdWxsU2NyZWVuKSB7XG4gICAgICBmdWxsc2NyZWVuID0gbmV3IG1hcGJveGdsLkZ1bGxzY3JlZW5Db250cm9sKCk7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKGZ1bGxzY3JlZW4pO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5hbGxvd05hdmlnYXRpb24pIHtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wobmV3IG1hcGJveGdsLk5hdmlnYXRpb25Db250cm9sKCksICdib3R0b20tcmlnaHQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUubWFya2VycyAmJiB0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdXNlIHRoZSBmaXJzdCBtYXJrZXIgaW5zdGVhZCBvZiBhbGwgb2YgdGhlbVxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKCdtYXRlcmlhbC1pY29ucycpO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxcbiAgICAgICAgICAnZm9udC1zaXplOiAzZW07IGRpc3BsYXk6IGlubGluZS1ibG9jazsnXG4gICAgICAgICAgKyAnbWluLWhlaWdodDogNDRweDsgbWluLXdpZHRoOiA0NHB4OyBsaW5lLWhlaWdodDogNDRweDsgdGV4dC1hbGlnbjogY2VudGVyOydcbiAgICAgICk7XG4gICAgICBlbC5pbm5lclRleHQgPSAoJ3BsYWNlJyk7XG4gICAgICBjb25zdCBsb2NhdGlvbk5hbWUgPSB0aGlzLnN0YXRlLm1hcmtlcnNbMF0uZmVhdHVyZXNbMF0ucGxhY2VfbmFtZTtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGBwbGFjZSBtYXJrZXIgZm9yICR7bG9jYXRpb25OYW1lfWApO1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRoaXMuc3RhdGUubWFya2Vyc1swXS5mZWF0dXJlc1swXS5wbGFjZV9uYW1lKTtcbiAgICAgIGNvbnN0IG0gPSBuZXcgbWFwYm94Z2wuTWFya2VyKGVsKTtcbiAgICAgIG0uc2V0TG5nTGF0KHRoaXMuc3RhdGUubWFya2Vyc1swXS5mZWF0dXJlc1swXS5nZW9tZXRyeS5jb29yZGluYXRlcyk7XG4gICAgICBtLnNldFBvcHVwKG5ldyBtYXBib3hnbC5Qb3B1cCgpLnNldEhUTUwoYDxzdHJvbmcke3RoaXMuc3RhdGUubWFya2Vyc1swXS5mZWF0dXJlc1swXS5wbGFjZV9uYW1lfTxzdHJvbmc+YCkpO1xuICAgICAgbWFya2Vycy5wdXNoKG0pO1xuICAgICAgLy8gZm9yIChjb25zdCBtYXJrZXIgb2YgdGhpcy5zdGF0ZS5tYXJrZXJzKSB7XG4gICAgICAvLyAgIGZvciAoY29uc3QgZmVhdHVyZSBvZiBtYXJrZXIuZmVhdHVyZXMpIHtcbiAgICAgIC8vICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIC8vICAgICBlbC5jbGFzc0xpc3QuYWRkKCdtYXRlcmlhbC1pY29ucycpO1xuICAgICAgLy8gICAgIGVsLmNsYXNzTGlzdC5hZGQoJ3RleHQtcHJpbWFyeScpO1xuICAgICAgLy8gICAgIGVsLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZm9udC1zaXplOiAzZW0nKTtcbiAgICAgIC8vICAgICBlbC5pbm5lclRleHQgPSAncGxhY2UnO1xuICAgICAgLy8gICAgIGVsLnNldEF0dHJpYnV0ZSgndGl0bGUnLCBmZWF0dXJlLnBsYWNlX25hbWUpO1xuICAgICAgLy8gICAgIGNvbnN0IG0gPSBuZXcgbWFwYm94Z2wuTWFya2VyKGVsKTtcbiAgICAgIC8vICAgICBtLnNldExuZ0xhdChmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzKTtcbiAgICAgIC8vICAgICBtLnNldFBvcHVwKG5ldyBtYXBib3hnbC5Qb3B1cCgpLnNldEhUTUwoYDxzdHJvbmc+JHtmZWF0dXJlLnBsYWNlX25hbWV9PC9zdHJvbmc+YCkpO1xuICAgICAgLy8gICAgIG1hcmtlcnMucHVzaChtKTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgIH1cbiAgICB0aGlzLm1hcC5vbignc3R5bGUubG9hZCcsICgpID0+IHtcbiAgICAgIHRoaXMubWFwLnNldEZvZyh7fSk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXAub24oJ2xvYWQnLCAoKSA9PiB7XG4gICAgICBpZiAoZ2VvbG9jYXRlKSB7XG4gICAgICAgIGdlb2xvY2F0ZS50cmlnZ2VyKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zdGF0ZS5kaXJlY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5zdGF0ZS5kaXJlY3Rpb25zLnJvdXRlc1swXTtcbiAgICAgICAgY29uc3QgZ2VvanNvbiA9IHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgZ2VvbWV0cnk6IHJvdXRlLmdlb21ldHJ5LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmluc3RydWN0aW9uc1JlZi5jdXJyZW50LmlubmVySFRNTCA9ICcnO1xuICAgICAgICBjb25zdCBzdGVwcyA9IGA8dWw+JHtyb3V0ZS5sZWdzWzBdPy5zdGVwcy5tYXAoKHN0ZXApID0+IHtcbiAgICAgICAgICByZXR1cm4gYDxsaT4ke3N0ZXAubWFuZXV2ZXIuaW5zdHJ1Y3Rpb259PC9saT5gO1xuICAgICAgICB9KS5qb2luKCdcXG4nKX1cbiAgICAgICAgPC91bD5gO1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IGA8cD48c3Ryb25nPlRyaXAgZHVyYXRpb246ICR7TWF0aC5mbG9vcihyb3V0ZS5kdXJhdGlvbiAvIDYwKX0gbWluPC9zdHJvbmc+PC9wPmA7XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25zUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gYCR7ZHVyYXRpb259JHtzdGVwc31gO1xuXG4gICAgICAgIGlmICh0aGlzLm1hcC5nZXRTb3VyY2UoJ3JvdXRlJykpIHtcbiAgICAgICAgICB0aGlzLm1hcC5nZXRTb3VyY2UoJ3JvdXRlJykuc2V0RGF0YShnZW9qc29uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1hcC5hZGRMYXllcih7XG4gICAgICAgICAgICBpZDogJ3JvdXRlJyxcbiAgICAgICAgICAgIHR5cGU6ICdsaW5lJyxcbiAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgICAgICAgICAgIGRhdGE6IGdlb2pzb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICdsaW5lLWpvaW4nOiAncm91bmQnLFxuICAgICAgICAgICAgICAnbGluZS1jYXAnOiAncm91bmQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhaW50OiB7XG4gICAgICAgICAgICAgICdsaW5lLWNvbG9yJzogJyMzODg3QkUnLFxuICAgICAgICAgICAgICAnbGluZS13aWR0aCc6IDUsXG4gICAgICAgICAgICAgICdsaW5lLW9wYWNpdHknOiAwLjc1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IG1hcmtlciBvZiBtYXJrZXJzKSB7XG4gICAgICAgICAgbWFya2VyLmFkZFRvKHRoaXMubWFwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2V0U3RhdGUoeyB2aWV3OiAnbWFwJyB9KTtcbiAgfVxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGUuaW5uZXJIVE1MID0gYFxuICAgICAgLm1hcGJveGdsLWN0cmwtZ3JvdXAgYnV0dG9uIHtcbiAgICAgICAgICB3aWR0aDogNDRweCAhaW1wb3J0YW50O1xuICAgICAgICAgIGhlaWdodDogNDRweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLm1hcGJveGdsLWN0cmwtaWNvbiB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI2cHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgLm1hcGJveGdsLWN0cmwtbG9nbyB7XG4gICAgICAgICAgd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICBgO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIGlmICh0aGlzLnByb3BzLmFkZHJlc3NlcyAmJiB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgIHRoaXMuZ2V0RGlyZWN0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNYXAoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICBpZiAocHJldlByb3BzLmZyb21Db29yZGluYXRlcyAhPT0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgICAgdGhpcy5nZXREaXJlY3Rpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdE1hcCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByZXZQcm9wcy5hZGRyZXNzZXMgIT09IHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hZGRyZXNzZXMgJiYgdGhpcy5wcm9wcy5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gcmVuZGVyRXJyb3IodGhpcyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUudmlldyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICByZXR1cm4gKDxkaXY+TG9hZGluZzwvZGl2Pik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IHJlZj17dGhpcy5pbnN0cnVjdGlvbnNSZWZ9IHN0eWxlPXt7XG4gICAgICAgICAgICAgIG1heEhlaWdodDogJzMwMHB4JyxcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgICAgICAgfX0gY2xhc3NOYW1lPVwiY29sXCIgaWQ9XCJtYXBib3hHTEluc3RydWN0aW9uc1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICByZWY9e3RoaXMubWFwUmVmfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2xcIlxuICAgICAgICAgICAgICBzdHlsZT17eyBoZWlnaHQ6ICczMDBweCcgfX1cbiAgICAgICAgICAgICAgaWQ9XCJtYXBib3hHTE1hcFwiXG4gICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiSW50ZXJhY3RpdmUgTWFwXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBib3hHTDtcbiIsImltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5cbmNvbnN0IGFwaUNhbGwgPSAob3B0cykgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIG9wdHMuY29udGV4dCA9IG9wdHMuY29udGV4dCB8fCBudWxsO1xuICAgIG9wdHMucmVzcG9uc2VUeXBlID0gb3B0cy5yZXNwb25zZVR5cGUgfHwgJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgIGxldCB1cmwgPSAnJztcbiAgICBpZiAob3B0cy51cmwpIHtcbiAgICAgIHVybCA9IG9wdHMudXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT0gJ2xvY2FsaG9zdCcgPyBgaHR0cHM6Ly9zcnNyZmwtc3RhZ2luZy5jb20vYCA6ICcvJztcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG9wdHMuaGVhZGVycyB8fCB7fTtcbiAgICBheGlvcyh7XG4gICAgICBtZXRob2Q6IG9wdHMubWV0aG9kLnRvTG93ZXJDYXNlKCksXG4gICAgICB1cmw6IGAke3VybH0ke29wdHMuZW5kcG9pbnR9YCxcbiAgICAgIHJlc3BvbnNlVHlwZTogb3B0cy5yZXNwb25zZVR5cGUsXG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgcGFyYW1zOiBvcHRzLnBhcmFtcyxcbiAgICAgIGRhdGE6IG9wdHMuZGF0YSxcbiAgICB9KS50aGVuKHJlc29sdmUpLmNhdGNoKHJlamVjdCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgYXBpQ2FsbDtcbiIsImNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChlcnIpID0+IHtcbiAgbGV0IGVycm9yID0gJyc7XG4gIGlmIChlcnIucmVzcG9uc2UgJiYgZXJyLnJlc3BvbnNlLmRhdGEpIHtcbiAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZSkge1xuICAgICAgaWYgKGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgZXJyb3IgPSBlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IgPSBKU09OLnN0cmluZ2lmeShlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnIucmVzcG9uc2UuZGF0YSA9PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGVyci5yZXNwb25zZS5kYXRhLmluY2x1ZGVzKCdtZXNzYWdlJykpIHtcbiAgICAgICAgZXJyb3IgPSBlcnIucmVzcG9uc2UuZGF0YS5zdWJzdHJpbmcoMTIsIChlcnIucmVzcG9uc2UuZGF0YS5sZW5ndGggLSAyKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9yID0gSlNPTi5zdHJpbmdpZnkoZXJyLnJlc3BvbnNlLmRhdGEpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBlcnJvciA9IGVyci5tZXNzYWdlID8gZXJyLm1lc3NhZ2UgOiBKU09OLnN0cmluZ2lmeShlcnIpO1xuICB9XG4gIHJldHVybiBlcnJvcjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldEVycm9yTWVzc2FnZTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9wVHlwZXMgfSBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEdyaWQsIFR5cG9ncmFwaHksIEJ1dHRvbiwgQ29udGFpbmVyIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5pbXBvcnQgTG9hZGluZ0NhcHN1bGVJbWcgZnJvbSAnLi4vaW1nL0xvYWRpbmdDYXBzdWxlLnBuZyc7XG5cbmNvbnN0IEVycm9yID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgPEdyaWQgY29udGFpbmVyIGRpcmVjdGlvbj0nY29sdW1uJyBqdXN0aWZ5Q29udGVudD0nY2VudGVyJyBhbGlnbkl0ZW1zPSdjZW50ZXInPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIDxpbWcgc3JjPXtMb2FkaW5nQ2Fwc3VsZUltZ30gLz5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIHsgcHJvcHM/LmlzTWVzc2FnZSA/XG4gICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdoNic+XG4gICAgICAgICAgICAge3Byb3BzLm1lc3NhZ2V9XG4gICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICA6XG4gICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g2Jz5cbiAgICAgICAgICAgIEVycm9yOiB7cHJvcHMubWVzc2FnZX1cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgIH1cbiAgICAgICAgPC9HcmlkPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIHsgcHJvcHMucmV0dXJuVG9cbiAgICAgICAgICAgICYmIChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICB3aWR0aD0nNTAlJ1xuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgcHJvcHMucmV0dXJuVG8oKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICA8L0dyaWQ+XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuXG5FcnJvci5wcm9wVHlwZXMgPSB7XG4gIG1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgcmV0dXJuVG86IFByb3BUeXBlcy5mdW5jLFxuICBpc01lc3NhZ2U6IFByb3BUeXBlcy5ib29sLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXJyb3I7XG4iLCJleHBvcnQgZGVmYXVsdCBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDSkNBWUFBQURrTVRBREFBQUt4bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFTSW1WbHdkWVUxa1dnTzk3TDczUUFoR1FFbm9UcEZjcG9ZY3VIV3lFSkpCUVlrd0lLalpVQmtkd0xLaElVd1FjRkZGd0xJQ01CYkZnUlZFQit3UVpWTlJ4c0NBcUt2dUFKY3pzZnJ2NzdYbmZ5ZjNmZWVlZWMrNzk3djIrRXdDb0JMWklsQUVyQVpBcHpCSkhCbmd6NGhNU0dmamZBUXdRb0F3QXdMQTVFaEV6SWlJRVpUQTEvbDArOWdCb2ZMeGpPUjdyMzcvL1YxSG04aVFjQUtBSWxKTzVFazRteXNkUmZjTVJpYk1BUVBhaGRvT2xXYUp4dm95eXFoZ3RFT1ZINDV3NnlVUGpuRHpCR015RVQzU2tEOHJxQUJBb2JMWTRGUUNLSVdwblpITlMwVGdVWDVTdGhWeUJFR1gwSFhodytHd3V5bWhlTUNzemMvRTR5MUEyVGY1TG5OUy94VXlXeDJTelUrVTh1WllKSWZnS0pLSU05dkwvY3p2K3QyUm1TS2R5R0tOSzRZc0RJOUdSanU3WnZmVEZ3WElXSm9lRlQ3R0FPK0Uvd1h4cFlNd1VjeVEraVZQTVpmc0d5K2RtaElWTWNZckFueVdQazhXS25tS2V4QzlxaXNXTEkrVzVVc1ErekNsbWk2ZnpTdE5qNUhZK2p5V1BuOE9QanB2aWJFRnMyQlJMMHFPQ3AzMTg1SGF4TkZKZVAwOFk0RDJkMTErKzlrekpYOVlyWU1ublp2R2pBK1ZyWjAvWHp4TXlwMk5LNHVXMWNYbStmdE0rTVhKL1VaYTNQSmNvSTBMdXo4c0lrTnNsMlZIeXVWbm9nWnllR3lIZnd6UjJVTVFVQTEvZ0IwTFFod0ZpZ0Myd0J6Ym9ieWdBV2J4bDQyY1UrQ3dXTFJjTFV2bFpEQ1o2eTNnTWxwQmpOWXRoYTIxckRjRDRuWjA4RXUvdlRkeEZpRTZZdG9uUStDN29tVWRxcG0zSm1nQTBvK2RJZ3podE05d1BnR0k4QUUyNUhLazRlOUkyZnAwQUZwQ0FJbEFGR2tBSEdBQlRZSWxXNWdqY2dCZGFjUkFJQjlFZ0FTd0VITUFIbVVBTWxvS1ZZQzNJQjRWZ0s5Z0p5a0FscUFFSHdHRndGRFNEVStBY3VBU3VnVnVnR3p3RU1qQUFYb0VoOEJHTVFoQ0VoNmdRRGRLQWRDRWp5QUt5aFp3aEQ4Z1BDb0Vpb1FRb0NVcUZoSkFVV2dtdGh3cWhJcWdNcW9McW9GK2drOUE1NkFyVUJkMkgrcUJCNkIzMEJVWmdDcXdLYThQRzhHellHV2JDd1hBMHZBQk9oWmZBT1hBZXZCa3VnYXZoUTNBVGZBNitCbmZETXZnVlBJd0FoSXpRRVQzRUVuRkdmSkJ3SkJGSlFjVElhcVFBS1VhcWtRYWtGZWxBN2lBeTVEWHlHWVBEMERBTWpDWEdEUk9JaWNGd01Fc3dxekdiTUdXWUE1Z216QVhNSFV3ZlpnanpIVXZGYW1FdHNLNVlGalllbTRwZGlzM0hGbU5yc1Nld0Y3SGQyQUhzUnh3T1I4ZVo0Snh3Z2JnRVhCcHVCVzRUYmpldUVkZUc2OEwxNDRieGVMd0czZ0x2amcvSHMvRlorSHg4S2Y0US9peitObjRBLzRsQUp1Z1NiQW4raEVTQ2tMQ09VRXc0U0RoRHVFMTRUaGdsS2hHTmlLN0VjQ0tYdUp5NGhiaVAyRXE4U1J3Z2pwS1VTU1lrZDFJMEtZMjBsbFJDYWlCZEpEMGl2U2VUeWZwa0YvSmNzb0NjU3k0aEh5RmZKdmVSUDFOVUtPWVVIOHA4aXBTeW1iS2Ywa2E1VDNsUHBWS05xVjdVUkdvV2RUTzFqbnFlK29UNlNZR21ZS1hBVXVBcXJGRW9WMmhTdUszd1JwR29hS1RJVkZ5b21LTllySGhNOGFiaWF5V2lrckdTanhKYmFiVlN1ZEpKcFY2bFlXV2FzbzF5dUhLbThpYmxnOHBYbEYrbzRGV01WZnhVdUNwNUtqVXE1MVg2YVFqTmdPWkQ0OURXMC9iUkx0SUdWSEdxSnFvczFUVFZRdFhEcXAycVEyb3Fhdlpxc1dyTDFNclZUcXZKNkFqZG1NNmlaOUMzMEkvU2UraGZabWpQWU03Z3pkZzRvMkhHN1JrajZqUFZ2ZFI1NmdYcWplcmQ2bDgwR0JwK0d1a2EyelNhTlI1cllqVE5OZWRxTHRYY28zbFI4L1ZNMVpsdU16a3pDMlllbmZsQUM5WXkxNHJVV3FGVm8zVmRhMWhiUnp0QVc2UmRxbjFlKzdVT1hjZExKMDFuaDg0Wm5VRmRtcTZIcmtCM2grNVozWmNNTlFhVGtjRW9ZVnhnRE9scDZRWHFTZldxOURyMVJ2Vk45R1AwMStrMzZqODJJQms0RzZRWTdEQm9OeGd5MURVTU5WeHBXRy80d0lobzVHekVOOXBsMUdFMFlteGlIR2U4d2JqWitJV0p1Z25MSk1lazN1U1JLZFhVMDNTSmFiWHBYVE9jbWJOWnV0bHVzMXZtc0xtRE9kKzgzUHltQld6aGFDR3cyRzNSTlFzN3kyV1djRmIxckY1TGlpWFRNdHV5M3JMUGltNFZZclhPcXRucXpXekQyWW16dDgzdW1QM2Qyc0U2dzNxZjlVTWJGWnNnbTNVMnJUYnZiTTF0T2JibHRuZnRxSGIrZG12c1d1emUybHZZOCt6MzJOOXpvRG1FT214d2FIZjQ1dWprS0hac2NCeDBNblJLY3FwdzZuVldkWTV3M3VSODJRWHI0dTJ5eHVXVXkyZFhSOWNzMTZPdWY3cFp1cVc3SFhSN01jZGtEbS9PdmpuOTd2cnViUGNxZDVrSHd5UEpZNitIekZQUGsrMVo3Zm5VeThDTDYxWHI5WnhweGt4akhtSys4YmIyRm51ZjhCN3hjZlZaNWRQbWkvZ0crQmI0ZHZxcCtNWDRsZms5OGRmM1QvV3Y5eDhLY0FoWUVkQVdpQTBNRHR3VzJNdlNabkZZZGF5aElLZWdWVUVYZ2luQlVjRmx3VTlEekVQRUlhMmhjR2hRNlBiUVIyRkdZY0t3NW5BUXpncmZIdjQ0d2lSaVNjU3ZjM0Z6SSthV3ozMFdhUk81TXJJamloYTFLT3BnMU1kbzcrZ3QwUTlqVEdPa01lMnhpckh6WSt0aVIrSjg0NHJpWlBHejQxZkZYMHZRVEJBa3RDVGlFMk1UYXhPSDUvbk4yemx2WUw3RC9QejVQUXRNRml4YmNHV2g1c0tNaGFjWEtTNWlMenFXaEUyS1N6cVk5SlVkenE1bUR5ZXpraXVTaHpnK25GMmNWMXd2N2c3dUlNK2RWOFI3bnVLZVVwVHlJdFU5ZFh2cUlOK1RYOHgvTGZBUmxBbmVwZ1dtVmFhTnBJZW43MDhmeTRqTGFNd2taQ1psbmhTcUNOT0ZGeGJyTEY2MnVFdGtJY29YeVphNEx0bTVaRWdjTEs2VlFKSUZrcFlzVmJRNXVpNDFsZjRnN2N2MnlDN1AvclEwZHVteFpjckxoTXV1THpkZnZuSDU4eHovbko5WFlGWndWclN2MUZ1NWRtWGZLdWFxcXRYUTZ1VFY3V3NNMXVTdEdjZ055RDJ3bHJRMmZlMk5kZGJyaXRaOVdCKzN2alZQT3k4M3IvK0hnQi9xOHhYeXhmbTlHOXcyVlA2SStWSHdZK2RHdTQybEc3OFhjQXV1RmxvWEZoZCszY1RaZFBVbm01OUtmaHJibkxLNWM0dmpsajFiY1Z1RlczdTJlVzQ3VUtSY2xGUFV2ejEwZTlNT3hvNkNIUjkyTHRwNXBkaSt1SElYYVpkMGw2d2twS1NsMUxCMGErblhNbjVaZDdsM2VXT0ZWc1hHaXBIZDNOMjM5M2p0YWFqVXJpeXMvTEpYc1BkZVZVQlZVN1Z4ZFhFTnJpYTc1dG0rMkgwZFB6di9YRmVyV1Z0WSsyMi9jTC9zUU9TQkMzVk9kWFVIdFE1dXFZZnJwZldEaCtZZnVuWFk5M0JMZzJWRFZTTzlzZkFJT0NJOTh2S1hwRjk2amdZZmJUL21mS3podU5IeGloTzBFd1ZOVU5QeXBxRm1mck9zSmFHbDYyVFF5ZlpXdDlZVHYxcjl1ditVM3FueTAycW50NXdobmNrN00zWTI1K3h3bTZqdDliblVjLzN0aTlvZm5vOC9mL2ZDM0F1ZEY0TXZYcjdrZitsOEI3UGo3R1gzeTZldXVGNDVlZFg1YXZNMXgydE4xeDJ1bjdqaGNPTkVwMk5uMDAybm15MjNYRzYxZHMzcE9uUGI4L2E1Tzc1M0x0MWwzYjNXSGRiZDFSUFRjNjkzZnEvc0h2ZmVpL3NaOTk4K3lINHcrakQzRWZaUndXT2x4OFZQdEo1VS8yYjJXNlBNVVhhNno3ZnYrdE9vcHcvN09mMnZmcGY4L25VZzd4bjFXZkZ6M2VkMUwyeGZuQnIwSDd6MWN0N0xnVmVpVjZPdjgvOVEvcVBpamVtYjQzOTYvWGw5S0g1bzRLMzQ3ZGk3VGU4MTN1Ly9ZUCtoZlRoaStNbkh6SStqSXdXZk5ENGQrT3o4dWVOTDNKZm5vMHUvNHIrV2ZEUDcxdm85K1B1anNjeXhNUkZieko1b0JSQlU0WlFVQU42aGZRSTFBUURhTFFCSTh5Wjc2Z21CSnY4SFRCRDRUenpaZDArSUl3QTFiUUJFNXdJUWdvNmw2R2lNcXFJWEFCR29SbnNCMk01T3J2OFVTWXFkN1dRc2NqUGFtaFNQamIxSCswZThHUURmZXNmR1Jwdkh4cjdWb3NVK0FLRHQ0MlF2UHk1S2h3RFl1OExCS1N6a3hramJNUGdYK1FmV3lCSVA1OHNrbWdBQUFGWmxXRWxtVFUwQUtnQUFBQWdBQVlkcEFBUUFBQUFCQUFBQUdnQUFBQUFBQTVLR0FBY0FBQUFTQUFBQVJLQUNBQVFBQUFBQkFBQUFnS0FEQUFRQUFBQUJBQUFBaVFBQUFBQkJVME5KU1FBQUFGTmpjbVZsYm5Ob2IzVDduaUh2QUFBQjFtbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDBMakFpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenBsZUdsbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMMlY0YVdZdk1TNHdMeUkrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNHhNamc4TDJWNGFXWTZVR2w0Wld4WVJHbHRaVzV6YVc5dVBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwVmMyVnlRMjl0YldWdWRENVRZM0psWlc1emFHOTBQQzlsZUdsbU9sVnpaWEpEYjIxdFpXNTBQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01UTTNQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ252MXVDVUFBQmJNU1VSQlZIZ0I3VjBKY0JYbmZmOERBaVJ1Y1VuaUVraml4Z1p4T0Jpd3pZMmRPQjdIU1dhYWVveG5QRTJheWJSTzNNNmtTVHNldDA2UFROdWtHWGZxWnBMWWNSTGl4clhiU1JwekdBSEdCekVJaklVdzZPSVE0aFFnY1FrRVFvaitmN3Y3MzkyM2I5L1QyN2ZYMDlQK05VL2Y3cmZmOGYrKzMrODc5cnUyejEwV2lxVFg1a0RmWHB2eUtPRktEa1FFNk9WRWlBZ1FFYUNYNTBBdlQzNVVBMFFFNk9VNTBNdVRIOVVBRVFGNmVRNzA4dVJITlVCRWdGNmVBNzA4K1RsQnB4OER6eTFYMnVsR3h4M0s2ZHVIaGcwZVFFUHkrZ2V0UmhTZmxnT0JFR0JEUlQxVjFweW5UNCszMHZHejE5U28reGdZREJzMGdNb21ES2Y1WmFOb3laeENXbEUrM25nWVhmbWFBMzM4bWd6YXZLZUpmclBqQ0wxLzRLeWFBQlBna2lMRHlyakNzNUZEQjlMakQ1YlFVMnZLcUxoZ3FEaVBUQjl5d0hNQ3ZGdDFobDU2cTVxcWpyUVF4ZUtxcUc5WUdWZDZ1aXhXZHptQVp4NmVSczk5K2Q2b21kQXp5ZHNMendpQXR2MzVWeXZwMTlzYTRqUTBjRFd1RkVlV1c5Z0JkSWorZXNLM0JmbDU5UHo2QmZUSWZST1ZaOUUvNzNMQUV3S2NhTDVHei83N0g2ajY2RVZkTXdOYjQwcDVhTG1GblIzb2VrRGFCUll0Zk91TDk5Q3pUOHl4UG9ydVhlU0Fhd0xVTkYybXovN1ZSa1VGQTF2anl2SkFWelZWMEhVUHVPalRoOWF2blVwL3k3VkJKTjdrZ0t1M2dGTVgydWhQZi9DZVZtazdBMTF4YmZHQ0pNVXRUMkxRemZMTHJRMDBzRjlmK3U2VDVXYnI2RHJOSE5DYjJuVDgvOFhMdStuVStldnNWUU1KaHZ5MEFGSFM4Y01mSXVOWGZ4czNLdkE2K0FCZGZsbzRpbC9ONjg4MjE5RXZ0OVpyVHlMRFRRNmtUWUMvMzdDZjl0V2VOOEFFc0pwNEFib0FEaE5CZ3h3R1FZais3bGY3bFhFRkxjcklTRE1IMGlMQVhnYisxVTIxS2pJS01Hb3BUMWJTQlVBeEZYMmxsR3ZWdkJsMGNXY0dYV0dDaVdqZmYrTkFtc21PdkVrT3BFV0FsLzczVTZWYWw1S3VBd2R3NU1lWGNTQWlWbGVnUytDcStkR2g4L1QyUjAwSU5aSTBjOEF4QVQ0NGVJNCsvTFJaYmM4NVVtdWI3Z1Iwd0JqbjNveXhrcWc0aXhnT3ZmcE8xQmRJRTN2Rm0yTUN2TG56cUdlZzY0ckhZUnhuRVFPNjdvOHZEaHhycGQwOHp4Qkplam5naUFCdDdiZHA0MjYxeW8wcnVZZy9RZlVPT01XOXJtWWN4bkVXMXVCMHI5TDB3SVM4dmZ1ay9peTZjSllEamdpQWlaMFlJTTJBV3pweWZvT3VKRlBqekJ0Y0swV1NYZzQ0SWtCbC9ZVzRVbzVvRVFoK1FZS092b2NhcC9vRzhvZkR6VkFsRW9jNTRJZ0FOU2N1NmNFbkJGMHJsZWEzQVpVYThpQ1dRMXJGb1lkcnJkNlZCNXBYSytqU0JNRE45ayswYVdjOXBPZ2lsUnh3UklCVHpXMzJKVjJ3aGFsTHJLVzV0ZENkYUJkcGdXNE9ucTkvVVJFL0MybU5KN3FQendGSEJEaDMrYWJTQjFDQ01RT2doeHRyNlFoMGs5ZUVKZDNrUnFLVVBnbk12UTNHYktROGo4emtPWkF5QVRvNnU2dzF1Ulp5TENwcGc4NmhRUm5NR1VpTm9FUVFHN3hpWlFZZEZ2Q0gzNDc5WjNBYmlZTWNTSmtBV01CcFNDd3FZWUxlMXhUNXo3WkVnMElHUnFsZHBVeUF2a3dBTE41VXE0SFlqcHcxS2luQmVpZE40NHRVN1lqVVRVazNneTV4UzYxUWZkem9xTXF6eUV5Y0F5a1RBRUZNR0RORUg1eXhCcGtLNkluY0tHOE1Xb0FDSkV3SUZGUitwcEt1UE9CL1ZyY0lwK0tUcUJtUS9FbkZkRVNBcVJPR3hZU1pDRkJ6U1Uva1JrQTNnNWd1NkVwWVdndjFuMi9YeE9nWTNTVFBBVWNFbUZjNlN1K2dBVmhGTE5XN3VXcTN1aEV2WnRCRlBhY2wzUXc2d2tDODhsZDc4b29FRzVuZDVJQWpBbURUaGlKSlFOZmowOXdvUUxHbEU5RE5icVZXVU1LUk1EazhBVnRNUFY2KzJGWVZEUXFaOHlQWnRTTUNsQlVOVldZQzRRa1pMOVc3SG9FQUJKUEZES1JxazdoTnQzT2JESFFKVDh5N0hLZjhmdlRiUTJJZG1kM2tnQ01DSUt3Ly84SWNCWGc5M0F3QlhkWEhVT2FvYkVIVEZZMHU3SExBTVFGV2xZOUQ4VGQrZkdsWGVoR3c4clAwM3UzY1dzT1RhaDJtVmFTVXcxVEZVRWEvNG92dFVUTWdHWlRVZEV5QTJjVWpsQUN0UU9xQTgxUHJlN3JWclJLQWpwYXFueGVnNjBUaUlQLzVmejVWQTQ3K0o4MEJ4d1JBYUY5L2RJWVNxQmwwZllBQUpaN0ZMOUJWb21nVmtJVkUxamliTG1ESmVpVEpjaUF0QXF5ZVAxNnAzcnNGM1F5UXlnc3VwTWFmVmJGRTFic1pkTDJVYStGWlFWZkMxSnFkYlFmT1dhT0k3aTA1a0JZQjVwV001Q0tvSWhBSGdCbDBMVElEY2cwMWt4S2VnRzd1WjJoNklhWWR2Rk01a3VRNWtQYldNR3piZmtVbVgrSnhWY3E1WGRSRzU4MzhWQTFBRDBhL01OeUFhREdpQVcyMnMzcmJVM2VSbW5rS3UyQkVydGxaWU5mdDdlM1UydHBLVjY1Y29ldlhyOU90Vzdmb3l0V3JOR1R3WU1ySnlhSGMzRndhT25Rb0RSOCtuRWFQSGszOSt2VUxURGVKS0cwQ3JDNHZvbGNzUzdKUjB1MGtTTkFsZm9sekc5Y0NUeTR2RVd2ZnpUdDM3dERKcHBOMDV1d1p1blQ1c20xOGJVd0dSWmdZNTVxTnBXeUZCUVUwYnR3NEtpb3FzdlhuaDZXcjNjRmx6N3lWRVNWZE1rWkFsM3VZRDg0dW9GZS91Y1JzNWR0MVEwTURIVHQyakRxWkJHNWwzdHk1Tkg2OC8wZmxwTlVIa01ROXRhcE1MaFVUQU1qUGVJQmFRWG9CV3RkQnRkS2R4UGNqMklHMDY1b3I4UUxUTEJKZkxQaUc2L2Q1OTFCclc0ZlppK2ZYelZ5S2QrN2NTZlZNQUMvQWg0SlZCdzVRWldVbHRiVzFlYTZ2T1VCWEJGakRnMExKQU5CNzd3WWVldHgrZ281SWRQN3doWitEUXZYMTliVHY0NC9wK28wYmV0cTh1cmh3OFNKOThPRUhkT2FNZjUxWlZ3UllNbXVzS2EwcXlvbEFOd091ZCtnRUpaZ3NacDZvTmtid3lZaW0rb3dGM1R4UDRkZnJZSFYxTlRVY09XSW82Y05WVjlkZCtxU3FpbzRkUCs1RDZPcG9yYXVBLytpaEVxMkNWd0hRVWVSUXphRHJrU1FCWFhlalhiZ0JIVUZJL051cXo5SDE5azVyOEs3dUQzQVZmZkxVS1ZkaE9QRmNVMU5EeHhzYm5YaEp5YTJyR2dBeHJKN0hVOFJTZFBsZU1oMm1McTVBbDhERlRGelNFWjgxZmlIUjFtcnZwb2pyNnVybzFPblRldktDdWpoOCtEQy9OWGc3dU9XYUFNdnZMWXJMZENWRFBBTmR6VjRKRG8yN3VYckgwMFNnZzVpZ0RmNTcxUXljUFh1V2pod05ieXNhbXAyYk4yOHFxZkxpbjJzQ1FJa25saFNydWdoS01GbWt6S3AzcWhQNUx5VVRwaXJ4cmlVNEsraG13SEVOa2ZETW9KdUpzbm4vV1ZLV3Rxdk8wL3JmMWRWRk5iWGhMam03ZmJ1VDBCeDRKWjRRQUlOQ1NyZWJ0WXFIMFZCVlFISUx1b1FvNFNVQ0hlN0VEY3dLbDNNRGVNOXZiL2V1OUVrNm5KcG51QmE2Y042YkxmSGVFR0Jla1E2OE5URm1BTlJuOFJSSnBhUkx1QkplcXFERG45UVliZ2lBYWpmTXFsL1NMK1pSSG5EeVFqd2hBT2IvUC84WjR4UlBBUW1tS3NHRHZwQVBuaGJnUll2ZjdUMUY2WDRtODdoUHIyR2ltMU96aGVjWUVnMDFPd25MRXdJZ3dwVnpDL1hxVmxVZ0ZuUXA1VENUdGVtcVg2UHFkbExTSCtHQnFSODhYVTdWUC93c3ZmbVhTNVdnUkFzbFRvNjhnbys0Y1NxWTFQSHJQZHlwTG1iM1p6eDRFMGw3TXNpc0NLNVh6OFVFQnJMYkVBVnM3UllkTXJOSTV5M0dUbk1pb0ttZE9NT0ZVYU1ZZG84dEdrOXI3aTJrTlJ6L3dQNnhmUDdxbWxMNjZUYWpxa1NjYUFiV3Nuc25rbW1sWDNSdlB0OU1zMmZQbHR1MFRNOElrRHVnSDYyYlgwUmJ0WDM2VnZDZ25SVjBNNkJPUVAvaS9aTVk5QUlHdlZCZGZwWWc2V3Y0RmZVbkpnTEEyWDkvZEpMKzVhbDVDWHpFVzkvZ0lWNC9CbURpWTNKdWd3N3B0V3ZYbENsbDU3NVZINTRSQU1HdG5qdU8zdmtrdG9ydERuVDRzNUxGVEF3OGgzeGxXYkVDK0lvNUJhcEZDdi92SytPRkt5elc4TjdsQ2FJVnM4M0QySWtEeTlUU0x4cGY1ZlVGV0ZPUXJuaExBSDRiZ0hnRit0TXJTcFNTdm5UR21IVFRSK3M1akYvc2xHWkFiV08yOHRCd0tnVEFJbzdHRXlmU2pqc0lqOURSalhoS2dLRjVPYlNTMjlmdG5NRlM2cVJxaDVLcGxQU3ZyaTVWU3ZvaTdzVjdJV3Z2S1dBQ0hJOGg1WVlQbStpZnZuSnZ0OEZuZXVsSEF0eU9DbnBLQUNpMGNtNEJiZWVldGxyV1ZOQmhMeUxFa0h1WTMzaGtHcTNtTnIxOGNyN1oycFByQjJhTTFzRy9hK3FWZmxqZlFzdW1KU1laNXVGUE5EVjVvb09mZ1hSMnVwdms4cHdBNkkzLzlZYnFtRFJiUVVjVDhhMUhweXM5OTltV0hjY3hIajI2K1dQdVAveDZsd0VtNGtjemtJd0FXTm5URzhSekFvemlEejR0bXptR1BxamxJK1ZNZ2t6L3p1TXp1YVFYRXZZWUJpbHJ1WGJab0JGQW1xUlgzbXVrRjc5ay93cUZubldRVTcxdThnS0xTOTFJN0l1em01Qk1mcFVwWXI0SDZQSmJQRzAwZlgzZDFNREJoMXFydU1ldk5FbjhEN1dSMUVoN2o3YmljWnowcE5LUGxjVnV4QmNDNFAwYndJc2c4L2ZVWHlTY01oYVdmR254QkNYcUxxYUMvRFlmTkZia2lsNTRyUXBqcmwvaWQyb09HVExFcVpjWTk3NFFvQ2cvVnlseGFxbmorWHZ1Zk9GWElkOFFqRkVobUJzMEF3QmVCTFhBeXp1T3k2MXU5cVRTRDZXeHA4Q04rRUlBS1BRMzNMNUtyMXVhZ1FxYkV1ZEdlU2QrSCtiWFFhbitwUWxBNHF1YWpOTkVzSUhqdEk4TE1KM29tNHJid1lNRzBXRGVaT0pHZkNNQXh1Y0ZlRkZ3WjgwRjM1ZG9TMXhXRXpPV1gxZ3dUdDJ5emc5UkYwQS9jelBRMDBwL1lhR3pPUTFybnVEZU53SVVqMUdaYVMxMVc2dmoyMTA3eGZ5d1czZlAyRGhTL21pcnVyenJNdS9pd1VLTG5pVFlSZVJXZkNNQUZQczJ2L2FwZ3ZLbXJ1V3I0UGZ2c0FUTkFLU0xhd1A1NGI2R1R4UHBhYVYvN0pneE5HeFk3S2x0U0l0VDhaVUFtSGFWNFY5VXQ1Q3QzQTlvdStsdTlFb055Zm4vM1A3OTZHR2VRWVJJOHdSejU0RW1PbnN1UEdJcUNqbjhOMlhLRkljKzdKMzdTb0NwaGVvcmlyd0ZpTGtseEZyZ0lkUFFNRmNFeWxMR1BiWCs3Ynl4ejNaM3RnVmp4eXE3aWQyRm92cjJsUUNJNHJuUFRkZjFsRkszOWFBM0N4cjFnQjFjeko4MFhBRWQ0S3UxVXg5cWFQRjM3NkFEOVZKeTZsWHBSMlMrRTJBZHYzOUw5WStlQUxyZkcva0FKN2RMdEJGVU9sTENuVk1CSHY2aDI1bWJ2bWRET3FyYStzRVc4bEdqRWs5aTJYcEtZdWw3eXBYSkhwUTI3U2U2YkFscFRHQklibzRDdXRSRzBPZGFwKy9aSU1sMmJYcForcUZNSUNsL2RtMlprbkFaZ29XSjJiZ3dSZm9qTUpFSlVrdUZxVk4zY1JmeGUvL0lrZW9xcCs3Y3B2bzhFQUtZaDJHbEpuanJZLzRDV1FpNWZyM2pEdmNCdEE5WmN5NmhXWUlhTUROZHZDNzlTRzhnQkNqbnN3VUZlSWtVRWIvRFh5QU5XazYwdE1jMUFRVzU3ay8wOERzZDQvalltUHg4N3hmTUJFSUFaTTQzVms1UjJDWWxEcVZ1Y3dodkF3ZTBrOFNGa0RBbkR1cnlHei9YNGZ0UitxRlVZQVJZaDhrWVV6WmdKTzQzZTA2WmJJSzUzTm5Rb3RSR2lFMzZKS1hETXJzR0dNOUR2aU5HcUNlMGVwMUxnUkhnTTZVajllRlhnQThCSVRhNTNMQ3BCSlRpdjNadS85LzgrSndPdkhpYm1wL1pQWUNTa2hKUjFYTXpNQUpBOHo5NXNEaXUvZjBWYjlRSVNsNzd5S2h4a0hEOEJ2TFJmQ1dqM0MycjhsUC9DWHhTbUJkai9vbDBESlFBajJNYnVTYW9CUERiWHR0Q0ZZZGoxdytLR3kvTkc3ZnYwUE8vcTFQN0lSeXY5QUhXRnR4U3Y0YnVaV1FlaHVWbjZZZWFnUkpnVVVrK0xlYW1BTWliUitQKzRmZjF2cjhTdm9nNE5PQ1JjRFEvK0gxdTlnaGF2V29WbFV5WkF1dU1rb2tUSnJqYTlaTktZZ0lsQUJUNjJ2TEppbDRDQU14RFBCMzczQnYrSGUvK2V1VnArdW11a3pyb2lCT3lmRXdIclZ3MGt3WU9IRWd6Wjg2a1ZTdFgwcFRKazVWbm1mRFA3OUtQTkFaT2dFZDVibUNOdGkvUFBCcjMrcDdUOUwzZjEzbWU3Mi96cSthZnZYRklBVjhDbDNqWEw4aVBtVlhEQ3R0WnMyYlJ5aFVyYUhKeHNUZ1B4WncwY1NLNVhmQ1ppdUtCRXdCS3ZmRDVhZFMzWC94bzNFczdHdW5iYng1T1JlK1UzR3hnVXExL3JZcXJmbU5oS3E0aHoweHBwNGNXeW9LVjJPRHk4dktVYmRjcmxpK240a21UWWg4R2RCZEU2VWRTWEowVjdDWXZYdDk5aXI3SkpWTUU3YlBJd3NrajZNWEhwdE45YktZamwvbE13QmMzTmREUFRiMStoS05oVDh2eWI5RUw2NHBvd1lJRktRV1BEWmhZTWRSME1wZzNGcEJ1enB3NUtlbm0xbEZvQklEaTM5OThoUDYxUWwyVEp3a3hMOTErOGo0Ky9HSDJHSHFNMS9LbEloZjVUT0RYbUZndnYzZUNMbWtIUXdybzRuL3E0RTc2em9LN3RQeUJKWlR2Y0hBRit3VkJCTDkzRGFIbUdjUXJmb09RVUFtQUJINXZZejM5Mi9iR21MUkt1eVMxd29LSncyZ0ZyK1NaejJicDJDRTBlbkIvd3JlTXJ6TElKMXJicWZyMFZYci9TQ3R0T2F4K1B0NEt1Z1NPTjQ4Zkw3bEZVNHVMYVA3OCtXTHQyTVRXTVJEQmp3MGs2SHU0UGZYRFNZSkNKd0NVL1krZGpmVEMvOVVyZWd2bzVrUklyMTNzcEIyWGU1akpRTWZ6eGZrZDlMVTVkMmxBVGg5YXVtU0pKME9yMkVVRUluaTVsd0FkVVBSQmdwS01JQUFTKzI1ZEMzMzN0N1hVY0Y0OThNQUwwQ1VUbnk1dXB6VWw2dGM0TUt0V1hsNHVqend4cjE2OVFrZVBIbk85ckJ5dm9IZ0xDVkl5aGdDUzZIL2NnbjZCdWpYYld0SVRsWEw0UmZWdWxmdEhkdEFUSlYxVU5GUWFGYUpsUzVlNjNrNWxqVWZ1c2JjQU5VSzZLNHd4RHVGMnM2Zm9rcXFaY1FTQTR1ak0vWnpuQ1A1cjMxbHE1RFkra2RpQmpvbmRKL2lRaXNYOVR0Q0U0UWJ3Q0FPemF2UG1wWDVBVktKNHU3UEgrWDNIK0R4aDgrZGd1dk9Ea1VnTVJnVXRHVWtBY3laVU5sNm1keHRhYWYvSnExUjNybzFPWGJsRmQvZ01mWkhoZy9wVDZlZzhtanQrR04wL1pRUjl1YnhRZVYwN2VQQ2dPTkhOQjVZdDgzVmlSWTlJdTJocGFTRWNNOU9jd3JHdUdJN0dpR1RRa3ZFRXNNdVF0bHVkMU1ra0dNUWJQUWJreEpaeXVOKzRhVk9jTjh5cXplWHY4SVFoRi9uTEh5REMrUXYyazE2bFBOMDdZOGFNTUZRTGZpallpMVFPR1poREkvTDYyNExmbE9CY242QkcxdXpTaDAvQ0xWcTBpRVluV000ZHBtN3h4Y2N1QlQzSXp1NWtyeUJtMWJyTEloem1kSkdiQkt1VWxaYlNnQUVEck5hQjNXY1ZBYzV6VzZ0L2s4K1VoV0dXTUZFRGJ3ZDJFclp1V1VXQWN6WWJQTkh6RDJKV3pRNWNzZXZvNkxEOXVOVFVzakxxMzcrL09BdkZ6Q29Db0Fhd1NoQWZYN1RHYWIyM2E1YmdKdXpTRHgyeWhnQVluNy9GSmMwc09md3Qzakc4ano1TXdmZUM3VDQwTVgzYU5PWDd3V0hxaHJpemlnRFd6UFI2RzVVMS9GVHVFNVgrS1R6d2t3bVNOUVRBc2U1V0NidnR4em0rZHA5Mm1URjllaWhmQ3JmbUQrNnpoZ0RvYUZrbGpKRTFzdzZaWHZxaGE5WVFBSjkwczBxZnZ1RWxMOUZuWm1ieWlGL2ZFUFd5NWxGNE9XVFZ4T1c5WGFiZWNYbVN0aHVWZWtMcFIvcXloZ0IybzJsdXo5SlBsd0NKUGpNemkyZjdzRFU5a3lSckNHQzNpZ2F2aG1GSVR5bjl5SnVzSVlEZGQzTmFMMTJpTzNlQzNmbWI2RE16UWEvMFNaWDRXVU1BYktERXdJOVZtcHVEUFlRaVllbm41VjZaS0ZsREFHVHVXRDQvenlvbkExckxqM2dUZldabWpzdHYrMW5UNU9WOVZoSEFickVucG1EdDVnaTh6RVFKSzlHTVgzSEkyOHhFUHpzenF3aUFCT2JsNWNhbGMrKytmWEYyWGx0YzROVStkaHRHN2dsb2gwKzY2Y2s2QWlUYTFGbGJXNXR1SG5YcjcvYnQyM1Rva0xITnpleGhVa2g3QzgwNkpMdk9PZ0tVbEpRU1BxUmdGWXpKTng1dnRGcDdjbDlWVlVYWGJlWWk1b1cwQnRGSm9yS09BRWo4ZEo1c3NaTkROWWQ1M1g3c1hrUTdkNm5hNFJWejc5Njl0b3M5Y2FSckpxeEY2QzR0V1VtQUl0NzlnMTAyZGxKVFcwZlYxZFhrOW9PTFdQSzlhOWN1Vy9BSDhDcWZUSDN2dCtaSmoxd1diazFFb3Z0RXBWUGNvNFBtdEkzR1FBL2U5Wk45VlhUUndvVzJyNlFTYnlhWldVMEFWTkdWbFpXRUVjRmtnbDA1V0RtRUJTUjJrMHFZVTBDSng1ckQ3bmI3bFBQT0l5OCs1WkpNWHkrZlpUVUJrRkdZSnQ2L2YzOUt1M1BnSGgxSVRDeUJDQzJ0OWgrV2hEczdXYkJnUGhVV3VQK1FrMTNZZnRsbFBRRWs0K3JxNm16WDVzbHpOeVlPbXNDSkhuNmU1K2RHdjJSK2V3MEJrQW5Zb2xWZlgwL1l2T21GWUdKM0dpL3VMT1BsM1QxVmVoVUJCS1F6L0hISXhzWkdWMFRBZnI3Si9LWVI5SFp1U1lOWFpxOGtnR1FldmhTSzJVSU00MTdtNjJTU3gwZkk0Vk10WTNqQ0NZZE1aSXYwYWdLWVFiekxYNjlROWhad2ovODJMeVhEZmIrY2ZyeGxPNWNHOFpFdFlTOHdOZXZxNVhWRUFDOXpzd2VHbFpVamdUMFFoOUJVamdnUVd0Wm5Sc1FSQVRJRGg5QzBpQWdRV3RablJzUVJBVElEaDlDMGlBZ1FXdFpuUnNUL0QveG9scTU2alJwbEFBQUFBRWxGVGtTdVFtQ0NcIiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBCb3gsXG4gIENpcmN1bGFyUHJvZ3Jlc3MsXG4gIEdyaWQsXG4gIFBhcGVyLFxuICBUeXBvZ3JhcGh5LFxuICBDb250YWluZXIsXG59IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuY2xhc3MgTG9hZGluZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGJvZHkgPSAoXG4gICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgIDxQYXBlclxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwYWRkaW5nOiAnNXB4JyxcbiAgICAgICAgICAgIG1hcmdpblRvcDogJzEwcHgnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8R3JpZCBjb250YWluZXI+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAxMDAsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDMnPkxvYWRpbmcuLi48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAwLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdzdWJ0aXRsZTEnPlRoaXMgbWF5IHRha2UgYSBtb21lbnQuPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvUGFwZXI+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7Ym9keX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTG9hZGluZztcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTWFwYm94R0wgZnJvbSAnLi4vbGliL01hcGJveEdMLmpzJztcbmltcG9ydCBhcGlDYWxsIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9hcGlDYWxsLmpzJztcbmltcG9ydCBnZXRFcnJvck1lc3NhZ2UgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyc7XG5pbXBvcnQgRXJyb3IgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2Vycm9yLmpzJztcbmltcG9ydCBMb2FkaW5nIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2FkaW5nLmpzJztcbmltcG9ydCB7IG1hcGJveFRva2VuLCB2YWxpZGF0ZVBob25lIH0gZnJvbSAnLi4vbGliL3V0aWxzLmpzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTG9jYWxUYXhpSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0xvY2FsVGF4aSc7XG5pbXBvcnQgUGhvbmVJblRhbGtJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvUGhvbmVJblRhbGsnO1xuaW1wb3J0IE1lZGljYXRpb25JY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvTWVkaWNhdGlvbic7XG5pbXBvcnQgTmF2aWdhdGlvbkljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9OYXZpZ2F0aW9uJztcbmltcG9ydCBDb250YWN0c0ljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Db250YWN0cyc7XG5pbXBvcnQge1xuICBCb3gsXG4gIFBhcGVyLFxuICBCcmVhZGNydW1icyxcbiAgQXBwQmFyLFxuICBUb29sYmFyLFxuICBUeXBvZ3JhcGh5LFxuICBMaW5rLFxuICBMaXN0LFxuICBMaXN0SXRlbSxcbiAgTGlzdEl0ZW1CdXR0b24sXG4gIEdyaWQsXG4gIFRleHRGaWVsZCxcbiAgQnV0dG9uLFxuICBDb250YWluZXIsXG4gIEZvcm1Db250cm9sLFxuICBJbnB1dExhYmVsLFxuICBTZWxlY3QsXG4gIE1lbnVJdGVtLFxufSBmcm9tICdAbXVpL21hdGVyaWFsJztcblxuY2xhc3MgTW9iaWxlU2l0ZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgdmlldzogJ21vYmlsZV9zaXRlJyxcbiAgICAgIGlkOiB0aGlzLmdldFN0b3JlTnVtYmVyKCksXG4gICAgICBoYXNoOiB0aGlzLmdldEhhc2goKSxcbiAgICAgIHN0b3JlX25hbWU6ICcnLFxuICAgICAgbG9nbzogJycsXG4gICAgICBzdG9yZV9hZGRyZXNzOiAnJyxcbiAgICAgIHN0b3JlX2FkZHJlc3NfdHdvOiAnJyxcbiAgICAgIHBoYXJtYWN5X3Bob25lOiAnJyxcbiAgICAgIHBoYXJtYWN5X3NtczogJycsXG4gICAgICBjaXR5OiAnJyxcbiAgICAgIHN0YXRlOiAnJyxcbiAgICAgIHppcDogJycsXG4gICAgICBlbWFpbDogJycsXG4gICAgICB3ZWJzaXRlOiAnJyxcbiAgICAgIHdlYl92ZXJzaW9uOiBudWxsLFxuICAgICAgZmFjZWJvb2tfbGluazogJycsXG4gICAgICBwaGFybWFjeV9ob3VyczogJycsXG4gICAgICBidG5fY291bnQ6IDAsXG4gICAgICBwaGFybV9jb29yZHM6IFtdLFxuICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3JNZXNzYWdlczoge30sXG4gICAgICBmaWVsZHM6IGZpZWxkcyxcbiAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIHBhZ2VzOiBbXG4gICAgICAgIHsgbmFtZTogJ1JlZmlsbCAtIEVudGVyIFJ4IG51bWJlcicsIHZpZXc6ICdyZWZpbGxfcmVxdWVzdCcsIGljb246IDxNZWRpY2F0aW9uSWNvbi8+IH0sXG4gICAgICAgIHsgbmFtZTogJ0FkZCB0byBDb250YWN0cycsIHZpZXc6ICdhZGRfY29udGFjdHMnLCBpY29uOiA8Q29udGFjdHNJY29uLz4gfSxcbiAgICAgICAgeyBuYW1lOiAnSG91cnMgYW5kIERpcmVjdGlvbicsIHZpZXc6ICdob3Vyc19hbmRfZGlyZWN0aW9ucycsIGljb246IDxMb2NhbFRheGlJY29uIC8+IH0sXG4gICAgICBdLFxuICAgIH07XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDgxMCAmJiB3aW5kb3cuaW5uZXJIZWlnaHQgPD0gMTA4MCkge1xuICAgICAgdGhpcy5zdGF0ZS5wYWdlcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ0NhbGwgUGhhcm1hY3knLCB2aWV3OiAnY2FsbF9waGFybWFjeScsIGljb246IDxQaG9uZUluVGFsa0ljb24vPixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdGF0ZS5wYWdlcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ05hdmlnYXRpb24nLCB2aWV3OiAnbmF2aWdhdGlvbicsIGljb246IDxOYXZpZ2F0aW9uSWNvbi8+LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGZpZWxkcyA9IHtcbiAgICAgIGZpcnN0X25hbWU6IHtcbiAgICAgICAgdGl0bGU6ICdGaXJzdCBOYW1lJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MSwyMH0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZmVlZGJhY2sgPSAnSW52YWxpZCBGaXJzdCBOYW1lIEZvcm1hdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5maXJzdF9uYW1lLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBsYXN0X25hbWU6IHtcbiAgICAgICAgdGl0bGU6ICdMYXN0IE5hbWUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXsxLDIwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2sgPSAnSW52YWxpZCBMYXN0IE5hbWUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5sYXN0X25hbWUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHBob25lX251bWJlcjoge1xuICAgICAgICB0aXRsZTogJ1Bob25lIE51bWJlcicsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgdmFsaWRhdGVQaG9uZSh2YWx1ZSwgY29weSwgJ3Bob25lX251bWJlcicpO1xuICAgICAgICAgIC8vIGlmICghL15cXCg/XFxkezN9WykgXT9cXGR7M31bLSBdP1xcZHs0fS8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAvLyAgIGZpZWxkcy5waG9uZV9udW1iZXIuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIC8vICAgZmllbGRzLnBob25lX251bWJlci5mZWVkYmFjayA9ICdJbnZhbGlkIFBob25lIE51bWJlciAoaS5lLiwgKDk4OSkyMzQtNDQzNSknO1xuICAgICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgLy8gICBmaWVsZHMucGhvbmVfbnVtYmVyLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgLy8gICBmaWVsZHMucGhvbmVfbnVtYmVyLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIC8vIGNvcHkuZmllbGRzLnBob25lX251bWJlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgICAgZW1haWw6IHtcbiAgICAgICAgdGl0bGU6ICdFbWFpbCBBZGRyZXNzJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXswLDI1NX0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5mZWVkYmFjayA9ICdJbnZhbGlkIEVtYWlsIEFkZHJlc3MgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZW1haWwuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMuZW1haWwudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGZheF9udW1iZXI6IHtcbiAgICAgICAgdGl0bGU6ICdGYXggTnVtYmVyJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuXG4gICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHZhbGlkYXRlUGhvbmUodmFsdWUsIGNvcHksICdmYXhfbnVtYmVyJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLmZheF9udW1iZXIudmFsdWUgPSAnJztcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLmZheF9udW1iZXIuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLmZheF9udW1iZXIuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHByZXNjcmlwdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByZXNjcmlwdGlvbl8wOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1ByZXNjcmlwdGlvbiBOdW1iZXInLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGVsaXZlcnk6IHtcbiAgICAgICAgdGl0bGU6ICdEZWxpdmVyeSAvIE1haWwgU2hpcG1lbnQnLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogJ05vJyxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5kZWxpdmVyeS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3NlbGVjdG9yJyxcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7IHZhbHVlOiAnTm8nLCBOYW1lOiAnTm8nIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnWWVzJywgTmFtZTogJ1llcycgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBpY2t1cDoge1xuICAgICAgICB0aXRsZTogJ0Rlc2lyZWQgUGlja3VwIFRpbWUnLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogJy0tIFNlbGVjdCBPbmUgLS0nLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3B5LmZpZWxkcy5waWNrdXAuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgY29weS5maWVsZHMucGlja3VwLmZlZWRiYWNrID0gJ1BsZWFzZSBzZWxlY3QgYSB2YWxpZCB0aW1lJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMucGlja3VwLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAnc2VsZWN0b3InLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICctLSBTZWxlY3QgT25lIC0tJywgTmFtZTogJy0tIFNlbGVjdCBPbmUgLS0nIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnTm8gUHJlZmVyZW5jZScsIE5hbWU6ICdObyBQcmVmZXJlbmNlJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1NvbWV0aW1lIFRvZGF5JywgTmFtZTogJ1NvbWV0aW1lIFRvZGF5JyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1RvbW9ycm93JywgTmFtZTogJ1RvbW9ycm93JyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1RvbW9ycm93IE1vcm5pbmcnLCBOYW1lOiAnVG9tb3Jyb3cgTW9ybmluZycgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdUb21vcnJvdyBBZnRlcm5vb24nLCBOYW1lOiAnVG9tb3Jyb3cgQWZ0ZXJub29uJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29tbWVudHM6IHtcbiAgICAgICAgdGl0bGU6ICdDb21tZW50cycsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MCwyNTV9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5jb21tZW50cy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZmVlZGJhY2sgPSAnSW52YWxpZCBGb3JtYXQnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5jb21tZW50cy5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5jb21tZW50cy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5zdGF0ZS5maWVsZHMgPSBmaWVsZHM7XG4gICAgdGhpcy5tYWluQ29udGVudEZvY3VzID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgdGhpcy5jaGFuZ2VWaWV3ID0gdGhpcy5jaGFuZ2VWaWV3LmJpbmQodGhpcyk7XG4gICAgdGhpcy5jbGVhckZpZWxkcyA9IHRoaXMuY2xlYXJGaWVsZHMuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEZ1bGxBdXRoID0gdGhpcy5nZXRGdWxsQXV0aC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0U3RvcmVOdW1iZXIgPSB0aGlzLmdldFN0b3JlTnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSeE51bWJlciA9IHRoaXMuZ2V0UnhOdW1iZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEhhc2ggPSB0aGlzLmdldEhhc2guYmluZCh0aGlzKTtcbiAgICB0aGlzLmFkZENvbnRhY3QgPSB0aGlzLmFkZENvbnRhY3QuYmluZCh0aGlzKTtcbiAgICB0aGlzLmVudGl0eSA9IHRoaXMuZW50aXR5LmJpbmQodGhpcyk7XG4gICAgdGhpcy5jb25zdHJ1Y3RYTUxEb2N1bWVudCA9IHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnN1Ym1pdEZvcm0gPSB0aGlzLnN1Ym1pdEZvcm0uYmluZCh0aGlzKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5pc01vYmlsZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYWRkUlhOdW1iZXIgPSB0aGlzLmFkZFJYTnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXREYXRhID0gdGhpcy5nZXREYXRhLmJpbmQodGhpcyk7XG4gICAgdGhpcy5sb2FkID0gdGhpcy5sb2FkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRHb29nbGVNYXBzVVJMID0gdGhpcy5nZXRHb29nbGVNYXBzVVJMLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kb3dubG9hZFRvRmlsZSA9IHRoaXMuZG93bmxvYWRUb0ZpbGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldE5hdmlnYXRpb24gPSB0aGlzLmdldE5hdmlnYXRpb24uYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZXNjcmlwdGlvbkRhdGEgPSB0aGlzLnByZXNjcmlwdGlvbkRhdGEuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdGhlbWVNb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgY2hhbmdlVmlldyh2aWV3KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6IHZpZXcgfSk7XG4gIH1cblxuICBjbGVhckZpZWxkcygpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29weS5maWVsZHMpIHtcbiAgICAgIGlmIChjb3B5LmZpZWxkc1trZXldLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGtleSA9PSAncGlja3VwJykge1xuICAgICAgICAgIGNvcHkuZmllbGRzW2tleV0udmFsdWUgPSAnLS0gU2VsZWN0IE9uZSAtLSc7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICdkZWxpdmVyeScpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJ05vJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvcHkuZmllbGRzW2tleV0ucmVxdWlyZWQpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29weS5idG5fY291bnQgPj0gMCkge1xuICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHByZXNjcmlwdGlvbl8wOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1ByZXNjcmlwdGlvbiBOdW1iZXInLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29weS5idG5fY291bnQgPSAwO1xuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICB9XG5cbiAgZ2V0RnVsbEF1dGgoKSB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICdkZW1vJ1xuICAgICAgfHwgd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkgPT0gJ3Q9ZGVtbycpIHtcbiAgICAgIHJldHVybiAnMUhzMUYyeTc3MTAyNzEwMTA4Nic7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxLCAzKSA9PSAndD0nKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdG9yZU51bWJlcigpIHtcbiAgICAvLyBGb3IgbG9jYWwgdGVzdGluZ1xuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT0gJ2xvY2FsaG9zdCcpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoNCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFyeSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpO1xuICAgICAgcmV0dXJuIGFyeVthcnkubGVuZ3RoIC0gMV07XG4gICAgfVxuICB9XG5cbiAgcHJlc2NyaXB0aW9uRGF0YSgpIHtcbiAgICBjb25zdCBwcmVzY3JpcHRpb25fdmFsdWVzID0gW107XG4gICAgY29uc3QgcHJlc2NyaXB0aW9ucyA9IHRoaXMuc3RhdGUuZmllbGRzLnByZXNjcmlwdGlvbnM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmVzY3JpcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHByZXNjcmlwdGlvbnNbaV1bYHByZXNjcmlwdGlvbl8ke2l9YF0udmFsdWU7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcHJlc2NyaXB0aW9uX3ZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDx0ZD57IHByZXNjcmlwdGlvbl92YWx1ZXMuam9pbignLCAnKSB9PC90ZD5cbiAgICApO1xuICB9XG5cbiAgZ2V0UnhOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RnVsbEF1dGgoKS5zdWJzdHJpbmcoMTMpLnJlcGxhY2UoL1teMC05XS9nLCAnJyk7XG4gIH1cblxuICBnZXRIYXNoKCkge1xuICAgIHJldHVybiB0aGlzLmdldEZ1bGxBdXRoKCkuc3Vic3RyaW5nKDAsIDcpO1xuICB9XG5cbiAgZG93bmxvYWRUb0ZpbGUoY29udGVudCwgZmlsZW5hbWUsIGNvbnRlbnRfdHlwZSkge1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY29udGVudF0sIHsgdHlwZTogY29udGVudF90eXBlIH0pO1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgZG93bmxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgZG93bmxvYWQuaHJlZiA9IHVybDtcbiAgICBkb3dubG9hZC5kb3dubG9hZCA9IGZpbGVuYW1lO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWQpO1xuICAgIGRvd25sb2FkLmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZCk7XG4gIH1cblxuICBhZGRDb250YWN0KCkge1xuICAgIGNvbnN0IHN0b3JlX25hbWUgPSB0aGlzLnN0YXRlLnN0b3JlX25hbWUgPyB0aGlzLnN0YXRlLnN0b3JlX25hbWUgOiAnJztcbiAgICBjb25zdCBhZGRyZXNzMSA9IHRoaXMuc3RhdGUuc3RvcmVfYWRkcmVzcyA/IHRoaXMuc3RhdGUuc3RvcmVfYWRkcmVzcyA6ICcnO1xuICAgIGNvbnN0IGFkZHJlc3MyID0gdGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzX3R3byA/IHRoaXMuc3RvcmVfYWRkcmVzc190d28gOiAnJztcbiAgICBjb25zdCBjaXR5ID0gdGhpcy5zdGF0ZS5jaXR5ID8gdGhpcy5zdGF0ZS5jaXR5IDogJyc7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlLnN0YXRlID8gdGhpcy5zdGF0ZS5zdGF0ZSA6ICcnO1xuICAgIGNvbnN0IHppcCA9IHRoaXMuc3RhdGUuemlwID8gdGhpcy5zdGF0ZS56aXAgOiAnJztcbiAgICBjb25zdCBlbWFpbCA9IHRoaXMuc3RhdGUuZW1haWwgPyB0aGlzLnN0YXRlLmVtYWlsIDogJyc7XG4gICAgY29uc3QgcGhvbmUgPSB0aGlzLnN0YXRlLnBob25lX251bWJlciA/IHRoaXMuc3RhdGUucGhvbmVfbnVtYmVyIDogJyc7XG4gICAgY29uc3QgbG9nbyA9IHRoaXMuc3RhdGUubG9nbyA/IHRoaXMuc3RhdGUubG9nbyA6ICcnO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuc3RhdGUud2Vic2l0ZSA/IHRoaXMuc3RhdGUud2Vic2l0ZSA6ICcnO1xuICAgIGNvbnN0IHNtcyA9IHRoaXMuc3RhdGUucGhhcm1hY3lfc21zID8gdGhpcy5zdGF0ZS5waGFybWFjeV9zbXMgOiAnJztcbiAgICBjb25zdCB2Y2FyZCA9IGBCRUdJTjpWQ0FSRFxuVkVSU0lPTjozLjBcbkNMQVNTOlBVQkxJQ1xuT1JHOiR7c3RvcmVfbmFtZX1cbkFEUjtUWVBFPXdvcms6Ozske2FkZHJlc3MxfSR7YWRkcmVzczJ9OyR7Y2l0eX07JHtzdGF0ZX07JHt6aXB9O1xuRU1BSUw7VFlQRT1pbnRlcm5ldCxwcmVmOiR7ZW1haWx9XG5URUw7VFlQRT13b3JrLHZvaWNlOiR7cGhvbmV9XG5URUw7VFlQRT1tb2JpbGUsdm9pY2U6JHtzbXN9XG5QSE9UTztWQUxVRT11cmk7VFlQRT1HSUY6JHtsb2dvfVxuVVJMO1RZUEU9d29yazoke3VybH1cbkVORDpWQ0FSRFxuICAgIGA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IHZjYXJkLnRyaW0oKSxcbiAgICAgIGZpbGVuYW1lOiB0aGlzLnN0YXRlLnN0b3JlX25hbWUucmVwbGFjZSgvKFxcc3woXFwufCBcXC4pKS9nLCAnJykgKyAnLnZjZicsXG4gICAgICBjb250ZW50X3R5cGU6ICd0ZXh0L3ZjYXJkJyxcbiAgICB9O1xuICB9XG5cbiAgaXNNb2JpbGUoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICByZXR1cm4gKC9hbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXFwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzeW1iaWFufHRyZW98dXBcXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWlubyBbTkMsT1JdL2kuIHRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpO1xuICB9XG5cbiAgZW50aXR5KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbZG9jLCBlbnRpdHlOYW1lLCAuLi5leHRyYV0gPSBhcmdzO1xuICAgIGNvbnN0IG5vZGUgPSBkb2MuY3JlYXRlRWxlbWVudChlbnRpdHlOYW1lKTtcbiAgICBmb3IgKGNvbnN0IGFyZyBvZiBleHRyYSkge1xuICAgICAgaWYgKCFhcmcpIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChkb2MuY3JlYXRlVGV4dE5vZGUoJycpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChkb2MuY3JlYXRlVGV4dE5vZGUoYXJnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLmFwcGVuZENoaWxkKGFyZyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY29uc3RydWN0WE1MRG9jdW1lbnQoKSB7XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoJ2h0dHA6Ly93d3cuc3JzcGhhcm1hY3kuY29tL1hNTC9QYXRpZW50UmVmaWxsUmVxdWVzdCcsXG4gICAgICAgICdQYXRpZW50UmVmaWxsUmVxdWVzdCcsXG4gICAgICAgIG51bGwpO1xuXG4gICAgY29uc3Qgcm9vdCA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgY29uc3QgcnggPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLnN0YXRlLmJ0bl9jb3VudDsgaSsrKSB7XG4gICAgICAvLyBBdm9pZCBlbXB0eSB2YWx1ZXNcbiAgICAgIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5wcmVzY3JpcHRpb25zW2ldW2BwcmVzY3JpcHRpb25fJHtpfWBdLnZhbHVlKSB7XG4gICAgICAgIHJ4LnB1c2godGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9uc1tpXVtgcHJlc2NyaXB0aW9uXyR7aX1gXS52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnVG8nLCB0aGlzLnN0YXRlLmlkKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdGcm9tJywgJ3Nyc3dlYicpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1NlbnRUaW1lJywgbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSk7XG4gICAgaWYgKHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC52YWx1ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgIT09ICctLSBTZWxlY3QgT25lIC0tJykge1xuICAgICAgY29uc3QgdG9tb3Jyb3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArICg2MCAqIDYwICogMjQgKiAxMDAwKTtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0b21vcnJvdykudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xuICAgICAgbGV0IGhvdXIgPSAnJztcbiAgICAgIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgPT0gJ1RvbW9ycm93IE1vcm5pbmcnKSB7XG4gICAgICAgIGhvdXIgPSAnOSc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC52YWx1ZSA9PSAnVG9tb3Jyb3cgQWZ0ZXJub29uJykge1xuICAgICAgICBob3VyID0gJzEyJztcbiAgICAgIH1cbiAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgIGlmIChob3VyKSB7XG4gICAgICAgIHJlc3VsdCA9IGAke2RhdGV9VCR7aG91cn06MDA6MDBgO1xuICAgICAgfVxuICAgICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdQaWNrdXBUaW1lJywgcmVzdWx0KSk7XG4gICAgfVxuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnTWVzc2FnZUlEJywgbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKSkpO1xuICAgIGNvbnN0IHJ4TnVtYmVycyA9IHJ4Lm1hcCgobnVtYmVyKSA9PiB0aGlzLmVudGl0eShkb2MsICdSeE51bWJlcicsIG51bWJlcikpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnUnhOdW1iZXJzJywgLi4ucnhOdW1iZXJzKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdDb250YWN0JyxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnTGFzdE5hbWUnLCB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudmFsdWUpLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdGaXJzdE5hbWUnLCB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnUGhvbmUnLCB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIudmFsdWUpLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdFbWFpbCcsIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRmF4JywgdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci52YWx1ZSkpKTtcbiAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudmFsdWUgPT0gJ1llcycpIHtcbiAgICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnUGlja3VwTWV0aG9kJywgJ0QnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnUGlja3VwTWV0aG9kJywgJ1AnKSk7XG4gICAgfVxuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnQ29tbWVudCcsIHRoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnZhbHVlKSk7XG4gICAgcmV0dXJuIGRvYztcbiAgfVxuXG4gIGFzeW5jIGdldERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgIGNvcHkuZGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBkZWYgaW4gY29weS5maWVsZHMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24oY29weS5maWVsZHMsIGRlZikpIHtcbiAgICAgICAgICBpZiAoY29weS5maWVsZHNbZGVmXS52YWx1ZSkge1xuICAgICAgICAgICAgYXdhaXQgY29weS5kYXRhLnB1c2goY29weS5maWVsZHNbZGVmXS52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IGNvcHkuZGF0YS5wdXNoKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgfVxuICB9XG5cbiAgYWRkUlhOdW1iZXIoKSB7XG4gICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgIGNvcHkuYnRuX2NvdW50Kys7XG4gICAgY29uc3QgcHJlc2NyaXB0aW9uID0gYHByZXNjcmlwdGlvbl8ke2NvcHkuYnRuX2NvdW50fWA7XG4gICAgY29uc3Qgb2JqID0ge307XG4gICAgb2JqW3ByZXNjcmlwdGlvbl0gPSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgYmxhbmtcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgIH0sXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBlcnJvcjogZmFsc2UsXG4gICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICB9LFxuICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgdmFsdWU6ICcnLFxuICAgIH07XG4gICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9ucy5wdXNoKG9iaik7XG4gICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgfVxuXG4gIGdldEdvb2dsZU1hcHNVUkwoKSB7XG4gICAgY29uc3QgdXJsID0gYCske3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc31cbiAgICAgICske3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc190d299XG4gICAgICArJHt0aGlzLnN0YXRlLmNpdHl9LFxuICAgICAgKyR7dGhpcy5zdGF0ZS5zdGF0ZX1cbiAgICAgICske3RoaXMuc3RhdGUuemlwfWA7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb24oY29vcmRfc3RyaW5nKSB7XG4gICAgaWYgKG5hdmlnYXRvciAmJiBuYXZpZ2F0b3IucGxhdGZvcm0pIHtcbiAgICAgIGlmICgobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ2lQaG9uZScpICE9IC0xKVxuICAgICAgICAgIHx8IChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignTWFjJykgIT0gLTEpXG4gICAgICAgICAgfHwgKG5hdmlnYXRvci5wbGF0Zm9ybS5pbmRleE9mKCdpUGFkJykgIT0gLTEpXG4gICAgICAgICAgfHwgKG5hdmlnYXRvci5wbGF0Zm9ybS5pbmRleE9mKCdpUG9kJykgIT0gLTEpKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKCdtYXBzOi8vP3E9JyArIGNvb3JkX3N0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cub3BlbignZ29vZ2xlLm5hdmlnYXRpb246cT0nICsgY29vcmRfc3RyaW5nICsgJyZtb2RlPWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsb2FkKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIHRhZzogdGhpcy5nZXRTdG9yZU51bWJlcigpLFxuICAgIH07XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBlbmRwb2ludDogJ3F1ZXJ5JyxcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgIH07XG4gICAgYXBpQ2FsbChvcHRpb25zKS50aGVuKCBhc3luYyAocmVzcCkgPT4ge1xuICAgICAgY29uc3QgciA9IEpTT04ucGFyc2UocmVzcC5kYXRhKTtcbiAgICAgIGNvbnN0IHBoYXJtX2Nvb3JkcyA9IFtyLmFkZHJlc3MxXG4gICAgICAgICsgJyAnXG4gICAgICAgICsgci5jaXR5XG4gICAgICAgICsgJyAnXG4gICAgICAgICsgci5zdGF0ZVxuICAgICAgICArICcgJ1xuICAgICAgICArIHIuemlwXTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzdG9yZV9uYW1lOiByLm5hbWUsXG4gICAgICAgIGxvZ286IHIubG9nbyxcbiAgICAgICAgc3RvcmVfYWRkcmVzczogci5hZGRyZXNzMSxcbiAgICAgICAgc3RvcmVfYWRkcmVzc190d286IHIuYWRkcmVzczIsXG4gICAgICAgIHBoYXJtYWN5X3Bob25lOiByLnBob25lLFxuICAgICAgICBwaGFybWFjeV9zbXM6IHIuc21zLFxuICAgICAgICBlbWFpbDogci5lbWFpbCxcbiAgICAgICAgd2Vic2l0ZTogci53ZWJzaXRlLFxuICAgICAgICB3ZWJfdmVyc2lvbjogci53ZWJfdmVyc2lvbixcbiAgICAgICAgY2l0eTogci5jaXR5LFxuICAgICAgICBzdGF0ZTogci5zdGF0ZSxcbiAgICAgICAgemlwOiByLnppcCxcbiAgICAgICAgZmFjZWJvb2tfbGluazogci5mYWNlYm9va19saW5rLFxuICAgICAgICBwaGFybWFjeV9ob3Vyczogci5zdG9yZV9ob3VycyxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBwaGFybV9jb29yZHM6IHBoYXJtX2Nvb3JkcyxcbiAgICAgIH0pO1xuICAgIH0pLmNhdGNoKCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3JzOiBnZXRFcnJvck1lc3NhZ2UoZXJyKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICBjb25zdCByZWZpbGwgPSAnPD94bWwgdmVyc2lvbj1cIjEuMFwiPz4nICsgbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0aGlzLmNvbnN0cnVjdFhNTERvY3VtZW50KCkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGVuZHBvaW50OiAnc3VibWl0JyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBkYXRhOiByZWZpbGwsXG4gICAgfTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIChyZXNwKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZVZpZXcoJ3N1Y2Nlc3Nfc3VibWl0Jyk7XG4gICAgfSkuY2F0Y2goIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiBnZXRFcnJvck1lc3NhZ2UoZXJyKSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCBicmVhZGNydW1icyA9ICcnO1xuICAgIGlmICh0aGlzLnN0YXRlLnZpZXcgIT09ICdtb2JpbGVfc2l0ZScpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5zdGF0ZS5wYWdlcy5maW5kKChwKSA9PiB7XG4gICAgICAgIHJldHVybiBwLnZpZXcgPT0gdGhpcy5zdGF0ZS52aWV3O1xuICAgICAgfSk7XG4gICAgICBicmVhZGNydW1icyA9IChcbiAgICAgICAgPEJyZWFkY3J1bWJzXG4gICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICdwYWRkaW5nJzogJzVweCcsXG4gICAgICAgICAgICAnJiAuTXVpVHlwb2dyYXBoeS1yb290JzogeyBjb2xvcjogdGhpcy5wcm9wcy50aGVtZU1vZGUgPT09ICdkYXJrJyA/ICcjQkRCREJEJyA6ICcjNDA0MDQwJyB9LFxuICAgICAgICAgICAgJyYgLk11aUJyZWFkY3J1bWJzLXNlcGFyYXRvcic6IHsgY29sb3I6IHRoaXMucHJvcHMudGhlbWVNb2RlID09PSAnZGFyaycgPyAnI0JEQkRCRCcgOiAnIzQwNDA0MCcgfSxcbiAgICAgICAgICAgICcmIC5NdWlMaW5rLXJvb3QnOiB7IGNvbG9yOiB0aGlzLnByb3BzLnRoZW1lTW9kZSA9PT0gJ2RhcmsnID8gJyM5MENBRjknIDogJyMxMDQ0NzMnIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICB1bmRlcmxpbmU9J2hvdmVyJ1xuICAgICAgICAgICAgY29sb3I9J2luaGVyaXQnXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnZpZXcgIT09ICdtb2JpbGVfc2l0ZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VWaWV3KCdtb2JpbGVfc2l0ZScpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+SG9tZTwvTGluaz5cbiAgICAgICAgICA8VHlwb2dyYXBoeSBjb2xvcj0ndGV4dC5wcmltYXJ5Jz57IGZvdW5kID8gZm91bmQubmFtZSA6ICdTdWNjZXNzZnVsIFN1Ym1pc3Npb24nIH08L1R5cG9ncmFwaHk+XG4gICAgICAgIDwvQnJlYWRjcnVtYnM+XG4gICAgICApO1xuICAgIH1cbiAgICBsZXQgYm9keSA9IChcbiAgICAgIDxMb2FkaW5nLz5cbiAgICApO1xuICAgIGlmICghdGhpcy5zdGF0ZS5sb2FkZWQpIHtcbiAgICAgIGJvZHkgPSAoXG4gICAgICAgIDxMb2FkaW5nLz5cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmVycm9ycykge1xuICAgICAgbGV0IGVycm9yID0gJyc7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ1BoYXJtYWN5IE5vdCBGb3VuZCAvIFN0b3JlIExpY2Vuc2Ugbm90IHZhbGlkJykge1xuICAgICAgICBlcnJvciA9ICdNaXNzaW5nIG9yIGludmFsaWQgc3RvcmUgdGFnIGluIHJlcXVlc3QnO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yID8gZXJyb3IgOiB0aGlzLnN0YXRlLmVycm9ycyxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5zdGF0ZS5zdG9yZV9uYW1lKSB7XG4gICAgICAgIHByb3BzLnJldHVyblRvID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IG51bGwgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBib2R5ID0gKFxuICAgICAgICBFcnJvcihwcm9wcylcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZS52aWV3KSB7XG4gICAgICAgIGNhc2UgJ21vYmlsZV9zaXRlJzpcbiAgICAgICAgICBib2R5ID0gKFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICBGb3Igc2NyZWVuIHJlYWRlciBhY2Nlc3NpYmlsaXR5LiBUaGlzIGhlYWRlciBpcyBoaWRkZW4gZm9yIG1vYmlsZSBhbmQgZGVza3RvcCB1c2Vycy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHlcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJoMVwiXG4gICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxcHgnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxcHgnLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJy0xcHgnLFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsaXA6ICdyZWN0KDAsIDAsIDAsIDApJyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMCcsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFBoYXJtYWN5IFNlcnZpY2VzIE1lbnVcbiAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8TGlzdFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nOiAndW5zZXQnIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnBhZ2VzLm1hcCgocCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5uZXJfYm94ID0gcC5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAudmlldyA9PSAnY2FsbF9waGFybWFjeScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGhvbmUgPSAndGVsOi8vKzEnICsgdGhpcy5zdGF0ZS5waGFybWFjeV9waG9uZS5yZXBsYWNlKC9bXitcXGRdL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfYm94ID0gPExpbmsgY29sb3I9J2JsYWNrJyB1bmRlcmxpbmU9J25vbmUnIGhyZWY9e3Bob25lfT57IHAubmFtZSB9PC9MaW5rPjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtIGRpc2FibGVQYWRkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7cC5uYW1lfS0ke2lkeH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICcwLjVyZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmdjb2xvcjogJyNkZGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjYjFhYmFiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoWydyZWZpbGxfcmVxdWVzdCcsICdob3Vyc19hbmRfZGlyZWN0aW9ucyddLmluY2x1ZGVzKHAudmlldykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldyhwLnZpZXcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocC52aWV3ID09ICdhZGRfY29udGFjdHMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGNvbnRlbnQsIGZpbGVuYW1lLCBjb250ZW50X3R5cGUgfSA9IHRoaXMuYWRkQ29udGFjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFRvRmlsZShjb250ZW50LCBmaWxlbmFtZSwgY29udGVudF90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAudmlldyA9PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkX3N0cmluZyA9IHRoaXMuZ2V0R29vZ2xlTWFwc1VSTCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXROYXZpZ2F0aW9uKGNvb3JkX3N0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMjUwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnsgcC5pY29uIH08L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleEdyb3c6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnsgaW5uZXJfYm94IH08L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L0xpc3Q+XG4gICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVmaWxsX3JlcXVlc3QnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgIHsgYnJlYWRjcnVtYnMgfVxuICAgICAgICAgICAgICA8UGFwZXIgdmFyaWFudD0nb3V0bGluZWQnPlxuICAgICAgICAgICAgICAgIDxmb3JtIGlkPSdyZWZpbGwtcmVxdWVzdCc+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MX0gc3g9e3sgcGFkZGluZzogJzIwcHgnIH19PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDQnIGNvbXBvbmVudD0naDEnPlxuICAgICAgICAgICAgICAgICAgICAgICAgV2ViIFJlZmlsbCBGb3JtXG4gICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5wcmVzY3JpcHRpb25zLm1hcCgocCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBrZXk9e2lkeH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17cFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0ucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aWR4ID09IDAgPyBwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0udGl0bGUgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0ub25DaGFuZ2UodmFsdWUsIGlkeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0OiAnNDRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMTQ1NThGJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9ucy5sZW5ndGggPD0gOSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFJYTnVtYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPkFkZDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbCBmdWxsV2lkdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0TGFiZWwgaWQ9XCJkZWxpdmVyeS1sYWJlbFwiPnsgdGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudGl0bGUgfTwvSW5wdXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbElkPSdkZWxpdmVyeS1sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5Lm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5kZWxpdmVyeS50eXBlLm9wdGlvbnMubWFwKChvLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIGtleT17YCR7by52YWx1ZX0tJHtpZHh9YH0gdmFsdWU9e28udmFsdWV9Pnsgby52YWx1ZSB9PC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1Db250cm9sIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbD57IHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC50aXRsZSB9PC9JbnB1dExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsSWQ9J3BpY2t1cC1zZWxlY3QtbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0ncGlja3VwLXNlbGVjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAub25DaGFuZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC50eXBlLm9wdGlvbnMubWFwKChvLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIGtleT17YCR7by52YWx1ZX0tJHtpZHh9YH0gdmFsdWU9e28udmFsdWV9Pnsgby52YWx1ZSB9PC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5Sb3dzPXszfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IHBhZGRpbmdUb3A6ICc1cHgnLCBiZ2NvbG9yOiAncmdiYSgwLDAsMCwuMDUnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz0gezR9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdzdWJtaXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J2xhcmdlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzE0NTU4RicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5zdGF0ZS5maWVsZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1Ym1pdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRzW2ZpZWxkXS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChBcnJheS5pc0FycmF5KGZpZWxkc1tmaWVsZF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWZpZWxkc1tmaWVsZF1bMF1bYHByZXNjcmlwdGlvbl8wYF0udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggWzEwLCAxMywgMTVdLmluY2x1ZGVzKHRoaXMuc3RhdGUud2ViX3ZlcnNpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBmaWVsZCA9PSAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZmllbGRzW2ZpZWxkXS52YWx1ZSA9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJtaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs0fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdyZXNldCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nbGFyZ2UnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjQUExNjE2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezR9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nY2FuY2VsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogJzQ0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLnByb3BzLnRoZW1lTW9kZSA9PT0gJ2RhcmsnID8gJyM5MENBRjknIDogJyMxNDU1OEYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdsYXJnZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0nb3V0bGluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldygnbW9iaWxlX3NpdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdWNjZXNzX3N1Ym1pdCc6XG4gICAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxDb250YWluZXIgbWF4V2lkdGg9J2xnJz5cbiAgICAgICAgICAgICAgeyBicmVhZGNydW1icyB9XG4gICAgICAgICAgICAgIDxQYXBlciB2YXJpYW50PSdvdXRsaW5lZCc+XG4gICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHlcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdoNidcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9XCJoMVwiXG4gICAgICAgICAgICAgICAgICAgICAgc3g9e3sgcGFkZGluZzogJzVweCcgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIEZpbGwgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSFcbiAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGF0aWVudDo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlICsgJyAnICsgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBob25lIE51bWJlcjo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RW1haWw6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RmF4IE51bWJlcjo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QcmVzY3JpcHRpb25zOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNjcmlwdGlvbkRhdGEoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGVsaXZlcnk6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuZGVsaXZlcnkudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QaWNrdXA6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+Q29tbWVudHM6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgc3g9e3sgcGFkZGluZzogJzVweCcgfX0+V291bGQgeW91IGxpa2UgdG8gc3VibWl0IGFub3RoZXIgZmlsbD88L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs2fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAnNXB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6ICc0NHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5wcm9wcy50aGVtZU1vZGUgPT09ICdkYXJrJyA/ICcjOTBDQUY5JyA6ICcjMTQ1NThGJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdsYXJnZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0nb3V0bGluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ21vYmlsZV9zaXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17Nn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICc1cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogJzQ0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMxNDU1OEYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nbGFyZ2UnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldygncmVmaWxsX3JlcXVlc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgWWVzXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdob3Vyc19hbmRfZGlyZWN0aW9ucyc6XG4gICAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzVweCcgfX0+XG4gICAgICAgICAgICAgIHsgYnJlYWRjcnVtYnMgfVxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiaDVcIiBjb21wb25lbnQ9XCJoMVwiPlN0b3JlIEhvdXJzPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW49XCJoNVwiIGNvbXBvbmVudD1cInBcIj57dGhpcy5zdGF0ZS5waGFybWFjeV9ob3Vyc1xuICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5waGFybWFjeV9ob3Vyc1xuICAgICAgICAgICAgICAgIDogJ05vIHN0b3JlIGhvdXJzIGF2YWlsYWJsZSd9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImg1XCIgY29tcG9uZW50PVwiaDJcIj5EaXJlY3Rpb25zPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiaDVcIiBjb21wb25lbnQ9XCJwXCIgc3g9e3sgbGluZUhlaWdodDogJzEuNScgfX0+e3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc308L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImg1XCJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ9XCJwXCJcbiAgICAgICAgICAgICAgICBzeD17eyBsaW5lSGVpZ2h0OiAnMS41JyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc190d299XG4gICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImg1XCIgY29tcG9uZW50PVwicFwiIHN4PXt7IGxpbmVIZWlnaHQ6ICcxLjUnIH19PlxuICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmNpdHl9LCB7dGhpcy5zdGF0ZS5zdGF0ZX0ge3RoaXMuc3RhdGUuemlwfVxuICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJoNVwiIGNvbXBvbmVudD1cInBcIiBzeD17eyBsaW5lSGVpZ2h0OiAnMS41JyB9fT57dGhpcy5zdGF0ZS5waG9uZV9udW1iZXJ9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkX3N0cmluZyA9IHRoaXMuZ2V0R29vZ2xlTWFwc1VSTCgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5nZXROYXZpZ2F0aW9uKGNvb3JkX3N0cmluZyk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLnByb3BzLnRoZW1lTW9kZSA9PT0gJ2RhcmsnID8gJyM5MENBRjknIDogJyMxMDQ0NzMnLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQnICsgKHRoaXMucHJvcHMudGhlbWVNb2RlID09PSAnZGFyaycgPyAnIzkwQ0FGOScgOiAnIzEwNDQ3MycpLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEdldCBEaXJlY3Rpb25zXG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuZmFjZWJvb2tfbGlua1xuICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgOiAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgPGJyLz5cbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuc3RhdGUuZmFjZWJvb2tfbGluaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkIGJsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBGYWNlYm9vayBMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgIDxNYXBib3hHTFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbj17bWFwYm94VG9rZW59XG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3Nlcz17dGhpcy5zdGF0ZS5waGFybV9jb29yZHN9XG4gICAgICAgICAgICAgICAgICAgIHpvb209ezE1fVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0aW9uPXsnZ2xvYmUnfVxuICAgICAgICAgICAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW49e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGFsbG93TmF2aWdhdGlvbj17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPEJveD5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGNvbXBvbmVudD1cImFcIlxuICAgICAgICAgIGhyZWY9XCIjbWFpbi1jb250ZW50XCJcbiAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMubWFpbkNvbnRlbnRGb2N1cy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgIHRoaXMubWFpbkNvbnRlbnRGb2N1cy5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgJ3Bvc2l0aW9uJzogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICdsZWZ0JzogJy0xMDAwMHB4JyxcbiAgICAgICAgICAgICd0b3AnOiAnYXV0bycsXG4gICAgICAgICAgICAnd2lkdGgnOiAnMXB4JyxcbiAgICAgICAgICAgICdoZWlnaHQnOiAnMXB4JyxcbiAgICAgICAgICAgICdvdmVyZmxvdyc6ICdoaWRkZW4nLFxuICAgICAgICAgICAgJ3pJbmRleCc6IDk5OTksXG4gICAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgICAgbGVmdDogJzEwcHgnLFxuICAgICAgICAgICAgICB0b3A6ICcxMHB4JyxcbiAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3NlY29uZGFyeS5tYWluJyxcbiAgICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcxMHB4IDIwcHgnLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6IDMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICBTa2lwIHRvIG1haW4gY29udGVudFxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPEFwcEJhciBwb3NpdGlvbj1cInN0YXRpY1wiPlxuICAgICAgICAgIDxUb29sYmFyPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUubG9nbyA/IChcbiAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXt0aGlzLnN0YXRlLmxvZ299XG4gICAgICAgICAgICAgICAgICAgIGFsdD17dGhpcy5zdGF0ZS5zdG9yZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW46ICc1cHgnLCBib3JkZXJSYWRpdXM6ICc1cHgnLCBoZWlnaHQ6ICc1cmVtJyB9fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+eyB0aGlzLnN0YXRlLnN0b3JlX25hbWUgfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9Ub29sYmFyPlxuICAgICAgICA8L0FwcEJhcj5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGNvbXBvbmVudD1cIm1haW5cIlxuICAgICAgICAgIGlkPVwibWFpbi1jb250ZW50XCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiUGhhcm1hY3kgTW9iaWxlIFNpdGVcIlxuICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgIHJlZj17dGhpcy5tYWluQ29udGVudEZvY3VzfVxuICAgICAgICA+XG5cbiAgICAgICAgICB7Ym9keX1cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0JveD5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1vYmlsZVNpdGU7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSGFzaFJvdXRlciwgUm91dGVzLCBSb3V0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IE1vYmlsZVNpdGUgZnJvbSAnLi9wYWdlcy9Nb2JpbGVTaXRlLmpzJztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IHsgQ3NzQmFzZWxpbmUgfSBmcm9tICdAbXVpL21hdGVyaWFsJztcblxuY2xhc3MgQXBwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgI2RhcmtNb2RlID0gbnVsbDtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGVycm9yczogbnVsbCxcbiAgICAgIHRoZW1lOiAnbGlnaHQnLFxuICAgIH07XG4gICAgdGhpcy50aGVtZUxpZ2h0ID0gY3JlYXRlVGhlbWUoe1xuICAgICAgcGFsZXR0ZToge1xuICAgICAgICBtb2RlOiAnbGlnaHQnLFxuICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgZGVmYXVsdDogJyNlZmVmZWYnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnRoZW1lRGFyayA9IGNyZWF0ZVRoZW1lKHtcbiAgICAgIHBhbGV0dGU6IHtcbiAgICAgICAgbW9kZTogJ2RhcmsnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZVRoZW1lID0gdGhpcy51cGRhdGVUaGVtZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucHJlZmVyc0RhcmtNb2RlID0gdGhpcy5wcmVmZXJzRGFya01vZGUuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMucHJlZmVyc0RhcmtNb2RlKCk7XG4gIH1cblxuICBhc3luYyBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBpZiAodGhpcy4jZGFya01vZGUpIHtcbiAgICAgIHRoaXMuI2RhcmtNb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMudXBkYXRlVGhlbWUpO1xuICAgICAgdGhpcy4jZGFya01vZGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByZWZlcnNEYXJrTW9kZSgpIHtcbiAgICB0aGlzLnVwZGF0ZVRoZW1lKCk7XG4gICAgdGhpcy4jZGFya01vZGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuICAgIHRoaXMuI2RhcmtNb2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMudXBkYXRlVGhlbWUpO1xuICB9XG5cbiAgdXBkYXRlVGhlbWUoZSA9IG51bGwpIHtcbiAgICBpZiAoIWUpIHtcbiAgICAgIGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuICAgIH1cbiAgICBjb25zdCB0aGVtZSA9IGUubWF0Y2hlcyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHRoZW1lIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhpcy5zdGF0ZS50aGVtZSA9PT0gJ2RhcmsnID8gdGhpcy50aGVtZURhcmsgOiB0aGlzLnRoZW1lTGlnaHR9PlxuICAgICAgICA8Q3NzQmFzZWxpbmUgLz5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8SGFzaFJvdXRlcj5cbiAgICAgICAgICAgIDxSb3V0ZXM+XG4gICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPScvJyBlbGVtZW50PXs8TW9iaWxlU2l0ZSB0aGVtZU1vZGU9e3RoaXMuc3RhdGUudGhlbWV9Lz59IC8+XG4gICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPSdtb2JpbGVzaXRlLycgZWxlbWVudD17PE1vYmlsZVNpdGUgdGhlbWVNb2RlPXt0aGlzLnN0YXRlLnRoZW1lfS8+fSAvPlxuICAgICAgICAgICAgICA8Um91dGUgcGF0aD0nbS86dGFnJyBlbGVtZW50PXs8TW9iaWxlU2l0ZSB0aGVtZU1vZGU9e3RoaXMuc3RhdGUudGhlbWV9IC8+fSAvPlxuICAgICAgICAgICAgPC9Sb3V0ZXM+XG4gICAgICAgICAgPC9IYXNoUm91dGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcDtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwJztcblxuY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpO1xuY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QoY29udGFpbmVyKTtcbnJvb3QucmVuZGVyKDxBcHAgLz4pO1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCIvLyBubyBiYXNlVVJJXG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0NzkyOiAwXG59O1xuXG4vLyBubyBjaHVuayBvbiBkZW1hbmQgbG9hZGluZ1xuXG4vLyBubyBwcmVmZXRjaGluZ1xuXG4vLyBubyBwcmVsb2FkZWRcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdFxuXG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8uaiA9IChjaHVua0lkKSA9PiAoaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID09PSAwKTtcblxuLy8gaW5zdGFsbCBhIEpTT05QIGNhbGxiYWNrIGZvciBjaHVuayBsb2FkaW5nXG52YXIgd2VicGFja0pzb25wQ2FsbGJhY2sgPSAocGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24sIGRhdGEpID0+IHtcblx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcblx0Ly8gYWRkIFwibW9yZU1vZHVsZXNcIiB0byB0aGUgbW9kdWxlcyBvYmplY3QsXG5cdC8vIHRoZW4gZmxhZyBhbGwgXCJjaHVua0lkc1wiIGFzIGxvYWRlZCBhbmQgZmlyZSBjYWxsYmFja1xuXHR2YXIgbW9kdWxlSWQsIGNodW5rSWQsIGkgPSAwO1xuXHRpZihjaHVua0lkcy5zb21lKChpZCkgPT4gKGluc3RhbGxlZENodW5rc1tpZF0gIT09IDApKSkge1xuXHRcdGZvcihtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuXHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYocnVudGltZSkgdmFyIHJlc3VsdCA9IHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdH1cblx0aWYocGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24pIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xuXHRmb3IoO2kgPCBjaHVua0lkcy5sZW5ndGg7IGkrKykge1xuXHRcdGNodW5rSWQgPSBjaHVua0lkc1tpXTtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSAmJiBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcblx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSgpO1xuXHRcdH1cblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAwO1xuXHR9XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLk8ocmVzdWx0KTtcbn1cblxudmFyIGNodW5rTG9hZGluZ0dsb2JhbCA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtzcnNyZmxfcmVhY3RcIl0gPSBzZWxmW1wid2VicGFja0NodW5rc3JzcmZsX3JlYWN0XCJdIHx8IFtdO1xuY2h1bmtMb2FkaW5nR2xvYmFsLmZvckVhY2god2VicGFja0pzb25wQ2FsbGJhY2suYmluZChudWxsLCAwKSk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpKTsiLCIvLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8vIFRoaXMgZW50cnkgbW9kdWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8odW5kZWZpbmVkLCBbNTAwLDY4NSw4NDIsNjE2LDk1LDQ5NSw2NzcsODU3LDQ1Miw4MjgsNTE2XSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oOTA0NykpKVxuX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyhfX3dlYnBhY2tfZXhwb3J0c19fKTtcbiJdLCJuYW1lcyI6WyJkZWZlcnJlZCIsImxlYWZQcm90b3R5cGVzIiwiZ2V0UHJvdG8iLCJ2YWxpZGF0ZVBob25lIiwidmFsdWUiLCJjb3B5Iiwia2V5IiwiZGlnaXRzIiwicmVwbGFjZSIsImxlbmd0aCIsImZpZWxkcyIsImNvbmNhdCIsInN1YnN0cmluZyIsInRlc3QiLCJlcnJvciIsImZlZWRiYWNrIiwic3RyaW5nIiwibnVtYmVyIiwiY29uc29sZSIsImxvZyIsIl90eXBlb2YiLCJmbGFnIiwiemlwIiwic2xpY2UiLCJjZW50cmFsX29mZmljZSIsInN0YXJ0c1dpdGgiLCJjaGVja1N0YXJ0c1dpdGhPbmUiLCJNYXBib3hHTCIsIl9Db21wb25lbnQiLCJfaW5oZXJpdHMiLCJfc3VwZXIiLCJwcm9wcyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImNhbGwiLCJpbnN0cnVjdGlvbnNSZWYiLCJSZWFjdCIsIm1hcFJlZiIsInN0YXRlIiwidmlldyIsIm1hcmtlcnMiLCJpbml0TWFwIiwiYmluZCIsImdlb2NvZGVNYXJrZXJzIiwiZ2V0RGlyZWN0aW9ucyIsIl90aGlzMiIsInJlc3VsdHMiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJ0aGlzIiwiYWNjZXNzVG9rZW4iLCJfc3RlcCIsImNudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWRkcmVzc2VzIiwicyIsIm4iLCJkb25lIiwiYWRkcmVzcyIsInVybCIsImVuY29kZVVSSUNvbXBvbmVudCIsInRvU3RyaW5nIiwid2luZG93IiwiZmV0Y2giLCJ0aGVuIiwicmVzcCIsImpzb24iLCJkYXRhIiwicHVzaCIsInNldFN0YXRlIiwiZSIsImVyciIsImYiLCJfdGhpczMiLCJmcm9tQ29vcmRpbmF0ZXMiLCJqb2luIiwidCIsInRvQ29vcmRpbmF0ZXMiLCJiYXNlVXJsIiwiZGlyZWN0aW9ucyIsInN0YWNrIiwiX3RoaXM0IiwibWFwYm94Z2wiLCJvcHRpb25zIiwiZ2VvbG9jYXRlIiwiZnVsbHNjcmVlbiIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJpZCIsImF0dHJpYnV0aW9uQ29udHJvbCIsInN0eWxlIiwiY2VudGVyIiwiZmVhdHVyZXMiLCJ6b29tIiwicHJvamVjdGlvbiIsIm1hcCIsImdlb0xvY2F0ZSIsInBvc2l0aW9uT3B0aW9ucyIsImVuYWJsZUhpZ2hBY2N1cmFjeSIsInNob3dVc2VyTG9jYXRpb24iLCJ0cmFja1VzZXJMb2NhdGlvbiIsInNob3dVc2VySGVhZGluZyIsImFkZENvbnRyb2wiLCJhbGxvd0Z1bGxTY3JlZW4iLCJhbGxvd05hdmlnYXRpb24iLCJlbCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsInNldEF0dHJpYnV0ZSIsImlubmVyVGV4dCIsImxvY2F0aW9uTmFtZSIsInBsYWNlX25hbWUiLCJtIiwic2V0TG5nTGF0IiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsInNldFBvcHVwIiwic2V0SFRNTCIsIm9uIiwic2V0Rm9nIiwidHJpZ2dlciIsIl9yb3V0ZSRsZWdzJCIsInJvdXRlIiwicm91dGVzIiwiZ2VvanNvbiIsInR5cGUiLCJwcm9wZXJ0aWVzIiwiaW5uZXJIVE1MIiwic3RlcHMiLCJsZWdzIiwic3RlcCIsIm1hbmV1dmVyIiwiaW5zdHJ1Y3Rpb24iLCJkdXJhdGlvbiIsIk1hdGgiLCJmbG9vciIsImdldFNvdXJjZSIsInNldERhdGEiLCJhZGRMYXllciIsInNvdXJjZSIsImxheW91dCIsInBhaW50IiwiX2kiLCJfbWFya2VycyIsImFkZFRvIiwiX3RoaXM1IiwiaGVhZCIsImFwcGVuZENoaWxkIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwiX3RoaXM2IiwiY29tcG9uZW50IiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiaGVpZ2h0IiwibWluSGVpZ2h0Iiwib25DbGljayIsImV2dCIsInJlZiIsIm1heEhlaWdodCIsIm92ZXJmbG93Iiwicm9sZSIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImlzUmVxdWlyZWQiLCJ0b0FkZHJlc3MiLCJvcHRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb250ZXh0IiwicmVzcG9uc2VUeXBlIiwibG9jYXRpb24iLCJob3N0bmFtZSIsImhlYWRlcnMiLCJheGlvcyIsIm1ldGhvZCIsInRvTG93ZXJDYXNlIiwiZW5kcG9pbnQiLCJyZXNwb25zZSIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5jbHVkZXMiLCJFcnJvciIsIkNvbnRhaW5lciIsIm1heFdpZHRoIiwiR3JpZCIsImRpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJpdGVtIiwic3JjIiwiaXNNZXNzYWdlIiwiVHlwb2dyYXBoeSIsInZhcmlhbnQiLCJyZXR1cm5UbyIsIkJ1dHRvbiIsIndpZHRoIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcm9wVHlwZXMiLCJmdW5jIiwiYm9vbCIsIl9SZWFjdCRDb21wb25lbnQiLCJMb2FkaW5nIiwiYm9keSIsIlBhcGVyIiwicGFkZGluZyIsIm1hcmdpblRvcCIsInhzIiwiQm94IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJDaXJjdWxhclByb2dyZXNzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiYXJnIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl9fYXdhaXQiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJpbmZvIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJ1bmRlZmluZWQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIkFycmF5IiwiZnJvbSIsImFyciIsImxlbiIsImFycjIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfc2V0UHJvdG90eXBlT2YiLCJSZWZlcmVuY2VFcnJvciIsIl9nZXRQcm90b3R5cGVPZiIsIm9iaiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiX3RvUHJpbWl0aXZlIiwiTW9iaWxlU2l0ZSIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsIl9nZXREYXRhIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0Iiwic2hhbSIsIlByb3h5IiwiQm9vbGVhbiIsInZhbHVlT2YiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwicmVzdWx0IiwiU3VwZXIiLCJOZXdUYXJnZXQiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsImluc3RhbmNlIiwiZXJyb3JzIiwibG9hZGVkIiwiZ2V0U3RvcmVOdW1iZXIiLCJoYXNoIiwiZ2V0SGFzaCIsInN0b3JlX25hbWUiLCJsb2dvIiwic3RvcmVfYWRkcmVzcyIsInN0b3JlX2FkZHJlc3NfdHdvIiwicGhhcm1hY3lfcGhvbmUiLCJwaGFybWFjeV9zbXMiLCJjaXR5IiwiZW1haWwiLCJ3ZWJzaXRlIiwid2ViX3ZlcnNpb24iLCJmYWNlYm9va19saW5rIiwicGhhcm1hY3lfaG91cnMiLCJidG5fY291bnQiLCJwaGFybV9jb29yZHMiLCJ2YWxpZCIsImVycm9yTWVzc2FnZXMiLCJvcGVuIiwicGFnZXMiLCJpY29uIiwiTWVkaWNhdGlvbkljb24iLCJDb250YWN0c0ljb24iLCJMb2NhbFRheGlJY29uIiwiaW5uZXJXaWR0aCIsImlubmVySGVpZ2h0IiwiUGhvbmVJblRhbGtJY29uIiwiTmF2aWdhdGlvbkljb24iLCJmaXJzdF9uYW1lIiwidGl0bGUiLCJ0eXBlbmFtZSIsInJlcXVpcmVkIiwib25DaGFuZ2UiLCJmdWxsd2lkdGgiLCJsYXN0X25hbWUiLCJwaG9uZV9udW1iZXIiLCJmYXhfbnVtYmVyIiwicHJlc2NyaXB0aW9ucyIsInByZXNjcmlwdGlvbl8wIiwiaWR4IiwiZGVsaXZlcnkiLCJkaXNhYmxlZCIsIk5hbWUiLCJwaWNrdXAiLCJjb21tZW50cyIsIm1haW5Db250ZW50Rm9jdXMiLCJjaGFuZ2VWaWV3IiwiY2xlYXJGaWVsZHMiLCJnZXRGdWxsQXV0aCIsImdldFJ4TnVtYmVyIiwiYWRkQ29udGFjdCIsImVudGl0eSIsImNvbnN0cnVjdFhNTERvY3VtZW50Iiwic3VibWl0Rm9ybSIsImlzTW9iaWxlIiwiYWRkUlhOdW1iZXIiLCJnZXREYXRhIiwibG9hZCIsImdldEdvb2dsZU1hcHNVUkwiLCJkb3dubG9hZFRvRmlsZSIsImdldE5hdmlnYXRpb24iLCJwcmVzY3JpcHRpb25EYXRhIiwic2VhcmNoIiwiYXJ5IiwicGF0aG5hbWUiLCJzcGxpdCIsInByZXNjcmlwdGlvbl92YWx1ZXMiLCJjb250ZW50IiwiZmlsZW5hbWUiLCJjb250ZW50X3R5cGUiLCJibG9iIiwiQmxvYiIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImRvd25sb2FkIiwiaHJlZiIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJhZGRyZXNzMSIsImFkZHJlc3MyIiwicGhvbmUiLCJzbXMiLCJ0cmltIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiX2xlbiIsIl9rZXkiLCJkb2MiLCJlbnRpdHlOYW1lIiwiZXh0cmEiLCJub2RlIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsImlzQXJyYXkiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiX2UyIiwiY3JlYXRlVGV4dE5vZGUiLCJpbXBsZW1lbnRhdGlvbiIsImNyZWF0ZURvY3VtZW50Iiwicm9vdCIsImRvY3VtZW50RWxlbWVudCIsInJ4IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwidG9tb3Jyb3ciLCJnZXRUaW1lIiwiZGF0ZSIsImhvdXIiLCJyeE51bWJlcnMiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJpdGVyIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9jYWxsZWUiLCJkZWYiLCJfY29udGV4dCIsInQwIiwidDEiLCJoYXNPd24iLCJ0MiIsImNvb3JkX3N0cmluZyIsInBsYXRmb3JtIiwiaW5kZXhPZiIsInRhZyIsImFwaUNhbGwiLCJfcmVmIiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJwYXJzZSIsInN0b3JlX2hvdXJzIiwiX3giLCJnZXRFcnJvck1lc3NhZ2UiLCJyZWZpbGwiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJfdGhpczciLCJicmVhZGNydW1icyIsImZvdW5kIiwiZmluZCIsIkJyZWFkY3J1bWJzIiwic3giLCJjb2xvciIsInRoZW1lTW9kZSIsIkxpbmsiLCJ1bmRlcmxpbmUiLCJwb3NpdGlvbiIsIm1hcmdpbiIsImNsaXAiLCJib3JkZXIiLCJMaXN0IiwiaW5uZXJfYm94IiwiTGlzdEl0ZW0iLCJkaXNhYmxlUGFkZGluZyIsIkxpc3RJdGVtQnV0dG9uIiwiZ2FwIiwidGV4dEFsaWduIiwiYmdjb2xvciIsImJvcmRlckJvdHRvbSIsImJvcmRlckNvbG9yIiwiX3RoaXM3JGFkZENvbnRhY3QiLCJmbGV4R3JvdyIsInNwYWNpbmciLCJUZXh0RmllbGQiLCJmdWxsV2lkdGgiLCJsYWJlbCIsImhlbHBlclRleHQiLCJzaXplIiwiYmFja2dyb3VuZENvbG9yIiwiRm9ybUNvbnRyb2wiLCJJbnB1dExhYmVsIiwiU2VsZWN0IiwibGFiZWxJZCIsIk1lbnVJdGVtIiwibXVsdGlsaW5lIiwibWluUm93cyIsInN1Ym1pdCIsImZpZWxkIiwidmFyaWFuIiwibGluZUhlaWdodCIsImZvbnRTaXplIiwiY3Vyc29yIiwiZm9jdXMiLCJsZWZ0IiwidG9wIiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiQXBwQmFyIiwiVG9vbGJhciIsImFsdCIsInRhYkluZGV4IiwiX2NsYXNzUHJpdmF0ZUZpZWxkU2V0IiwicmVjZWl2ZXIiLCJwcml2YXRlTWFwIiwic2V0IiwiX2NsYXNzQXBwbHlEZXNjcmlwdG9yU2V0IiwiX2NsYXNzRXh0cmFjdEZpZWxkRGVzY3JpcHRvciIsIl9jbGFzc1ByaXZhdGVGaWVsZEdldCIsImdldCIsIl9jbGFzc0FwcGx5RGVzY3JpcHRvckdldCIsImFjdGlvbiIsImhhcyIsIl9kYXJrTW9kZSIsIldlYWtNYXAiLCJBcHAiLCJfY29tcG9uZW50V2lsbFVubW91bnQiLCJfY29tcG9uZW50RGlkTW91bnQiLCJwcml2YXRlQ29sbGVjdGlvbiIsIl9jaGVja1ByaXZhdGVSZWRlY2xhcmF0aW9uIiwidGhlbWUiLCJ0aGVtZUxpZ2h0IiwiY3JlYXRlVGhlbWUiLCJwYWxldHRlIiwibW9kZSIsImJhY2tncm91bmQiLCJkZWZhdWx0IiwidGhlbWVEYXJrIiwidXBkYXRlVGhlbWUiLCJwcmVmZXJzRGFya01vZGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibWF0Y2hNZWRpYSIsImFkZEV2ZW50TGlzdGVuZXIiLCJtYXRjaGVzIiwiVGhlbWVQcm92aWRlciIsIkNzc0Jhc2VsaW5lIiwiSGFzaFJvdXRlciIsIlJvdXRlcyIsIlJvdXRlIiwicGF0aCIsImVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNyZWF0ZVJvb3QiLCJyZW5kZXIiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJleHBvcnRzIiwibW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIk8iLCJjaHVua0lkcyIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJmdWxmaWxsZWQiLCJqIiwiZXZlcnkiLCJzcGxpY2UiLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwibnMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiZGVmaW5pdGlvbiIsInByb3AiLCJpbnN0YWxsZWRDaHVua3MiLCJjaHVua0lkIiwid2VicGFja0pzb25wQ2FsbGJhY2siLCJwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInNvbWUiLCJjaHVua0xvYWRpbmdHbG9iYWwiLCJfX3dlYnBhY2tfZXhwb3J0c19fIl0sInNvdXJjZVJvb3QiOiIifQ==