Files
global-game-jam-2021/client/static/assets/bundle.js

3 lines
2.7 MiB

/*! For license information please see bundle.js.LICENSE.txt */
(()=>{var e={10:e=>{function t(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=t,t.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,this.max)},t.prototype.reset=function(){this.attempts=0},t.prototype.setMin=function(e){this.ms=e},t.prototype.setMax=function(e){this.max=e},t.prototype.setJitter=function(e){this.jitter=e}},704:(e,t)=>{!function(e){"use strict";t.encode=function(t){var r,i=new Uint8Array(t),n=i.length,o="";for(r=0;r<n;r+=3)o+=e[i[r]>>2],o+=e[(3&i[r])<<4|i[r+1]>>4],o+=e[(15&i[r+1])<<2|i[r+2]>>6],o+=e[63&i[r+2]];return n%3==2?o=o.substring(0,o.length-1)+"=":n%3==1&&(o=o.substring(0,o.length-2)+"=="),o},t.decode=function(t){var r,i,n,o,a,s=.75*t.length,l=t.length,u=0;"="===t[t.length-1]&&(s--,"="===t[t.length-2]&&s--);var h=new ArrayBuffer(s),c=new Uint8Array(h);for(r=0;r<l;r+=4)i=e.indexOf(t[r]),n=e.indexOf(t[r+1]),o=e.indexOf(t[r+2]),a=e.indexOf(t[r+3]),c[u++]=i<<2|n>>4,c[u++]=(15&n)<<4|o>>2,c[u++]=(3&o)<<6|63&a;return h}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")},767:e=>{function t(e){if(e)return function(e){for(var r in t.prototype)e[r]=t.prototype[r];return e}(e)}e.exports=t,t.prototype.on=t.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},t.prototype.once=function(e,t){function r(){this.off(e,r),t.apply(this,arguments)}return r.fn=t,this.on(e,r),this},t.prototype.off=t.prototype.removeListener=t.prototype.removeAllListeners=t.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r,i=this._callbacks["$"+e];if(!i)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var n=0;n<i.length;n++)if((r=i[n])===t||r.fn===t){i.splice(n,1);break}return 0===i.length&&delete this._callbacks["$"+e],this},t.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),r=this._callbacks["$"+e],i=1;i<arguments.length;i++)t[i-1]=arguments[i];if(r){i=0;for(var n=(r=r.slice(0)).length;i<n;++i)r[i].apply(this,t)}return this},t.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},t.prototype.hasListeners=function(e){return!!this.listeners(e).length}},227:(e,t,r)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let i=0,n=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(i++,"%c"===e&&(n=i))})),t.splice(n,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=r(447)(t);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},447:(e,t,r)=>{e.exports=function(e){function t(e){let r,n=null;function o(...e){if(!o.enabled)return;const i=o,n=Number(new Date),a=n-(r||n);i.diff=a,i.prev=r,i.curr=n,r=n,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,n)=>{if("%%"===r)return"%";s++;const o=t.formatters[n];if("function"==typeof o){const t=e[s];r=o.call(i,t),e.splice(s,1),s--}return r})),t.formatArgs.call(i,e),(i.log||t.log).apply(i,e)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=i,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===n?t.enabled(e):n,set:e=>{n=e}}),"function"==typeof t.init&&t.init(o),o}function i(e,r){const i=t(this.namespace+(void 0===r?":":r)+e);return i.log=this.log,i}function n(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(n),...t.skips.map(n).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.names=[],t.skips=[];const i=("string"==typeof e?e:"").split(/[\s,]+/),n=i.length;for(r=0;r<n;r++)i[r]&&("-"===(e=i[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let r,i;for(r=0,i=t.skips.length;r<i;r++)if(t.skips[r].test(e))return!1;for(r=0,i=t.names.length;r<i;r++)if(t.names[r].test(e))return!0;return!1},t.humanize=r(824),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((r=>{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t.colors[Math.abs(r)%t.colors.length]},t.enable(t.load()),t}},549:e=>{e.exports="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()},983:(e,t,r)=>{const i=r(192);e.exports=(e,t)=>new i(e,t),e.exports.Socket=i,e.exports.protocol=i.protocol,e.exports.Transport=r(496),e.exports.transports=r(352),e.exports.parser=r(743)},192:(e,t,r)=>{const i=r(352),n=r(767),o=r(227)("engine.io-client:socket"),a=r(743),s=r(187),l=r(830);class u extends n{constructor(e,t={}){super(),e&&"object"==typeof e&&(t=e,e=null),e?(e=s(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=s(t.host).host),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?443:80),this.transports=t.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,jsonp:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{}},t),this.opts.path=this.opts.path.replace(/\/$/,"")+"/","string"==typeof this.opts.query&&(this.opts.query=l.decode(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,this.open()}createTransport(e){o('creating transport "%s"',e);const t=function(e){const t={};for(let r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}(this.opts.query);t.EIO=a.protocol,t.transport=e,this.id&&(t.sid=this.id);const r=Object.assign({},this.opts.transportOptions[e],this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return o("options: %j",r),new i[e](r)}open(){let e;if(this.opts.rememberUpgrade&&u.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length){const e=this;return void setTimeout((function(){e.emit("error","No transports available")}),0)}e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return o("error while creating transport: %s",e),this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}setTransport(e){o("setting transport %s",e.name);const t=this;this.transport&&(o("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",(function(){t.onDrain()})).on("packet",(function(e){t.onPacket(e)})).on("error",(function(e){t.onError(e)})).on("close",(function(){t.onClose("transport close")}))}probe(e){o('probing transport "%s"',e);let t=this.createTransport(e,{probe:1}),r=!1;const i=this;function n(){if(i.onlyBinaryUpgrades){const e=!this.supportsBinary&&i.transport.supportsBinary;r=r||e}r||(o('probe transport "%s" opened',e),t.send([{type:"ping",data:"probe"}]),t.once("packet",(function(n){if(!r)if("pong"===n.type&&"probe"===n.data){if(o('probe transport "%s" pong',e),i.upgrading=!0,i.emit("upgrading",t),!t)return;u.priorWebsocketSuccess="websocket"===t.name,o('pausing current transport "%s"',i.transport.name),i.transport.pause((function(){r||"closed"!==i.readyState&&(o("changing transport and sending upgrade packet"),d(),i.setTransport(t),t.send([{type:"upgrade"}]),i.emit("upgrade",t),t=null,i.upgrading=!1,i.flush())}))}else{o('probe transport "%s" failed',e);const r=new Error("probe error");r.transport=t.name,i.emit("upgradeError",r)}})))}function a(){r||(r=!0,d(),t.close(),t=null)}function s(r){const n=new Error("probe error: "+r);n.transport=t.name,a(),o('probe transport "%s" failed because of error: %s',e,r),i.emit("upgradeError",n)}function l(){s("transport closed")}function h(){s("socket closed")}function c(e){t&&e.name!==t.name&&(o('"%s" works - aborting "%s"',e.name,t.name),a())}function d(){t.removeListener("open",n),t.removeListener("error",s),t.removeListener("close",l),i.removeListener("close",h),i.removeListener("upgrading",c)}u.priorWebsocketSuccess=!1,t.once("open",n),t.once("error",s),t.once("close",l),this.once("close",h),this.once("upgrading",c),t.open()}onOpen(){if(o("socket open"),this.readyState="open",u.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause){o("starting upgrade probes");let e=0;const t=this.upgrades.length;for(;e<t;e++)this.probe(this.upgrades[e])}}onPacket(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(o('socket receive: type "%s", data "%s"',e.type,e.data),this.emit("packet",e),this.emit("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this.resetPingTimeout(),this.sendPacket("pong"),this.emit("pong");break;case"error":const t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emit("data",e.data),this.emit("message",e.data)}else o('packet received with socket readyState "%s"',this.readyState)}onHandshake(e){this.emit("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}resetPingTimeout(){clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=setTimeout((()=>{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout)}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()}flush(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(o("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))}write(e,t,r){return this.sendPacket("message",e,t,r),this}send(e,t,r){return this.sendPacket("message",e,t,r),this}sendPacket(e,t,r,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof r&&(i=r,r=null),"closing"===this.readyState||"closed"===this.readyState)return;(r=r||{}).compress=!1!==r.compress;const n={type:e,data:t,options:r};this.emit("packetCreate",n),this.writeBuffer.push(n),i&&this.once("flush",i),this.flush()}close(){const e=this;function t(){e.onClose("forced close"),o("socket closing - telling transport to close"),e.transport.close()}function r(){e.removeListener("upgrade",r),e.removeListener("upgradeError",r),t()}function i(){e.once("upgrade",r),e.once("upgradeError",r)}return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(function(){this.upgrading?i():t()})):this.upgrading?i():t()),this}onError(e){o("socket error %j",e),u.priorWebsocketSuccess=!1,this.emit("error",e),this.onClose("transport error",e)}onClose(e,t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){o('socket close with reason: "%s"',e);const r=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",e,t),r.writeBuffer=[],r.prevBufferLen=0}}filterUpgrades(e){const t=[];let r=0;const i=e.length;for(;r<i;r++)~this.transports.indexOf(e[r])&&t.push(e[r]);return t}}u.priorWebsocketSuccess=!1,u.protocol=a.protocol,e.exports=u},496:(e,t,r)=>{const i=r(743),n=r(767);e.exports=class extends n{constructor(e){super(),this.opts=e,this.query=e.query,this.readyState="",this.socket=e.socket}onError(e,t){const r=new Error(e);return r.type="TransportError",r.description=t,this.emit("error",r),this}open(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){if("open"!==this.readyState)throw new Error("Transport not open");this.write(e)}onOpen(){this.readyState="open",this.writable=!0,this.emit("open")}onData(e){const t=i.decodePacket(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){this.emit("packet",e)}onClose(){this.readyState="closed",this.emit("close")}}},352:(e,t,r)=>{const i=r(777),n=r(416),o=r(785),a=r(442);t.polling=function(e){let t,r=!1,a=!1;const s=!1!==e.jsonp;if("undefined"!=typeof location){const t="https:"===location.protocol;let i=location.port;i||(i=t?443:80),r=e.hostname!==location.hostname||i!==e.port,a=e.secure!==t}if(e.xdomain=r,e.xscheme=a,t=new i(e),"open"in t&&!e.forceJSONP)return new n(e);if(!s)throw new Error("JSONP disabled");return new o(e)},t.websocket=a},785:(e,t,r)=>{const i=r(15),n=r(549),o=/\n/g,a=/\\n/g;let s;function l(){}e.exports=class extends i{constructor(e){super(e),this.query=this.query||{},s||(s=n.___eio=n.___eio||[]),this.index=s.length;const t=this;s.push((function(e){t.onData(e)})),this.query.j=this.index,"function"==typeof addEventListener&&addEventListener("beforeunload",(function(){t.script&&(t.script.onerror=l)}),!1)}get supportsBinary(){return!1}doClose(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),super.doClose()}doPoll(){const e=this,t=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),t.async=!0,t.src=this.uri(),t.onerror=function(t){e.onError("jsonp poll error",t)};const r=document.getElementsByTagName("script")[0];r?r.parentNode.insertBefore(t,r):(document.head||document.body).appendChild(t),this.script=t,"undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout((function(){const e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)}),100)}doWrite(e,t){const r=this;let i;if(!this.form){const e=document.createElement("form"),t=document.createElement("textarea"),r=this.iframeId="eio_iframe_"+this.index;e.className="socketio",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.target=r,e.method="POST",e.setAttribute("accept-charset","utf-8"),t.name="d",e.appendChild(t),document.body.appendChild(e),this.form=e,this.area=t}function n(){s(),t()}function s(){if(r.iframe)try{r.form.removeChild(r.iframe)}catch(e){r.onError("jsonp polling iframe removal error",e)}try{const e='<iframe src="javascript:0" name="'+r.iframeId+'">';i=document.createElement(e)}catch(e){i=document.createElement("iframe"),i.name=r.iframeId,i.src="javascript:0"}i.id=r.iframeId,r.form.appendChild(i),r.iframe=i}this.form.action=this.uri(),s(),e=e.replace(a,"\\\n"),this.area.value=e.replace(o,"\\n");try{this.form.submit()}catch(e){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===r.iframe.readyState&&n()}:this.iframe.onload=n}}},416:(e,t,r)=>{const i=r(777),n=r(15),o=r(767),{pick:a}=r(839),s=r(549),l=r(227)("engine.io-client:polling-xhr");function u(){}const h=null!=new i({xdomain:!1}).responseType;class c extends o{constructor(e,t){super(),this.opts=t,this.method=t.method||"GET",this.uri=e,this.async=!1!==t.async,this.data=void 0!==t.data?t.data:null,this.create()}create(){const e=a(this.opts,"agent","enablesXDR","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized");e.xdomain=!!this.opts.xd,e.xscheme=!!this.opts.xs;const t=this.xhr=new i(e),r=this;try{l("xhr open %s: %s",this.method,this.uri),t.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders){t.setDisableHeaderCheck&&t.setDisableHeaderCheck(!0);for(let e in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(e)&&t.setRequestHeader(e,this.opts.extraHeaders[e])}}catch(e){}if("POST"===this.method)try{t.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{t.setRequestHeader("Accept","*/*")}catch(e){}"withCredentials"in t&&(t.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(t.timeout=this.opts.requestTimeout),this.hasXDR()?(t.onload=function(){r.onLoad()},t.onerror=function(){r.onError(t.responseText)}):t.onreadystatechange=function(){4===t.readyState&&(200===t.status||1223===t.status?r.onLoad():setTimeout((function(){r.onError("number"==typeof t.status?t.status:0)}),0))},l("xhr data %s",this.data),t.send(this.data)}catch(e){return void setTimeout((function(){r.onError(e)}),0)}"undefined"!=typeof document&&(this.index=c.requestsCount++,c.requests[this.index]=this)}onSuccess(){this.emit("success"),this.cleanup()}onData(e){this.emit("data",e),this.onSuccess()}onError(e){this.emit("error",e),this.cleanup(!0)}cleanup(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=u:this.xhr.onreadystatechange=u,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete c.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;null!==e&&this.onData(e)}hasXDR(){return"undefined"!=typeof XDomainRequest&&!this.xs&&this.enablesXDR}abort(){this.cleanup()}}function d(){for(let e in c.requests)c.requests.hasOwnProperty(e)&&c.requests[e].abort()}c.requestsCount=0,c.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",d):"function"==typeof addEventListener&&addEventListener("onpagehide"in s?"pagehide":"unload",d,!1)),e.exports=class extends n{constructor(e){if(super(e),"undefined"!=typeof location){const t="https:"===location.protocol;let r=location.port;r||(r=t?443:80),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||r!==e.port,this.xs=e.secure!==t}const t=e&&e.forceBase64;this.supportsBinary=h&&!t}request(e={}){return Object.assign(e,{xd:this.xd,xs:this.xs},this.opts),new c(this.uri(),e)}doWrite(e,t){const r=this.request({method:"POST",data:e}),i=this;r.on("success",t),r.on("error",(function(e){i.onError("xhr post error",e)}))}doPoll(){l("xhr poll");const e=this.request(),t=this;e.on("data",(function(e){t.onData(e)})),e.on("error",(function(e){t.onError("xhr poll error",e)})),this.pollXhr=e}},e.exports.Request=c},15:(e,t,r)=>{const i=r(496),n=r(830),o=r(743),a=r(281),s=r(227)("engine.io-client:polling");e.exports=class extends i{get name(){return"polling"}doOpen(){this.poll()}pause(e){const t=this;function r(){s("paused"),t.readyState="paused",e()}if(this.readyState="pausing",this.polling||!this.writable){let e=0;this.polling&&(s("we are currently polling - waiting to pause"),e++,this.once("pollComplete",(function(){s("pre-pause polling complete"),--e||r()}))),this.writable||(s("we are currently writing - waiting to pause"),e++,this.once("drain",(function(){s("pre-pause writing complete"),--e||r()})))}else r()}poll(){s("polling"),this.polling=!0,this.doPoll(),this.emit("poll")}onData(e){const t=this;s("polling got data %s",e),o.decodePayload(e,this.socket.binaryType).forEach((function(e,r,i){if("opening"===t.readyState&&"open"===e.type&&t.onOpen(),"close"===e.type)return t.onClose(),!1;t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():s('ignoring poll - transport state "%s"',this.readyState))}doClose(){const e=this;function t(){s("writing close packet"),e.write([{type:"close"}])}"open"===this.readyState?(s("transport open - closing"),t()):(s("transport not open - deferring close"),this.once("open",t))}write(e){this.writable=!1,o.encodePayload(e,(e=>{this.doWrite(e,(()=>{this.writable=!0,this.emit("drain")}))}))}uri(){let e=this.query||{};const t=this.opts.secure?"https":"http";let r="";return!1!==this.opts.timestampRequests&&(e[this.opts.timestampParam]=a()),this.supportsBinary||e.sid||(e.b64=1),e=n.encode(e),this.opts.port&&("https"===t&&443!==Number(this.opts.port)||"http"===t&&80!==Number(this.opts.port))&&(r=":"+this.opts.port),e.length&&(e="?"+e),t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+e}}},866:(e,t,r)=>{const i=r(549);e.exports={WebSocket:i.WebSocket||i.MozWebSocket,usingBrowserWebSocket:!0,defaultBinaryType:"arraybuffer"}},442:(e,t,r)=>{const i=r(496),n=r(743),o=r(830),a=r(281),{pick:s}=r(839),{WebSocket:l,usingBrowserWebSocket:u,defaultBinaryType:h}=r(866),c=r(227)("engine.io-client:websocket"),d="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();class f extends i{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),t=this.opts.protocols,r=d?{}:s(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=u&&!d?t?new l(e,t):new l(e):new l(e,t,r)}catch(e){return this.emit("error",e)}this.ws.binaryType=this.socket.binaryType||h,this.addEventListeners()}addEventListeners(){const e=this;this.ws.onopen=function(){e.onOpen()},this.ws.onclose=function(){e.onClose()},this.ws.onmessage=function(t){e.onData(t.data)},this.ws.onerror=function(t){e.onError("websocket error",t)}}write(e){const t=this;this.writable=!1;let r=e.length,i=0;const o=r;for(;i<o;i++)!function(e){n.encodePacket(e,t.supportsBinary,(function(i){const n={};!u&&(e.options&&(n.compress=e.options.compress),t.opts.perMessageDeflate)&&("string"==typeof i?Buffer.byteLength(i):i.length)<t.opts.perMessageDeflate.threshold&&(n.compress=!1);try{u?t.ws.send(i):t.ws.send(i,n)}catch(e){c("websocket closed before onclose event")}--r||(t.emit("flush"),setTimeout((function(){t.writable=!0,t.emit("drain")}),0))}))}(e[i])}onClose(){i.prototype.onClose.call(this)}doClose(){void 0!==this.ws&&this.ws.close()}uri(){let e=this.query||{};const t=this.opts.secure?"wss":"ws";let r="";return this.opts.port&&("wss"===t&&443!==Number(this.opts.port)||"ws"===t&&80!==Number(this.opts.port))&&(r=":"+this.opts.port),this.opts.timestampRequests&&(e[this.opts.timestampParam]=a()),this.supportsBinary||(e.b64=1),e=o.encode(e),e.length&&(e="?"+e),t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+e}check(){return!(!l||"__initialize"in l&&this.name===f.prototype.name)}}e.exports=f},839:e=>{e.exports.pick=(e,...t)=>t.reduce(((t,r)=>(e.hasOwnProperty(r)&&(t[r]=e[r]),t)),{})},777:(e,t,r)=>{const i=r(58),n=r(549);e.exports=function(e){const t=e.xdomain,r=e.xscheme,o=e.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!t||i))return new XMLHttpRequest}catch(e){}try{if("undefined"!=typeof XDomainRequest&&!r&&o)return new XDomainRequest}catch(e){}if(!t)try{return new(n[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}},712:e=>{const t=Object.create(null);t.open="0",t.close="1",t.ping="2",t.pong="3",t.message="4",t.upgrade="5",t.noop="6";const r=Object.create(null);Object.keys(t).forEach((e=>{r[t[e]]=e})),e.exports={PACKET_TYPES:t,PACKET_TYPES_REVERSE:r,ERROR_PACKET:{type:"error",data:"parser error"}}},965:(e,t,r)=>{const{PACKET_TYPES_REVERSE:i,ERROR_PACKET:n}=r(712);let o;"function"==typeof ArrayBuffer&&(o=r(704));const a=(e,t)=>{if(o){const r=o.decode(e);return s(r,t)}return{base64:!0,data:e}},s=(e,t)=>{switch(t){case"blob":return e instanceof ArrayBuffer?new Blob([e]):e;case"arraybuffer":default:return e}};e.exports=(e,t)=>{if("string"!=typeof e)return{type:"message",data:s(e,t)};const r=e.charAt(0);return"b"===r?{type:"message",data:a(e.substring(1),t)}:i[r]?e.length>1?{type:i[r],data:e.substring(1)}:{type:i[r]}:n}},929:(e,t,r)=>{const{PACKET_TYPES:i}=r(712),n="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),o="function"==typeof ArrayBuffer,a=(e,t)=>{const r=new FileReader;return r.onload=function(){const e=r.result.split(",")[1];t("b"+e)},r.readAsDataURL(e)};e.exports=({type:e,data:t},r,s)=>{return n&&t instanceof Blob?r?s(t):a(t,s):o&&(t instanceof ArrayBuffer||(l=t,"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(l):l&&l.buffer instanceof ArrayBuffer))?r?s(t instanceof ArrayBuffer?t:t.buffer):a(new Blob([t]),s):s(i[e]+(t||""));var l}},743:(e,t,r)=>{const i=r(929),n=r(965),o=String.fromCharCode(30);e.exports={protocol:4,encodePacket:i,encodePayload:(e,t)=>{const r=e.length,n=new Array(r);let a=0;e.forEach(((e,s)=>{i(e,!1,(e=>{n[s]=e,++a===r&&t(n.join(o))}))}))},decodePacket:n,decodePayload:(e,t)=>{const r=e.split(o),i=[];for(let e=0;e<r.length;e++){const o=n(r[e],t);if(i.push(o),"error"===o.type)break}return i}}},58:e=>{try{e.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){e.exports=!1}},824:e=>{var t=1e3,r=60*t,i=60*r,n=24*i;function o(e,t,r,i){var n=t>=1.5*r;return Math.round(e/r)+" "+i+(n?"s":"")}e.exports=function(e,a){a=a||{};var s,l,u=typeof e;if("string"===u&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(o){var a=parseFloat(o[1]);switch((o[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return 6048e5*a;case"days":case"day":case"d":return a*n;case"hours":case"hour":case"hrs":case"hr":case"h":return a*i;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===u&&isFinite(e))return a.long?(s=e,(l=Math.abs(s))>=n?o(s,l,n,"day"):l>=i?o(s,l,i,"hour"):l>=r?o(s,l,r,"minute"):l>=t?o(s,l,t,"second"):s+" ms"):function(e){var o=Math.abs(e);return o>=n?Math.round(e/n)+"d":o>=i?Math.round(e/i)+"h":o>=r?Math.round(e/r)+"m":o>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},35:(e,t,r)=>{e.exports=function e(t,r,i){function n(a,s){if(!r[a]){if(!t[a]){if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=r[a]={exports:{}};t[a][0].call(u.exports,(function(e){return n(t[a][1][e]||e)}),u,u.exports,e,t,r,i)}return r[a].exports}for(var o=void 0,a=0;a<i.length;a++)n(i[a]);return n}({1:[function(e,t,r){"use strict";r.byteLength=function(e){var t=u(e),r=t[0],i=t[1];return 3*(r+i)/4-i},r.toByteArray=function(e){var t,r,i=u(e),a=i[0],s=i[1],l=new o(function(e,t){return 3*(e+t)/4-t}(a,s)),h=0,c=0<s?a-4:a;for(r=0;r<c;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],l[h++]=t>>16&255,l[h++]=t>>8&255,l[h++]=255&t;return 2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,l[h++]=255&t),1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,l[h++]=t>>8&255,l[h++]=255&t),l},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,o=[],a=0,s=r-n;a<s;a+=16383)o.push(h(e,a,s<a+16383?s:a+16383));return 1==n?(t=e[r-1],o.push(i[t>>2]+i[t<<4&63]+"==")):2==n&&(t=(e[r-2]<<8)+e[r-1],o.push(i[t>>10]+i[t>>4&63]+i[t<<2&63]+"=")),o.join("")};for(var i=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s<l;++s)i[s]=a[s],n[a.charCodeAt(s)]=s;function u(e){var t=e.length;if(0<t%4)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function h(e,t,r){for(var n,o,a=[],s=t;s<r;s+=3)n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(i[(o=n)>>18&63]+i[o>>12&63]+i[o>>6&63]+i[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},{}],2:[function(e,t,r){},{}],3:[function(e,t,r){arguments[4][2][0].apply(r,arguments)},{dup:2}],4:[function(e,t,r){(function(t){"use strict";var i=e("base64-js"),n=e("ieee754"),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;r.Buffer=t,r.SlowBuffer=function(e){return+e!=e&&(e=0),t.alloc(+e)},r.INSPECT_MAX_BYTES=50;var a=2147483647;function s(e){if(a<e)throw new RangeError('The value "'+e+'" is invalid for option "size"');var r=new Uint8Array(e);return Object.setPrototypeOf(r,t.prototype),r}function t(e,t,r){if("number"!=typeof e)return l(e,t,r);if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return h(e)}function l(e,r,i){if("string"==typeof e)return function(e,r){if("string"==typeof r&&""!==r||(r="utf8"),!t.isEncoding(r))throw new TypeError("Unknown encoding: "+r);var i=0|f(e,r),n=s(i),o=n.write(e,r);return o!==i&&(n=n.slice(0,o)),n}(e,r);if(ArrayBuffer.isView(e))return c(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(U(e,ArrayBuffer)||e&&U(e.buffer,ArrayBuffer))return function(e,r,i){if(r<0||e.byteLength<r)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<r+(i||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===r&&void 0===i?new Uint8Array(e):void 0===i?new Uint8Array(e,r):new Uint8Array(e,r,i),Object.setPrototypeOf(n,t.prototype),n}(e,r,i);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return t.from(n,r,i);var o=function(e){if(t.isBuffer(e)){var r=0|d(e.length),i=s(r);return 0===i.length||e.copy(i,0,0,r),i}return void 0!==e.length?"number"!=typeof e.length||N(e.length)?s(0):c(e):"Buffer"===e.type&&Array.isArray(e.data)?c(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return t.from(e[Symbol.toPrimitive]("string"),r,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return u(e),s(e<0?0:0|d(e))}function c(e){for(var t=e.length<0?0:0|d(e.length),r=s(t),i=0;i<t;i+=1)r[i]=255&e[i];return r}function d(e){if(a<=e)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function f(e,r){if(t.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||U(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var i=e.length,n=2<arguments.length&&!0===arguments[2];if(!n&&0===i)return 0;for(var o=!1;;)switch(r){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return R(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return D(e).length;default:if(o)return n?-1:R(e).length;r=(""+r).toLowerCase(),o=!0}}function p(e,t,r){var i=e[t];e[t]=e[r],e[r]=i}function m(e,r,i,n,o){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):2147483647<i?i=2147483647:i<-2147483648&&(i=-2147483648),N(i=+i)&&(i=o?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(o)return-1;i=e.length-1}else if(i<0){if(!o)return-1;i=0}if("string"==typeof r&&(r=t.from(r,n)),t.isBuffer(r))return 0===r.length?-1:y(e,r,i,n,o);if("number"==typeof r)return r&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,r,i):Uint8Array.prototype.lastIndexOf.call(e,r,i):y(e,[r],i,n,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,r,i,n){var o,a=1,s=e.length,l=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;s/=a=2,l/=2,r/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(n){var h=-1;for(o=r;o<s;o++)if(u(e,o)===u(t,-1===h?0:o-h)){if(-1===h&&(h=o),o-h+1===l)return h*a}else-1!==h&&(o-=o-h),h=-1}else for(s<r+l&&(r=s-l),o=r;0<=o;o--){for(var c=!0,d=0;d<l;d++)if(u(e,o+d)!==u(t,d)){c=!1;break}if(c)return o}return-1}function v(e,t,r,i){r=Number(r)||0;var n=e.length-r;i?n<(i=Number(i))&&(i=n):i=n;var o=t.length;o/2<i&&(i=o/2);for(var a=0;a<i;++a){var s=parseInt(t.substr(2*a,2),16);if(N(s))return a;e[r+a]=s}return a}function g(e,t,r,i){return I(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,i)}function b(e,t,r,i){return I(function(e,t){for(var r,i,n,o=[],a=0;a<e.length&&!((t-=2)<0);++a)i=(r=e.charCodeAt(a))>>8,n=r%256,o.push(n),o.push(i);return o}(t,e.length-r),e,r,i)}function _(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function x(e,t,r){r=Math.min(e.length,r);for(var i=[],n=t;n<r;){var o,a,s,l,u=e[n],h=null,c=239<u?4:223<u?3:191<u?2:1;if(n+c<=r)switch(c){case 1:u<128&&(h=u);break;case 2:128==(192&(o=e[n+1]))&&127<(l=(31&u)<<6|63&o)&&(h=l);break;case 3:o=e[n+1],a=e[n+2],128==(192&o)&&128==(192&a)&&2047<(l=(15&u)<<12|(63&o)<<6|63&a)&&(l<55296||57343<l)&&(h=l);break;case 4:o=e[n+1],a=e[n+2],s=e[n+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&65535<(l=(15&u)<<18|(63&o)<<12|(63&a)<<6|63&s)&&l<1114112&&(h=l)}null===h?(h=65533,c=1):65535<h&&(h-=65536,i.push(h>>>10&1023|55296),h=56320|1023&h),i.push(h),n+=c}return function(e){var t=e.length;if(t<=w)return String.fromCharCode.apply(String,e);for(var r="",i=0;i<t;)r+=String.fromCharCode.apply(String,e.slice(i,i+=w));return r}(i)}r.kMaxLength=a,(t.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(t.prototype,"parent",{enumerable:!0,get:function(){if(t.isBuffer(this))return this.buffer}}),Object.defineProperty(t.prototype,"offset",{enumerable:!0,get:function(){if(t.isBuffer(this))return this.byteOffset}}),"undefined"!=typeof Symbol&&null!=Symbol.species&&t[Symbol.species]===t&&Object.defineProperty(t,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),t.poolSize=8192,t.from=function(e,t,r){return l(e,t,r)},Object.setPrototypeOf(t.prototype,Uint8Array.prototype),Object.setPrototypeOf(t,Uint8Array),t.alloc=function(e,t,r){return n=t,o=r,u(i=e),i<=0?s(i):void 0!==n?"string"==typeof o?s(i).fill(n,o):s(i).fill(n):s(i);var i,n,o},t.allocUnsafe=function(e){return h(e)},t.allocUnsafeSlow=function(e){return h(e)},t.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==t.prototype},t.compare=function(e,r){if(U(e,Uint8Array)&&(e=t.from(e,e.offset,e.byteLength)),U(r,Uint8Array)&&(r=t.from(r,r.offset,r.byteLength)),!t.isBuffer(e)||!t.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;for(var i=e.length,n=r.length,o=0,a=Math.min(i,n);o<a;++o)if(e[o]!==r[o]){i=e[o],n=r[o];break}return i<n?-1:n<i?1:0},t.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},t.concat=function(e,r){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return t.alloc(0);var i;if(void 0===r)for(i=r=0;i<e.length;++i)r+=e[i].length;var n=t.allocUnsafe(r),o=0;for(i=0;i<e.length;++i){var a=e[i];if(U(a,Uint8Array)&&(a=t.from(a)),!t.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,o),o+=a.length}return n},t.byteLength=f,t.prototype._isBuffer=!0,t.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)p(this,t,t+1);return this},t.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)p(this,t,t+3),p(this,t+1,t+2);return this},t.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)p(this,t,t+7),p(this,t+1,t+6),p(this,t+2,t+5),p(this,t+3,t+4);return this},t.prototype.toLocaleString=t.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?x(this,0,e):function(e,t,r){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e=e||"utf8";;)switch(e){case"hex":return E(this,t,r);case"utf8":case"utf-8":return x(this,t,r);case"ascii":return S(this,t,r);case"latin1":case"binary":return M(this,t,r);case"base64":return _(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,r);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}.apply(this,arguments)},t.prototype.equals=function(e){if(!t.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===t.compare(this,e)},t.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return e=this.toString("hex",0,t).replace(/(.{2})/g,"$1 ").trim(),this.length>t&&(e+=" ... "),"<Buffer "+e+">"},o&&(t.prototype[o]=t.prototype.inspect),t.prototype.compare=function(e,r,i,n,o){if(U(e,Uint8Array)&&(e=t.from(e,e.offset,e.byteLength)),!t.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===r&&(r=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),r<0||i>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(o<=n&&i<=r)return 0;if(o<=n)return-1;if(i<=r)return 1;if(this===e)return 0;for(var a=(o>>>=0)-(n>>>=0),s=(i>>>=0)-(r>>>=0),l=Math.min(a,s),u=this.slice(n,o),h=e.slice(r,i),c=0;c<l;++c)if(u[c]!==h[c]){a=u[c],s=h[c];break}return a<s?-1:s<a?1:0},t.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},t.prototype.indexOf=function(e,t,r){return m(this,e,t,r,!0)},t.prototype.lastIndexOf=function(e,t,r){return m(this,e,t,r,!1)},t.prototype.write=function(e,t,r,i){if(void 0===t)i="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)i=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(r)?(r>>>=0,void 0===i&&(i="utf8")):(i=r,r=void 0)}var n=this.length-t;if((void 0===r||n<r)&&(r=n),0<e.length&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i=i||"utf8";for(var o,a,s,l,u=!1;;)switch(i){case"hex":return v(this,e,t,r);case"utf8":case"utf-8":return s=t,l=r,I(R(e,this.length-s),this,s,l);case"ascii":return g(this,e,t,r);case"latin1":case"binary":return g(this,e,t,r);case"base64":return this,o=t,a=r,I(D(e),this,o,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b(this,e,t,r);default:if(u)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),u=!0}},t.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function S(e,t,r){var i="";r=Math.min(e.length,r);for(var n=t;n<r;++n)i+=String.fromCharCode(127&e[n]);return i}function M(e,t,r){var i="";r=Math.min(e.length,r);for(var n=t;n<r;++n)i+=String.fromCharCode(e[n]);return i}function E(e,t,r){var i=e.length;(!t||t<0)&&(t=0),(!r||r<0||i<r)&&(r=i);for(var n="",o=t;o<r;++o)n+=F[e[o]];return n}function T(e,t,r){for(var i=e.slice(t,r),n="",o=0;o<i.length;o+=2)n+=String.fromCharCode(i[o]+256*i[o+1]);return n}function C(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(r<e+t)throw new RangeError("Trying to access beyond buffer length")}function O(e,r,i,n,o,a){if(!t.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(o<r||r<a)throw new RangeError('"value" argument is out of bounds');if(i+n>e.length)throw new RangeError("Index out of range")}function P(e,t,r,i){if(r+i>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,r,i,o){return t=+t,r>>>=0,o||P(e,0,r,4),n.write(e,t,r,i,23,4),r+4}function k(e,t,r,i,o){return t=+t,r>>>=0,o||P(e,0,r,8),n.write(e,t,r,i,52,8),r+8}t.prototype.slice=function(e,r){var i=this.length;(e=~~e)<0?(e+=i)<0&&(e=0):i<e&&(e=i),(r=void 0===r?i:~~r)<0?(r+=i)<0&&(r=0):i<r&&(r=i),r<e&&(r=e);var n=this.subarray(e,r);return Object.setPrototypeOf(n,t.prototype),n},t.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);for(var i=this[e],n=1,o=0;++o<t&&(n*=256);)i+=this[e+o]*n;return i},t.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);for(var i=this[e+--t],n=1;0<t&&(n*=256);)i+=this[e+--t]*n;return i},t.prototype.readUInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),this[e]},t.prototype.readUInt16LE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]|this[e+1]<<8},t.prototype.readUInt16BE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]<<8|this[e+1]},t.prototype.readUInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},t.prototype.readUInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},t.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);for(var i=this[e],n=1,o=0;++o<t&&(n*=256);)i+=this[e+o]*n;return(n*=128)<=i&&(i-=Math.pow(2,8*t)),i},t.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||C(e,t,this.length);for(var i=t,n=1,o=this[e+--i];0<i&&(n*=256);)o+=this[e+--i]*n;return(n*=128)<=o&&(o-=Math.pow(2,8*t)),o},t.prototype.readInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},t.prototype.readInt16LE=function(e,t){e>>>=0,t||C(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},t.prototype.readInt16BE=function(e,t){e>>>=0,t||C(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},t.prototype.readInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},t.prototype.readInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},t.prototype.readFloatLE=function(e,t){return e>>>=0,t||C(e,4,this.length),n.read(this,e,!0,23,4)},t.prototype.readFloatBE=function(e,t){return e>>>=0,t||C(e,4,this.length),n.read(this,e,!1,23,4)},t.prototype.readDoubleLE=function(e,t){return e>>>=0,t||C(e,8,this.length),n.read(this,e,!0,52,8)},t.prototype.readDoubleBE=function(e,t){return e>>>=0,t||C(e,8,this.length),n.read(this,e,!1,52,8)},t.prototype.writeUIntLE=function(e,t,r,i){e=+e,t>>>=0,r>>>=0,i||O(this,e,t,r,Math.pow(2,8*r)-1,0);var n=1,o=0;for(this[t]=255&e;++o<r&&(n*=256);)this[t+o]=e/n&255;return t+r},t.prototype.writeUIntBE=function(e,t,r,i){e=+e,t>>>=0,r>>>=0,i||O(this,e,t,r,Math.pow(2,8*r)-1,0);var n=r-1,o=1;for(this[t+n]=255&e;0<=--n&&(o*=256);)this[t+n]=e/o&255;return t+r},t.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,255,0),this[t]=255&e,t+1},t.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},t.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},t.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},t.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},t.prototype.writeIntLE=function(e,t,r,i){if(e=+e,t>>>=0,!i){var n=Math.pow(2,8*r-1);O(this,e,t,r,n-1,-n)}var o=0,a=1,s=0;for(this[t]=255&e;++o<r&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},t.prototype.writeIntBE=function(e,t,r,i){if(e=+e,t>>>=0,!i){var n=Math.pow(2,8*r-1);O(this,e,t,r,n-1,-n)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;0<=--o&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},t.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},t.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},t.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},t.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},t.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},t.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},t.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},t.prototype.writeDoubleLE=function(e,t,r){return k(this,e,t,!0,r)},t.prototype.writeDoubleBE=function(e,t,r){return k(this,e,t,!1,r)},t.prototype.copy=function(e,r,i,n){if(!t.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i=i||0,n||0===n||(n=this.length),r>=e.length&&(r=e.length),r=r||0,0<n&&n<i&&(n=i),n===i)return 0;if(0===e.length||0===this.length)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-r<n-i&&(n=e.length-r+i);var o=n-i;if(this===e&&"function"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(r,i,n);else if(this===e&&i<r&&r<n)for(var a=o-1;0<=a;--a)e[a+r]=this[a+i];else Uint8Array.prototype.set.call(e,this.subarray(i,n),r);return o},t.prototype.fill=function(e,r,i,n){if("string"==typeof e){if("string"==typeof r?(n=r,r=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!t.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){var o=e.charCodeAt(0);("utf8"===n&&o<128||"latin1"===n)&&(e=o)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(r<0||this.length<r||this.length<i)throw new RangeError("Out of range index");if(i<=r)return this;var a;if(r>>>=0,i=void 0===i?this.length:i>>>0,"number"==typeof(e=e||0))for(a=r;a<i;++a)this[a]=e;else{var s=t.isBuffer(e)?e:t.from(e,n),l=s.length;if(0===l)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(a=0;a<i-r;++a)this[a+r]=s[a%l]}return this};var A=/[^+/0-9A-Za-z-_]/g;function R(e,t){var r;t=t||1/0;for(var i=e.length,n=null,o=[],a=0;a<i;++a){if(55295<(r=e.charCodeAt(a))&&r<57344){if(!n){if(56319<r){-1<(t-=3)&&o.push(239,191,189);continue}if(a+1===i){-1<(t-=3)&&o.push(239,191,189);continue}n=r;continue}if(r<56320){-1<(t-=3)&&o.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&-1<(t-=3)&&o.push(239,191,189);if(n=null,r<128){if(--t<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function D(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(A,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function I(e,t,r,i){for(var n=0;n<i&&!(n+r>=t.length||n>=e.length);++n)t[n+r]=e[n];return n}function U(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function N(e){return e!=e}var F=function(){for(var e="0123456789abcdef",t=new Array(256),r=0;r<16;++r)for(var i=16*r,n=0;n<16;++n)t[i+n]=e[r]+e[n];return t}()}).call(this,e("buffer").Buffer)},{"base64-js":1,buffer:4,ieee754:9}],5:[function(e,t,r){"use strict";t.exports=e("./").polyfill()},{"./":6}],6:[function(e,t,i){(function(r,n){var o;o=function(){"use strict";function t(e){return"function"==typeof e}var i=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=0,a=void 0,s=void 0,l=function(e,t){m[o]=e,m[o+1]=t,2===(o+=2)&&(s?s(y):x())},u="undefined"!=typeof window?window:void 0,h=u||{},c=h.MutationObserver||h.WebKitMutationObserver,d="undefined"==typeof self&&void 0!==r&&"[object process]"==={}.toString.call(r),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function p(){var e=setTimeout;return function(){return e(y,1)}}var m=new Array(1e3);function y(){for(var e=0;e<o;e+=2)(0,m[e])(m[e+1]),m[e]=void 0,m[e+1]=void 0;o=0}var v,g,b,_,x=void 0;function w(e,t){var r=this,i=new this.constructor(E);void 0===i[M]&&U(i);var n=r._state;if(n){var o=arguments[n-1];l((function(){return D(n,i,o,r._result)}))}else A(r,i,e,t);return i}function S(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(E);return O(t,e),t}x=d?function(){return r.nextTick(y)}:c?(g=0,b=new c(y),_=document.createTextNode(""),b.observe(_,{characterData:!0}),function(){_.data=g=++g%2}):f?((v=new MessageChannel).port1.onmessage=y,function(){return v.port2.postMessage(0)}):void 0===u&&"function"==typeof e?function(){try{var e=Function("return this")().require("vertx");return void 0!==(a=e.runOnLoop||e.runOnContext)?function(){a(y)}:p()}catch(e){return p()}}():p();var M=Math.random().toString(36).substring(2);function E(){}var T=void 0;function C(e,r,i){var n,o;r.constructor===e.constructor&&i===w&&r.constructor.resolve===S?(n=e,1===(o=r)._state?L(n,o._result):2===o._state?k(n,o._result):A(o,void 0,(function(e){return O(n,e)}),(function(e){return k(n,e)}))):void 0===i?L(e,r):t(i)?function(e,t,r){l((function(e){var i=!1,n=function(e,t,r,i){try{e.call(t,r,i)}catch(e){return e}}(r,t,(function(r){i||(i=!0,t!==r?O(e,r):L(e,r))}),(function(t){i||(i=!0,k(e,t))}),e._label);!i&&n&&(i=!0,k(e,n))}),e)}(e,r,i):L(e,r)}function O(e,t){if(e===t)k(e,new TypeError("You cannot resolve a promise with itself"));else if(n=typeof(i=t),null===i||"object"!=n&&"function"!=n)L(e,t);else{var r=void 0;try{r=t.then}catch(t){return void k(e,t)}C(e,t,r)}var i,n}function P(e){e._onerror&&e._onerror(e._result),R(e)}function L(e,t){e._state===T&&(e._result=t,e._state=1,0!==e._subscribers.length&&l(R,e))}function k(e,t){e._state===T&&(e._state=2,e._result=t,l(P,e))}function A(e,t,r,i){var n=e._subscribers,o=n.length;e._onerror=null,n[o]=t,n[o+1]=r,n[o+2]=i,0===o&&e._state&&l(R,e)}function R(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var i=void 0,n=void 0,o=e._result,a=0;a<t.length;a+=3)i=t[a],n=t[a+r],i?D(r,i,n,o):n(o);e._subscribers.length=0}}function D(e,r,i,n){var o=t(i),a=void 0,s=void 0,l=!0;if(o){try{a=i(n)}catch(e){l=!1,s=e}if(r===a)return void k(r,new TypeError("A promises callback cannot return that same promise."))}else a=n;r._state!==T||(o&&l?O(r,a):!1===l?k(r,s):1===e?L(r,a):2===e&&k(r,a))}var I=0;function U(e){e[M]=I++,e._state=void 0,e._result=void 0,e._subscribers=[]}var N=(F.prototype._enumerate=function(e){for(var t=0;this._state===T&&t<e.length;t++)this._eachEntry(e[t],t)},F.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,i=r.resolve;if(i===S){var n=void 0,o=void 0,a=!1;try{n=e.then}catch(t){a=!0,o=t}if(n===w&&e._state!==T)this._settledAt(e._state,t,e._result);else if("function"!=typeof n)this._remaining--,this._result[t]=e;else if(r===B){var s=new r(E);a?k(s,o):C(s,e,n),this._willSettleAt(s,t)}else this._willSettleAt(new r((function(t){return t(e)})),t)}else this._willSettleAt(i(e),t)},F.prototype._settledAt=function(e,t,r){var i=this.promise;i._state===T&&(this._remaining--,2===e?k(i,r):this._result[t]=r),0===this._remaining&&L(i,this._result)},F.prototype._willSettleAt=function(e,t){var r=this;A(e,void 0,(function(e){return r._settledAt(1,t,e)}),(function(e){return r._settledAt(2,t,e)}))},F);function F(e,t){this._instanceConstructor=e,this.promise=new e(E),this.promise[M]||U(this.promise),i(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?L(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&L(this.promise,this._result))):k(this.promise,new Error("Array Methods must be provided an Array"))}var B=(G.prototype.catch=function(e){return this.then(null,e)},G.prototype.finally=function(e){var r=this.constructor;return t(e)?this.then((function(t){return r.resolve(e()).then((function(){return t}))}),(function(t){return r.resolve(e()).then((function(){throw t}))})):this.then(e,e)},G);function G(e){this[M]=I++,this._result=this._state=void 0,this._subscribers=[],E!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof G?function(e,t){try{t((function(t){O(e,t)}),(function(t){k(e,t)}))}catch(t){k(e,t)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return B.prototype.then=w,B.all=function(e){return new N(this,e).promise},B.race=function(e){var t=this;return i(e)?new t((function(r,i){for(var n=e.length,o=0;o<n;o++)t.resolve(e[o]).then(r,i)})):new t((function(e,t){return t(new TypeError("You must pass an array to race."))}))},B.resolve=S,B.reject=function(e){var t=new this(E);return k(t,e),t},B._setScheduler=function(e){s=e},B._setAsap=function(e){l=e},B._asap=l,B.polyfill=function(){var e=void 0;if(void 0!==n)e=n;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var r=null;try{r=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===r&&!t.cast)return}e.Promise=B},B.Promise=B},"object"==typeof i&&void 0!==t?t.exports=o():this.ES6Promise=o()}).call(this,e("_process"),void 0!==r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:14}],7:[function(e,t,r){!function(e,i){if(void 0!==r&&void 0!==t)i(0,t);else{var n={exports:{}};i(0,n),e.fetchJsonp=n.exports}}(this,(function(e,t){"use strict";var r="callback";function i(e){try{delete window[e]}catch(t){window[e]=void 0}}function n(e){var t=document.getElementById(e);t&&document.getElementsByTagName("head")[0].removeChild(t)}t.exports=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=e,a=t.timeout||5e3,s=t.jsonpCallback||r,l=void 0;return new Promise((function(r,u){var h=t.jsonpCallbackFunction||"jsonp_"+Date.now()+"_"+Math.ceil(1e5*Math.random()),c=s+"_"+h;window[h]=function(e){r({ok:!0,json:function(){return Promise.resolve(e)}}),l&&clearTimeout(l),n(c),i(h)},o+=-1===o.indexOf("?")?"?":"&";var d=document.createElement("script");d.setAttribute("src",""+o+s+"="+h),t.charset&&d.setAttribute("charset",t.charset),d.id=c,document.getElementsByTagName("head")[0].appendChild(d),l=setTimeout((function(){u(new Error("JSONP request to "+e+" timed out")),i(h),n(c),window[h]=function(){i(h)}}),a),d.onerror=function(){u(new Error("JSONP request to "+e+" failed")),i(h),n(c),l&&clearTimeout(l)}}))}}))},{}],8:[function(e,t,r){var i=i||function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,r=function(){return e.URL||e.webkitURL||e},i=t.createElementNS("http://www.w3.org/1999/xhtml","a"),n="download"in i,o=/constructor/i.test(e.HTMLElement)||e.safari,a=/CriOS\/[\d]+/.test(navigator.userAgent),s=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},l=function(e){setTimeout((function(){"string"==typeof e?r().revokeObjectURL(e):e.remove()}),4e4)},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},h=function(t,h,c){function d(){!function(e,t,r){for(var i=(t=[].concat(t)).length;i--;){var n=e["on"+t[i]];if("function"==typeof n)try{n.call(e,e)}catch(e){s(e)}}}(p,"writestart progress write writeend".split(" "))}c||(t=u(t));var f,p=this,m="application/octet-stream"===t.type;if(p.readyState=p.INIT,n)return f=r().createObjectURL(t),void setTimeout((function(){var e,t;i.href=f,i.download=h,e=i,t=new MouseEvent("click"),e.dispatchEvent(t),d(),l(f),p.readyState=p.DONE}));!function(){if((a||m&&o)&&e.FileReader){var i=new FileReader;return i.onloadend=function(){var t=a?i.result:i.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,p.readyState=p.DONE,d()},i.readAsDataURL(t),p.readyState=p.INIT}f=f||r().createObjectURL(t),m?e.location.href=f:e.open(f,"_blank")||(e.location.href=f),p.readyState=p.DONE,d(),l(f)}()},c=h.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,r){return t=t||e.name||"download",r||(e=u(e)),navigator.msSaveOrOpenBlob(e,t)}:(c.abort=function(){},c.readyState=c.INIT=0,c.WRITING=1,c.DONE=2,c.error=c.onwritestart=c.onprogress=c.onwrite=c.onabort=c.onerror=c.onwriteend=null,function(e,t,r){return new h(e,t||e.name||"download",r)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);void 0!==t&&t.exports&&(t.exports.saveAs=i)},{}],9:[function(e,t,r){r.read=function(e,t,r,i,n){var o,a,s=8*n-i-1,l=(1<<s)-1,u=l>>1,h=-7,c=r?n-1:0,d=r?-1:1,f=e[t+c];for(c+=d,o=f&(1<<-h)-1,f>>=-h,h+=s;0<h;o=256*o+e[t+c],c+=d,h-=8);for(a=o&(1<<-h)-1,o>>=-h,h+=i;0<h;a=256*a+e[t+c],c+=d,h-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,i),o-=u}return(f?-1:1)*a*Math.pow(2,o-i)},r.write=function(e,t,r,i,n,o){var a,s,l,u=8*o-n-1,h=(1<<u)-1,c=h>>1,d=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,p=i?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=h):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),2<=(t+=1<=a+c?d/l:d*Math.pow(2,1-c))*l&&(a++,l/=2),h<=a+c?(s=0,a=h):1<=a+c?(s=(t*l-1)*Math.pow(2,n),a+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,n),a=0));8<=n;e[r+f]=255&s,f+=p,s/=256,n-=8);for(a=a<<n|s,u+=n;0<u;e[r+f]=255&a,f+=p,a/=256,u-=8);e[r+f-p]|=128*m}},{}],10:[function(e,t,r){"use strict";var i;function n(e,t){return e.b===t.b&&e.a===t.a}function o(e,t){return e.b<t.b||e.b===t.b&&e.a<=t.a}function a(e,t,r){var i=t.b-e.b,n=r.b-t.b;return 0<i+n?i<n?t.a-e.a+i/(i+n)*(e.a-r.a):t.a-r.a+n/(i+n)*(r.a-e.a):0}function s(e,t,r){var i=t.b-e.b,n=r.b-t.b;return 0<i+n?(t.a-r.a)*i+(t.a-e.a)*n:0}function l(e,t){return e.a<t.a||e.a===t.a&&e.b<=t.b}function u(e,t,r){var i=t.a-e.a,n=r.a-t.a;return 0<i+n?i<n?t.b-e.b+i/(i+n)*(e.b-r.b):t.b-r.b+n/(i+n)*(r.b-e.b):0}function h(e,t,r){var i=t.a-e.a,n=r.a-t.a;return 0<i+n?(t.b-r.b)*i+(t.b-e.b)*n:0}function c(e,t,r,i){return(e=e<0?0:e)<=(r=r<0?0:r)?0===r?(t+i)/2:t+e/(e+r)*(i-t):i+r/(e+r)*(t-i)}function d(e){var t=v(e.b);return b(t,e.c),b(t.b,e.c),_(t,e.a),t}function f(e,t){var r=!1,i=!1;e!==t&&(t.a!==e.a&&(i=!0,w(t.a,e.a)),t.d!==e.d&&(r=!0,S(t.d,e.d)),g(t,e),i||(b(t,e.a),e.a.c=e),r||(_(t,e.d),e.d.a=e))}function p(e){var t=e.b,r=!1;e.d!==e.b.d&&(r=!0,S(e.d,e.b.d)),e.c===e?w(e.a,null):(e.b.d.a=J(e),e.a.c=e.c,g(e,J(e)),r||_(e,e.d)),t.c===t?(w(t.a,null),S(t.d,null)):(e.d.a=J(t),t.a.c=t.c,g(t,J(t))),x(e)}function m(e){var t=v(e),r=t.b;return g(t,e.e),t.a=e.b.a,b(r,t.a),t.d=r.d=e.d,t=t.b,g(e.b,J(e.b)),g(e.b,t),e.b.a=t.a,t.b.a.c=t.b,t.b.d=e.b.d,t.f=e.f,t.b.f=e.b.f,t}function y(e,t){var r=!1,i=v(e),n=i.b;return t.d!==e.d&&(r=!0,S(t.d,e.d)),g(i,e.e),g(n,t),i.a=e.b.a,n.a=t.a,i.d=n.d=e.d,e.d.a=n,r||_(i,e.d),i}function v(e){var t=new K,r=new K,i=e.b.h;return(((r.h=i).b.h=t).h=e).b.h=r,t.b=r,((t.c=t).e=r).b=t,(r.c=r).e=t}function g(e,t){var r=e.c,i=t.c;r.b.e=t,(i.b.e=e).c=i,t.c=r}function b(e,t){var r=t.f,i=new ee(t,r);for(r.e=i,r=(t.f=i).c=e;r.a=i,(r=r.c)!==e;);}function _(e,t){var r=t.d,i=new Q(t,r);for(r.b=i,(t.d=i).a=e,i.c=t.c,r=e;r.d=i,(r=r.e)!==e;);}function x(e){var t=e.h;e=e.b.h,(t.b.h=e).b.h=t}function w(e,t){for(var r=e.c,i=r;i.a=t,(i=i.c)!==r;);r=e.f,((i=e.e).f=r).e=i}function S(e,t){for(var r=e.a,i=r;i.d=t,(i=i.e)!==r;);r=e.d,((i=e.b).d=r).b=i}function M(e){var t=0;return Math.abs(e[1])>Math.abs(e[0])&&(t=1),Math.abs(e[2])>Math.abs(e[t])&&(t=2),t}var E=4e150;function T(e,t){e.f+=t.f,e.b.f+=t.b.f}function C(e,t,r){return e=e.a,t=t.a,r=r.a,t.b.a===e?r.b.a===e?o(t.a,r.a)?s(r.b.a,t.a,r.a)<=0:0<=s(t.b.a,r.a,t.a):s(r.b.a,e,r.a)<=0:r.b.a===e?0<=s(t.b.a,e,t.a):(t=a(t.b.a,e,t.a),(e=a(r.b.a,e,r.a))<=t)}function O(e){e.a.i=null;var t=e.e;t.a.c=t.c,t.c.a=t.a,e.e=null}function P(e,t){p(e.a),e.c=!1,(e.a=t).i=e}function L(e){for(var t=e.a.a;(e=de(e)).a.a===t;);return e.c&&(P(e,t=y(ce(e).a.b,e.a.e)),e=de(e)),e}function k(e,t,r){var i=new he;return i.a=r,i.e=W(e.f,t.e,i),r.i=i}function A(e,t){switch(e.s){case 100130:return 0!=(1&t);case 100131:return 0!==t;case 100132:return 0<t;case 100133:return t<0;case 100134:return 2<=t||t<=-2}return!1}function R(e){var t=e.a,r=t.d;r.c=e.d,r.a=t,O(e)}function D(e,t,r){for(t=(e=t).a;e!==r;){e.c=!1;var i=ce(e),n=i.a;if(n.a!==t.a){if(!i.c){R(e);break}P(i,n=y(t.c.b,n.b))}t.c!==n&&(f(J(n),n),f(t,n)),R(e),t=i.a,e=i}return t}function I(e,t,r,i,n,o){for(var a=!0;k(e,t,r.b),(r=r.c)!==i;);for(null===n&&(n=ce(t).a.b.c);(r=(i=ce(t)).a.b).a===n.a;)r.c!==n&&(f(J(r),r),f(J(n),r)),i.f=t.f-r.f,i.d=A(e,i.f),t.b=!0,!a&&B(e,t)&&(T(r,n),O(t),p(n)),a=!1,t=i,n=r;t.b=!0,o&&j(e,t)}function U(e,t,r,i,n){var o=[t.g[0],t.g[1],t.g[2]];t.d=null,t.d=e.o&&e.o(o,r,i,e.c)||null,null===t.d&&(n?e.n||(Z(e,100156),e.n=!0):t.d=r[0])}function N(e,t,r){var i=[null,null,null,null];i[0]=t.a.d,i[1]=r.a.d,U(e,t.a,i,[.5,.5,0,0],!1),f(t,r)}function F(e,t,r,i,n){var o=Math.abs(t.b-e.b)+Math.abs(t.a-e.a),a=Math.abs(r.b-e.b)+Math.abs(r.a-e.a),s=n+1;i[n]=.5*a/(o+a),i[s]=.5*o/(o+a),e.g[0]+=i[n]*t.g[0]+i[s]*r.g[0],e.g[1]+=i[n]*t.g[1]+i[s]*r.g[1],e.g[2]+=i[n]*t.g[2]+i[s]*r.g[2]}function B(e,t){var r=ce(t),i=t.a,a=r.a;if(o(i.a,a.a)){if(0<s(a.b.a,i.a,a.a))return!1;if(n(i.a,a.a)){if(i.a!==a.a){r=e.e;var l=i.a.h;if(0<=l){var u=(r=r.b).d,h=r.e,c=r.c,d=c[l];u[d]=u[r.a],(c[u[d]]=d)<=--r.a&&(d<=1||o(h[u[d>>1]],h[u[d]])?le(r,d):ue(r,d)),h[l]=null,c[l]=r.b,r.b=l}else for(r.c[-(l+1)]=null;0<r.a&&null===r.c[r.d[r.a-1]];)--r.a;N(e,J(a),i)}}else m(a.b),f(i,J(a)),t.b=r.b=!0}else{if(s(i.b.a,a.a,i.a)<0)return!1;de(t).b=t.b=!0,m(i.b),f(J(a),i)}return!0}function G(e,t){var r=ce(t),i=t.a,d=r.a,p=i.a,y=d.a,v=i.b.a,g=d.b.a,b=new ee;if(s(v,e.a,p),s(g,e.a,y),p===y||Math.min(p.a,v.a)>Math.max(y.a,g.a))return!1;if(o(p,y)){if(0<s(g,p,y))return!1}else if(s(v,y,p)<0)return!1;var _,x,w=v,S=p,M=g,E=y;if(o(w,S)||(_=w,w=S,S=_),o(M,E)||(_=M,M=E,E=_),o(w,M)||(_=w,w=M,M=_,_=S,S=E,E=_),o(M,S)?o(S,E)?((_=a(w,M,S))+(x=a(M,S,E))<0&&(_=-_,x=-x),b.b=c(_,M.b,x,S.b)):((_=s(w,M,S))+(x=-s(w,E,S))<0&&(_=-_,x=-x),b.b=c(_,M.b,x,E.b)):b.b=(M.b+S.b)/2,l(w,S)||(_=w,w=S,S=_),l(M,E)||(_=M,M=E,E=_),l(w,M)||(_=w,w=M,M=_,_=S,S=E,E=_),l(M,S)?l(S,E)?((_=u(w,M,S))+(x=u(M,S,E))<0&&(_=-_,x=-x),b.a=c(_,M.a,x,S.a)):((_=h(w,M,S))+(x=-h(w,E,S))<0&&(_=-_,x=-x),b.a=c(_,M.a,x,E.a)):b.a=(M.a+S.a)/2,o(b,e.a)&&(b.b=e.a.b,b.a=e.a.a),w=o(p,y)?p:y,o(w,b)&&(b.b=w.b,b.a=w.a),n(b,p)||n(b,y))return B(e,t),!1;if(!n(v,e.a)&&0<=s(v,e.a,b)||!n(g,e.a)&&s(g,e.a,b)<=0){if(g===e.a)return m(i.b),f(d.b,i),i=ce(t=L(t)).a,D(e,ce(t),r),I(e,t,J(i),i,i,!0),!0;if(v!==e.a)return 0<=s(v,e.a,b)&&(de(t).b=t.b=!0,m(i.b),i.a.b=e.a.b,i.a.a=e.a.a),s(g,e.a,b)<=0&&(t.b=r.b=!0,m(d.b),d.a.b=e.a.b,d.a.a=e.a.a),!1;for(m(d.b),f(i.e,J(d)),y=(p=r=t).a.b.a;(p=de(p)).a.b.a===y;);return p=ce(t=p).a.b.c,r.a=J(d),I(e,t,(d=D(e,r,null)).c,i.b.c,p,!0),!0}return m(i.b),m(d.b),f(J(d),i),i.a.b=b.b,i.a.a=b.a,i.a.h=re(e.e,i.a),i=i.a,d=[0,0,0,0],b=[p.d,v.d,y.d,g.d],i.g[0]=i.g[1]=i.g[2]=0,F(i,p,v,d,0),F(i,y,g,d,2),U(e,i,b,d,!0),de(t).b=t.b=r.b=!0,!1}function j(e,t){for(var r=ce(t);;){for(;r.b;)r=ce(t=r);if(!(t.b||null!==(t=de(r=t))&&t.b))break;t.b=!1;var i,n=t.a,a=r.a;if(i=n.b.a!==a.b.a)e:{var l=ce(i=t),u=i.a,h=l.a,c=void 0;if(o(u.b.a,h.b.a)){if(s(u.b.a,h.b.a,u.a)<0){i=!1;break e}de(i).b=i.b=!0,c=m(u),f(h.b,c),c.d.c=i.d}else{if(0<s(h.b.a,u.b.a,h.a)){i=!1;break e}i.b=l.b=!0,c=m(h),f(u.e,h.b),c.b.d.c=i.d}i=!0}if(i&&(r.c?(O(r),p(a),a=(r=ce(t)).a):t.c&&(O(t),p(n),n=(t=de(r)).a)),n.a!==a.a)if(n.b.a===a.b.a||t.c||r.c||n.b.a!==e.a&&a.b.a!==e.a)B(e,t);else if(G(e,t))break;n.a===a.a&&n.b.a===a.b.a&&(T(a,n),O(t),p(n),t=de(r))}}function V(e,t){for(var r=(e.a=t).c;null===r.i;)if((r=r.c)===t.c){r=e;var i=t;(u=new he).a=i.c.b;for(var a=(c=r.f).a;null!==(a=a.a).b&&!c.c(c.b,u,a.b););var l=ce(c=a.b),u=c.a;if(a=l.a,0===s(u.b.a,i,u.a))n((u=c.a).a,i)||n(u.b.a,i)||(m(u.b),c.c&&(p(u.c),c.c=!1),f(i.c,u),V(r,i));else{var h=o(a.b.a,u.b.a)?c:l;l=void 0,c.d||h.c?(l=h===c?y(i.c.b,u.e):y(a.b.c.b,i.c).b,h.c?P(h,l):((c=k(u=r,c,l)).f=de(c).f+c.a.f,c.d=A(u,c.f)),V(r,i)):I(r,c,i.c,i.c,null,!0)}return}if(c=(u=ce(r=L(r.i))).a,(u=D(e,u,null)).c===c){u=(c=u).c,a=ce(r),l=r.a,h=a.a;var c,d=!1;l.b.a!==h.b.a&&G(e,r),n(l.a,e.a)&&(f(J(u),l),u=ce(r=L(r)).a,D(e,ce(r),a),d=!0),n(h.a,e.a)&&(f(c,J(h)),c=D(e,a,null),d=!0),d?I(e,r,c.c,u,u,!0):(i=o(h.a,l.a)?J(h):l,I(e,r,i=y(c.c.b,i),i.c,i.c,!1),i.b.i.c=!0,j(e,r))}else I(e,r,u.c,c,c,!0)}function z(e,t){var r=new he,i=d(e.b);i.a.b=E,i.a.a=t,i.b.a.b=-E,i.b.a.a=t,e.a=i.b.a,r.a=i,r.f=0,r.d=!1,r.c=!1,r.h=!0,r.b=!1,i=W(i=e.f,i.a,r),r.e=i}function H(e){this.a=new q,this.b=e,this.c=C}function W(e,t,r){for(;null!==(t=t.c).b&&!e.c(e.b,t.b,r););return e=new q(r,t.a,t),t.a.c=e,t.a=e}function q(e,t,r){this.b=e||null,this.a=t||this,this.c=r||this}function X(){this.d=0,this.p=this.b=this.q=null,this.j=[0,0,0],this.s=100130,this.n=!1,this.o=this.a=this.e=this.f=null,this.m=!1,this.c=this.r=this.i=this.k=this.l=this.h=null}function Y(e,t){if(e.d!==t)for(;e.d!==t;)if(e.d<t)switch(e.d){case 0:Z(e,100151),e.u(null);break;case 1:Z(e,100152),e.t()}else switch(e.d){case 2:Z(e,100154),e.v();break;case 1:Z(e,100153),e.w()}}function Z(e,t){e.p&&e.p(t,e.c)}function Q(e,t){this.b=e||this,this.d=t||this,this.a=null,this.c=!1}function K(){(this.h=this).i=this.d=this.a=this.e=this.c=this.b=null,this.f=0}function J(e){return e.b.e}function $(){this.c=new ee,this.a=new Q,this.b=new K,this.d=new K,this.b.b=this.d,this.d.b=this.b}function ee(e,t){this.e=e||this,this.f=t||this,this.d=this.c=null,this.g=[0,0,0],this.h=this.a=this.b=0}function te(){this.c=[],this.d=null,this.a=0,this.e=!1,this.b=new ne}function re(e,t){if(e.e){var r,i=e.b,n=++i.a;return 2*n>i.f&&(i.f*=2,i.c=oe(i.c,i.f+1)),0===i.b?r=n:(r=i.b,i.b=i.c[i.b]),i.e[r]=t,i.c[r]=n,i.d[n]=r,i.h&&ue(i,n),r}return i=e.a++,e.c[i]=t,-(i+1)}function ie(e){if(0===e.a)return se(e.b);var t=e.c[e.d[e.a-1]];if(0!==e.b.a&&o(ae(e.b),t))return se(e.b);for(;--e.a,0<e.a&&null===e.c[e.d[e.a-1]];);return t}function ne(){this.d=oe([0],33),this.e=[null,null],this.c=[0,0],this.a=0,this.f=32,this.b=0,this.h=!1,this.d[1]=1}function oe(e,t){for(var r=Array(t),i=0;i<e.length;i++)r[i]=e[i];for(;i<t;i++)r[i]=0;return r}function ae(e){return e.e[e.d[1]]}function se(e){var t=e.d,r=e.e,i=e.c,n=t[1],o=r[n];return 0<e.a&&(t[1]=t[e.a],i[t[1]]=1,r[n]=null,i[n]=e.b,e.b=n,0<--e.a&&le(e,1)),o}function le(e,t){for(var r=e.d,i=e.e,n=e.c,a=t,s=r[a];;){var l=a<<1;l<e.a&&o(i[r[l+1]],i[r[l]])&&(l+=1);var u=r[l];if(l>e.a||o(i[s],i[u])){n[r[a]=s]=a;break}n[r[a]=u]=a,a=l}}function ue(e,t){for(var r=e.d,i=e.e,n=e.c,a=t,s=r[a];;){var l=a>>1,u=r[l];if(0==l||o(i[u],i[s])){n[r[a]=s]=a;break}n[r[a]=u]=a,a=l}}function he(){this.e=this.a=null,this.f=0,this.c=this.b=this.h=this.d=!1}function ce(e){return e.e.c.b}function de(e){return e.e.a.b}(i=X.prototype).x=function(){Y(this,0)},i.B=function(e,t){switch(e){case 100142:return;case 100140:switch(t){case 100130:case 100131:case 100132:case 100133:case 100134:return void(this.s=t)}break;case 100141:return void(this.m=!!t);default:return void Z(this,100900)}Z(this,100901)},i.y=function(e){switch(e){case 100142:return 0;case 100140:return this.s;case 100141:return this.m;default:Z(this,100900)}return!1},i.A=function(e,t,r){this.j[0]=e,this.j[1]=t,this.j[2]=r},i.z=function(e,t){var r=t||null;switch(e){case 100100:case 100106:this.h=r;break;case 100104:case 100110:this.l=r;break;case 100101:case 100107:this.k=r;break;case 100102:case 100108:this.i=r;break;case 100103:case 100109:this.p=r;break;case 100105:case 100111:this.o=r;break;case 100112:this.r=r;break;default:Z(this,100900)}},i.C=function(e,t){var r=!1,i=[0,0,0];Y(this,2);for(var n=0;n<3;++n){var o=e[n];o<-1e150&&(o=-1e150,r=!0),1e150<o&&(o=1e150,r=!0),i[n]=o}r&&Z(this,100155),null===(r=this.q)?f(r=d(this.b),r.b):(m(r),r=r.e),r.a.d=t,r.a.g[0]=i[0],r.a.g[1]=i[1],r.a.g[2]=i[2],r.f=1,r.b.f=-1,this.q=r},i.u=function(e){Y(this,0),this.d=1,this.b=new $,this.c=e},i.t=function(){Y(this,1),this.d=2,this.q=null},i.v=function(){Y(this,2),this.d=1},i.w=function(){Y(this,1),this.d=0;var e,t,r=!1,i=[c=this.j[0],a=this.j[1],u=this.j[2]];if(0===c&&0===a&&0===u){for(var a=[-2e150,-2e150,-2e150],l=[2e150,2e150,2e150],u=[],h=[],c=(r=this.b.c).e;c!==r;c=c.e)for(var d=0;d<3;++d){var f=c.g[d];f<l[d]&&(l[d]=f,h[d]=c),f>a[d]&&(a[d]=f,u[d]=c)}if(c=0,a[1]-l[1]>a[0]-l[0]&&(c=1),a[2]-l[2]>a[c]-l[c]&&(c=2),l[c]>=a[c])i[0]=0,i[1]=0,i[2]=1;else{for(a=0,l=h[c],u=u[c],h=[0,0,0],l=[l.g[0]-u.g[0],l.g[1]-u.g[1],l.g[2]-u.g[2]],d=[0,0,0],c=r.e;c!==r;c=c.e)d[0]=c.g[0]-u.g[0],d[1]=c.g[1]-u.g[1],d[2]=c.g[2]-u.g[2],h[0]=l[1]*d[2]-l[2]*d[1],h[1]=l[2]*d[0]-l[0]*d[2],h[2]=l[0]*d[1]-l[1]*d[0],a<(f=h[0]*h[0]+h[1]*h[1]+h[2]*h[2])&&(a=f,i[0]=h[0],i[1]=h[1],i[2]=h[2]);a<=0&&(i[0]=i[1]=i[2]=0,i[M(l)]=1)}r=!0}for(h=M(i),c=this.b.c,a=(h+1)%3,u=(h+2)%3,h=0<i[h]?1:-1,i=c.e;i!==c;i=i.e)i.b=i.g[a],i.a=h*i.g[u];if(r){for(i=0,c=(r=this.b.a).b;c!==r;c=c.b)if(!((a=c.a).f<=0))for(;i+=(a.a.b-a.b.a.b)*(a.a.a+a.b.a.a),(a=a.e)!==c.a;);if(i<0)for(r=(i=this.b.c).e;r!==i;r=r.e)r.a=-r.a}for(this.n=!1,c=(i=this.b.b).h;c!==i;c=r)r=c.h,a=c.e,n(c.a,c.b.a)&&c.e.e!==c&&(N(this,a,c),p(c),a=(c=a).e),a.e===c&&(a!==c&&(a!==r&&a!==r.b||(r=r.h),p(a)),c!==r&&c!==r.b||(r=r.h),p(c));for(this.e=i=new te,c=(r=this.b.c).e;c!==r;c=c.e)c.h=re(i,c);for(function(e){e.d=[];for(var t=0;t<e.a;t++)e.d[t]=t;e.d.sort(function(e){return function(t,r){return o(e[t],e[r])?1:-1}}(e.c)),e.e=!0,function(e){for(var t=e.a;1<=t;--t)le(e,t);e.h=!0}(e.b)}(i),this.f=new H(this),z(this,-E),z(this,E);null!==(i=ie(this.e));){for(;;){e:if(c=this.e,0===c.a)r=ae(c.b);else if(r=c.c[c.d[c.a-1]],0!==c.b.a&&(c=ae(c.b),o(c,r))){r=c;break e}if(null===r||!n(r,i))break;r=ie(this.e),N(this,i.c,r.c)}V(this,i)}for(this.a=this.f.a.a.b.a.a,i=0;null!==(r=this.f.a.a.b);)r.h||++i,O(r);for(this.f=null,(i=this.e).b=null,i.d=null,this.e=i.c=null,c=(i=this.b).a.b;c!==i.a;c=r)r=c.b,(c=c.a).e.e===c&&(T(c.c,c),p(c));if(!this.n){if(i=this.b,this.m)for(c=i.b.h;c!==i.b;c=r)r=c.h,c.b.d.c!==c.d.c?c.f=c.d.c?1:-1:p(c);else for(c=i.a.b;c!==i.a;c=r)if(r=c.b,c.c){for(c=c.a;o(c.b.a,c.a);c=c.c.b);for(;o(c.a,c.b.a);c=c.e);for(a=c.c.b,u=void 0;c.e!==a;)if(o(c.b.a,a.a)){for(;a.e!==c&&(o((t=a.e).b.a,t.a)||s(a.a,a.b.a,a.e.b.a)<=0);)a=(u=y(a.e,a)).b;a=a.c.b}else{for(;a.e!==c&&(o((e=c.c.b).a,e.b.a)||0<=s(c.b.a,c.a,c.c.b.a));)c=(u=y(c,c.c.b)).b;c=c.e}for(;a.e.e!==c;)a=(u=y(a.e,a)).b}if(this.h||this.i||this.k||this.l)if(this.m){for(r=(i=this.b).a.b;r!==i.a;r=r.b)if(r.c){for(this.h&&this.h(2,this.c),c=r.a;this.k&&this.k(c.a.d,this.c),(c=c.e)!==r.a;);this.i&&this.i(this.c)}}else{for(i=this.b,r=!!this.l,c=!1,a=-1,u=i.a.d;u!==i.a;u=u.d)if(u.c)for(c||(this.h&&this.h(4,this.c),c=!0),h=u.a;r&&a!==(l=h.b.d.c?0:1)&&(a=l,this.l&&this.l(!!a,this.c)),this.k&&this.k(h.a.d,this.c),(h=h.e)!==u.a;);c&&this.i&&this.i(this.c)}if(this.r){for(c=(i=this.b).a.b;c!==i.a;c=r)if(r=c.b,!c.c){for(u=(a=c.a).e,h=void 0;u=(h=u).e,(h.d=null)===h.b.d&&(h.c===h?w(h.a,null):(h.a.c=h.c,g(h,J(h))),(l=h.b).c===l?w(l.a,null):(l.a.c=l.c,g(l,J(l))),x(h)),h!==a;);a=c.d,((c=c.b).d=a).b=c}return this.r(this.b),void(this.c=this.b=null)}}this.b=this.c=null},this.libtess={GluTesselator:X,windingRule:{GLU_TESS_WINDING_ODD:100130,GLU_TESS_WINDING_NONZERO:100131,GLU_TESS_WINDING_POSITIVE:100132,GLU_TESS_WINDING_NEGATIVE:100133,GLU_TESS_WINDING_ABS_GEQ_TWO:100134},primitiveType:{GL_LINE_LOOP:2,GL_TRIANGLES:4,GL_TRIANGLE_STRIP:5,GL_TRIANGLE_FAN:6},errorType:{GLU_TESS_MISSING_BEGIN_POLYGON:100151,GLU_TESS_MISSING_END_POLYGON:100153,GLU_TESS_MISSING_BEGIN_CONTOUR:100152,GLU_TESS_MISSING_END_CONTOUR:100154,GLU_TESS_COORD_TOO_LARGE:100155,GLU_TESS_NEED_COMBINE_CALLBACK:100156},gluEnum:{GLU_TESS_MESH:100112,GLU_TESS_TOLERANCE:100142,GLU_TESS_WINDING_RULE:100140,GLU_TESS_BOUNDARY_ONLY:100141,GLU_INVALID_ENUM:100900,GLU_INVALID_VALUE:100901,GLU_TESS_BEGIN:100100,GLU_TESS_VERTEX:100101,GLU_TESS_END:100102,GLU_TESS_ERROR:100103,GLU_TESS_EDGE_FLAG:100104,GLU_TESS_COMBINE:100105,GLU_TESS_BEGIN_DATA:100106,GLU_TESS_VERTEX_DATA:100107,GLU_TESS_END_DATA:100108,GLU_TESS_ERROR_DATA:100109,GLU_TESS_EDGE_FLAG_DATA:100110,GLU_TESS_COMBINE_DATA:100111}},X.prototype.gluDeleteTess=X.prototype.x,X.prototype.gluTessProperty=X.prototype.B,X.prototype.gluGetTessProperty=X.prototype.y,X.prototype.gluTessNormal=X.prototype.A,X.prototype.gluTessCallback=X.prototype.z,X.prototype.gluTessVertex=X.prototype.C,X.prototype.gluTessBeginPolygon=X.prototype.u,X.prototype.gluTessBeginContour=X.prototype.t,X.prototype.gluTessEndContour=X.prototype.v,X.prototype.gluTessEndPolygon=X.prototype.w,void 0!==t&&(t.exports=this.libtess)},{}],11:[function(e,t,r){"use strict";function i(e,t,r,i){for(var n=e[t++],o=1<<n,a=1+o,s=1+a,l=n+1,u=(1<<l)-1,h=0,c=0,d=0,f=e[t++],p=new Int32Array(4096),m=null;;){for(;h<16&&0!==f;)c|=e[t++]<<h,h+=8,1===f?f=e[t++]:--f;if(h<l)break;var y=c&u;if(c>>=l,h-=l,y!=o){if(y==a)break;for(var v=y<s?y:m,g=0,b=v;o<b;)b=p[b]>>8,++g;var _=b;if(i<d+g+(v!==y?1:0))return void console.log("Warning, gif stream longer than expected.");r[d++]=_;var x=d+=g;for(v!==y&&(r[d++]=_),b=v;g--;)b=p[b],r[--x]=255&b,b>>=8;null!==m&&s<4096&&(p[s++]=m<<8|_,u+1<=s&&l<12&&(++l,u=u<<1|1)),m=y}else s=1+a,u=(1<<(l=n+1))-1,m=null}return d!==i&&console.log("Warning, gif stream shorter than expected."),r}try{r.GifWriter=function(e,t,r,i){var n=0,o=void 0===(i=void 0===i?{}:i).loop?null:i.loop,a=void 0===i.palette?null:i.palette;if(t<=0||r<=0||65535<t||65535<r)throw new Error("Width/Height invalid.");function s(e){var t=e.length;if(t<2||256<t||t&t-1)throw new Error("Invalid code/color length, must be power of 2 and 2 .. 256.");return t}e[n++]=71,e[n++]=73,e[n++]=70,e[n++]=56,e[n++]=57,e[n++]=97;var l=0,u=0;if(null!==a){for(var h=s(a);h>>=1;)++l;if(h=1<<l,--l,void 0!==i.background){if(h<=(u=i.background))throw new Error("Background index out of range.");if(0===u)throw new Error("Background index explicitly passed as 0.")}}if(e[n++]=255&t,e[n++]=t>>8&255,e[n++]=255&r,e[n++]=r>>8&255,e[n++]=(null!==a?128:0)|l,e[n++]=u,e[n++]=0,null!==a)for(var c=0,d=a.length;c<d;++c){var f=a[c];e[n++]=f>>16&255,e[n++]=f>>8&255,e[n++]=255&f}if(null!==o){if(o<0||65535<o)throw new Error("Loop count invalid.");e[n++]=33,e[n++]=255,e[n++]=11,e[n++]=78,e[n++]=69,e[n++]=84,e[n++]=83,e[n++]=67,e[n++]=65,e[n++]=80,e[n++]=69,e[n++]=50,e[n++]=46,e[n++]=48,e[n++]=3,e[n++]=1,e[n++]=255&o,e[n++]=o>>8&255,e[n++]=0}var p=!1;this.addFrame=function(t,r,i,o,l,u){if(!0===p&&(--n,p=!1),u=void 0===u?{}:u,t<0||r<0||65535<t||65535<r)throw new Error("x/y invalid.");if(i<=0||o<=0||65535<i||65535<o)throw new Error("Width/Height invalid.");if(l.length<i*o)throw new Error("Not enough pixels for the frame size.");var h=!0,c=u.palette;if(null==c&&(h=!1,c=a),null==c)throw new Error("Must supply either a local or global palette.");for(var d=s(c),f=0;d>>=1;)++f;d=1<<f;var m=void 0===u.delay?0:u.delay,y=void 0===u.disposal?0:u.disposal;if(y<0||3<y)throw new Error("Disposal out of range.");var v=!1,g=0;if(void 0!==u.transparent&&null!==u.transparent&&(v=!0,(g=u.transparent)<0||d<=g))throw new Error("Transparent color index.");if(0===y&&!v&&0===m||(e[n++]=33,e[n++]=249,e[n++]=4,e[n++]=y<<2|(!0===v?1:0),e[n++]=255&m,e[n++]=m>>8&255,e[n++]=g,e[n++]=0),e[n++]=44,e[n++]=255&t,e[n++]=t>>8&255,e[n++]=255&r,e[n++]=r>>8&255,e[n++]=255&i,e[n++]=i>>8&255,e[n++]=255&o,e[n++]=o>>8&255,e[n++]=!0===h?128|f-1:0,!0===h)for(var b=0,_=c.length;b<_;++b){var x=c[b];e[n++]=x>>16&255,e[n++]=x>>8&255,e[n++]=255&x}return n=function(e,t,r,i){e[t++]=r;var n=t++,o=1<<r,a=o-1,s=1+o,l=1+s,u=r+1,h=0,c=0;function d(r){for(;r<=h;)e[t++]=255&c,c>>=8,h-=8,t===n+256&&(e[n]=255,n=t++)}function f(e){c|=e<<h,h+=u,d(8)}var p=i[0]&a,m={};f(o);for(var y=1,v=i.length;y<v;++y){var g=i[y]&a,b=p<<8|g,_=m[b];if(void 0===_){for(c|=p<<h,h+=u;8<=h;)e[t++]=255&c,c>>=8,h-=8,t===n+256&&(e[n]=255,n=t++);4096===l?(f(o),l=1+s,u=r+1,m={}):(1<<u<=l&&++u,m[b]=l++),p=g}else p=_}return f(p),f(s),d(1),n+1===t?e[n]=0:(e[n]=t-n-1,e[t++]=0),t}(e,n,f<2?2:f,l)},this.end=function(){return!1===p&&(e[n++]=59,p=!0),n},this.getOutputBuffer=function(){return e},this.setOutputBuffer=function(t){e=t},this.getOutputBufferPosition=function(){return n},this.setOutputBufferPosition=function(e){n=e}},r.GifReader=function(e){var t=0;if(71!==e[t++]||73!==e[t++]||70!==e[t++]||56!==e[t++]||56!=(e[t++]+1&253)||97!==e[t++])throw new Error("Invalid GIF 87a/89a header.");var r=e[t++]|e[t++]<<8,n=e[t++]|e[t++]<<8,o=e[t++],a=o>>7,s=1<<1+(7&o);e[t++],e[t++];var l=null,u=null;a&&(l=t,t+=3*(u=s));var h=!0,c=[],d=0,f=null,p=0,m=null;for(this.width=r,this.height=n;h&&t<e.length;)switch(e[t++]){case 33:switch(e[t++]){case 255:if(11!==e[t]||78==e[t+1]&&69==e[t+2]&&84==e[t+3]&&83==e[t+4]&&67==e[t+5]&&65==e[t+6]&&80==e[t+7]&&69==e[t+8]&&50==e[t+9]&&46==e[t+10]&&48==e[t+11]&&3==e[t+12]&&1==e[t+13]&&0==e[t+16])t+=14,m=e[t++]|e[t++]<<8,t++;else for(t+=12;;){if(!(0<=(C=e[t++])))throw Error("Invalid block size");if(0===C)break;t+=C}break;case 249:if(4!==e[t++]||0!==e[t+4])throw new Error("Invalid graphics extension block.");var y=e[t++];d=e[t++]|e[t++]<<8,f=e[t++],0==(1&y)&&(f=null),p=y>>2&7,t++;break;case 254:for(;;){if(!(0<=(C=e[t++])))throw Error("Invalid block size");if(0===C)break;t+=C}break;default:throw new Error("Unknown graphic control label: 0x"+e[t-1].toString(16))}break;case 44:var v=e[t++]|e[t++]<<8,g=e[t++]|e[t++]<<8,b=e[t++]|e[t++]<<8,_=e[t++]|e[t++]<<8,x=e[t++],w=x>>6&1,S=l,M=u,E=!1;x>>7&&(E=!0,S=t,t+=3*(M=1<<1+(7&x)));var T=t;for(t++;;){var C;if(!(0<=(C=e[t++])))throw Error("Invalid block size");if(0===C)break;t+=C}c.push({x:v,y:g,width:b,height:_,has_local_palette:E,palette_offset:S,palette_size:M,data_offset:T,data_length:t-T,transparent_index:f,interlaced:!!w,delay:d,disposal:p});break;case 59:h=!1;break;default:throw new Error("Unknown gif block: 0x"+e[t-1].toString(16))}this.numFrames=function(){return c.length},this.loopCount=function(){return m},this.frameInfo=function(e){if(e<0||e>=c.length)throw new Error("Frame index out of range.");return c[e]},this.decodeAndBlitFrameBGRA=function(t,n){var o=this.frameInfo(t),a=o.width*o.height,s=new Uint8Array(a);i(e,o.data_offset,s,a);var l=o.palette_offset,u=o.transparent_index;null===u&&(u=256);var h=o.width,c=r-h,d=h,f=4*(o.y*r+o.x),p=4*((o.y+o.height)*r+o.x),m=f,y=4*c;!0===o.interlaced&&(y+=4*r*7);for(var v=8,g=0,b=s.length;g<b;++g){var _=s[g];if(0===d&&(d=h,p<=(m+=y)&&(y=4*c+4*r*(v-1),m=f+(h+c)*(v<<1),v>>=1)),_===u)m+=4;else{var x=e[l+3*_],w=e[l+3*_+1],S=e[l+3*_+2];n[m++]=S,n[m++]=w,n[m++]=x,n[m++]=255}--d}},this.decodeAndBlitFrameRGBA=function(t,n){var o=this.frameInfo(t),a=o.width*o.height,s=new Uint8Array(a);i(e,o.data_offset,s,a);var l=o.palette_offset,u=o.transparent_index;null===u&&(u=256);var h=o.width,c=r-h,d=h,f=4*(o.y*r+o.x),p=4*((o.y+o.height)*r+o.x),m=f,y=4*c;!0===o.interlaced&&(y+=4*r*7);for(var v=8,g=0,b=s.length;g<b;++g){var _=s[g];if(0===d&&(d=h,p<=(m+=y)&&(y=4*c+4*r*(v-1),m=f+(h+c)*(v<<1),v>>=1)),_===u)m+=4;else{var x=e[l+3*_],w=e[l+3*_+1],S=e[l+3*_+2];n[m++]=x,n[m++]=w,n[m++]=S,n[m++]=255}--d}}}}catch(e){}},{}],12:[function(e,t,r){(function(i){!function(t){"use strict";function r(e){if(null==this)throw TypeError();var t=String(this),r=t.length,i=e?Number(e):0;if(i!=i&&(i=0),!(i<0||r<=i)){var n,o=t.charCodeAt(i);return 55296<=o&&o<=56319&&i+1<r&&56320<=(n=t.charCodeAt(i+1))&&n<=57343?1024*(o-55296)+n-56320+65536:o}}var n;String.prototype.codePointAt||((n=function(){try{var e={},t=Object.defineProperty,r=t(e,e,e)&&t}catch(e){}return r}())?n(String.prototype,"codePointAt",{value:r,configurable:!0,writable:!0}):String.prototype.codePointAt=r);function o(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function a(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new o,this.dtree=new o}var s=new o,l=new o,u=new Uint8Array(30),h=new Uint16Array(30),c=new Uint8Array(30),d=new Uint16Array(30),f=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),p=new o,m=new Uint8Array(320);function y(e,t,r,i){var n,o;for(n=0;n<r;++n)e[n]=0;for(n=0;n<30-r;++n)e[n+r]=n/r|0;for(o=i,n=0;n<30;++n)t[n]=o,o+=1<<e[n]}var v=new Uint16Array(16);function g(e,t,r,i){var n,o;for(n=0;n<16;++n)e.table[n]=0;for(n=0;n<i;++n)e.table[t[r+n]]++;for(n=o=e.table[0]=0;n<16;++n)v[n]=o,o+=e.table[n];for(n=0;n<i;++n)t[r+n]&&(e.trans[v[t[r+n]]++]=n)}function b(e){e.bitcount--||(e.tag=e.source[e.sourceIndex++],e.bitcount=7);var t=1&e.tag;return e.tag>>>=1,t}function _(e,t,r){if(!t)return r;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var i=e.tag&65535>>>16-t;return e.tag>>>=t,e.bitcount-=t,i+r}function x(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;for(var r=0,i=0,n=0,o=e.tag;i=2*i+(1&o),o>>>=1,++n,r+=t.table[n],0<=(i-=t.table[n]););return e.tag=o,e.bitcount-=n,t.trans[r+i]}function w(e,t,r){var i,n,o,a,s,l;for(i=_(e,5,257),n=_(e,5,1),o=_(e,4,4),a=0;a<19;++a)m[a]=0;for(a=0;a<o;++a){var u=_(e,3,0);m[f[a]]=u}for(g(p,m,0,19),s=0;s<i+n;){var h=x(e,p);switch(h){case 16:var c=m[s-1];for(l=_(e,2,3);l;--l)m[s++]=c;break;case 17:for(l=_(e,3,3);l;--l)m[s++]=0;break;case 18:for(l=_(e,7,11);l;--l)m[s++]=0;break;default:m[s++]=h}}g(t,m,0,i),g(r,m,i,n)}function S(e,t,r){for(;;){var i,n,o,a,s=x(e,t);if(256===s)return 0;if(s<256)e.dest[e.destLen++]=s;else for(i=_(e,u[s-=257],h[s]),n=x(e,r),a=o=e.destLen-_(e,c[n],d[n]);a<o+i;++a)e.dest[e.destLen++]=e.dest[a]}}function M(e){for(var t,r;8<e.bitcount;)e.sourceIndex--,e.bitcount-=8;if((t=256*(t=e.source[e.sourceIndex+1])+e.source[e.sourceIndex])!==(65535&~(256*e.source[e.sourceIndex+3]+e.source[e.sourceIndex+2])))return-3;for(e.sourceIndex+=4,r=t;r;--r)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,0}!function(e,t){var r;for(r=0;r<7;++r)e.table[r]=0;for(e.table[7]=24,e.table[8]=152,e.table[9]=112,r=0;r<24;++r)e.trans[r]=256+r;for(r=0;r<144;++r)e.trans[24+r]=r;for(r=0;r<8;++r)e.trans[168+r]=280+r;for(r=0;r<112;++r)e.trans[176+r]=144+r;for(r=0;r<5;++r)t.table[r]=0;for(t.table[5]=32,r=0;r<32;++r)t.trans[r]=r}(s,l),y(u,h,4,3),y(c,d,2,1),u[28]=0,h[28]=258;function E(e,t,r,i,n){return Math.pow(1-n,3)*e+3*Math.pow(1-n,2)*n*t+3*(1-n)*Math.pow(n,2)*r+Math.pow(n,3)*i}function T(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}function C(){this.commands=[],this.fill="black",this.stroke=null,this.strokeWidth=1}function O(e){throw new Error(e)}function P(e,t){e||O(t)}T.prototype.isEmpty=function(){return isNaN(this.x1)||isNaN(this.y1)||isNaN(this.x2)||isNaN(this.y2)},T.prototype.addPoint=function(e,t){"number"==typeof e&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),e<this.x1&&(this.x1=e),e>this.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),t<this.y1&&(this.y1=t),t>this.y2&&(this.y2=t))},T.prototype.addX=function(e){this.addPoint(e,null)},T.prototype.addY=function(e){this.addPoint(null,e)},T.prototype.addBezier=function(e,t,r,i,n,o,a,s){var l=this,u=[e,t],h=[r,i],c=[n,o],d=[a,s];this.addPoint(e,t),this.addPoint(a,s);for(var f=0;f<=1;f++){var p=6*u[f]-12*h[f]+6*c[f],m=-3*u[f]+9*h[f]-9*c[f]+3*d[f],y=3*h[f]-3*u[f];if(0!=m){var v=Math.pow(p,2)-4*y*m;if(!(v<0)){var g=(-p+Math.sqrt(v))/(2*m);0<g&&g<1&&(0===f&&l.addX(E(u[f],h[f],c[f],d[f],g)),1===f&&l.addY(E(u[f],h[f],c[f],d[f],g)));var b=(-p-Math.sqrt(v))/(2*m);0<b&&b<1&&(0===f&&l.addX(E(u[f],h[f],c[f],d[f],b)),1===f&&l.addY(E(u[f],h[f],c[f],d[f],b)))}}else{if(0==p)continue;var _=-y/p;0<_&&_<1&&(0===f&&l.addX(E(u[f],h[f],c[f],d[f],_)),1===f&&l.addY(E(u[f],h[f],c[f],d[f],_)))}}},T.prototype.addQuad=function(e,t,r,i,n,o){var a=e+2/3*(r-e),s=t+2/3*(i-t),l=a+1/3*(n-e),u=s+1/3*(o-t);this.addBezier(e,t,a,s,l,u,n,o)},C.prototype.moveTo=function(e,t){this.commands.push({type:"M",x:e,y:t})},C.prototype.lineTo=function(e,t){this.commands.push({type:"L",x:e,y:t})},C.prototype.curveTo=C.prototype.bezierCurveTo=function(e,t,r,i,n,o){this.commands.push({type:"C",x1:e,y1:t,x2:r,y2:i,x:n,y:o})},C.prototype.quadTo=C.prototype.quadraticCurveTo=function(e,t,r,i){this.commands.push({type:"Q",x1:e,y1:t,x:r,y:i})},C.prototype.close=C.prototype.closePath=function(){this.commands.push({type:"Z"})},C.prototype.extend=function(e){if(e.commands)e=e.commands;else if(e instanceof T){var t=e;return this.moveTo(t.x1,t.y1),this.lineTo(t.x2,t.y1),this.lineTo(t.x2,t.y2),this.lineTo(t.x1,t.y2),void this.close()}Array.prototype.push.apply(this.commands,e)},C.prototype.getBoundingBox=function(){for(var e=new T,t=0,r=0,i=0,n=0,o=0;o<this.commands.length;o++){var a=this.commands[o];switch(a.type){case"M":e.addPoint(a.x,a.y),t=i=a.x,r=n=a.y;break;case"L":e.addPoint(a.x,a.y),i=a.x,n=a.y;break;case"Q":e.addQuad(i,n,a.x1,a.y1,a.x,a.y),i=a.x,n=a.y;break;case"C":e.addBezier(i,n,a.x1,a.y1,a.x2,a.y2,a.x,a.y),i=a.x,n=a.y;break;case"Z":i=t,n=r;break;default:throw new Error("Unexpected path command "+a.type)}}return e.isEmpty()&&e.addPoint(0,0),e},C.prototype.draw=function(e){e.beginPath();for(var t=0;t<this.commands.length;t+=1){var r=this.commands[t];"M"===r.type?e.moveTo(r.x,r.y):"L"===r.type?e.lineTo(r.x,r.y):"C"===r.type?e.bezierCurveTo(r.x1,r.y1,r.x2,r.y2,r.x,r.y):"Q"===r.type?e.quadraticCurveTo(r.x1,r.y1,r.x,r.y):"Z"===r.type&&e.closePath()}this.fill&&(e.fillStyle=this.fill,e.fill()),this.stroke&&(e.strokeStyle=this.stroke,e.lineWidth=this.strokeWidth,e.stroke())},C.prototype.toPathData=function(e){function t(){for(var t,r=arguments,i="",n=0;n<arguments.length;n+=1){var o=r[n];0<=o&&0<n&&(i+=" "),i+=(t=o,Math.round(t)===t?""+Math.round(t):t.toFixed(e))}return i}e=void 0!==e?e:2;for(var r="",i=0;i<this.commands.length;i+=1){var n=this.commands[i];"M"===n.type?r+="M"+t(n.x,n.y):"L"===n.type?r+="L"+t(n.x,n.y):"C"===n.type?r+="C"+t(n.x1,n.y1,n.x2,n.y2,n.x,n.y):"Q"===n.type?r+="Q"+t(n.x1,n.y1,n.x,n.y):"Z"===n.type&&(r+="Z")}return r},C.prototype.toSVG=function(e){var t='<path d="';return t+=this.toPathData(e),t+='"',this.fill&&"black"!==this.fill&&(null===this.fill?t+=' fill="none"':t+=' fill="'+this.fill+'"'),this.stroke&&(t+=' stroke="'+this.stroke+'" stroke-width="'+this.strokeWidth+'"'),t+"/>"},C.prototype.toDOMElement=function(e){var t=this.toPathData(e),r=document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",t),r};var L={fail:O,argument:P,assert:P},k=2147483648,A={},R={},D={};function I(e){return function(){return e}}R.BYTE=function(e){return L.argument(0<=e&&e<=255,"Byte value should be between 0 and 255."),[e]},D.BYTE=I(1),R.CHAR=function(e){return[e.charCodeAt(0)]},D.CHAR=I(1),R.CHARARRAY=function(e){for(var t=[],r=0;r<e.length;r+=1)t[r]=e.charCodeAt(r);return t},D.CHARARRAY=function(e){return e.length},R.USHORT=function(e){return[e>>8&255,255&e]},D.USHORT=I(2),R.SHORT=function(e){return 32768<=e&&(e=-(65536-e)),[e>>8&255,255&e]},D.SHORT=I(2),R.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},D.UINT24=I(3),R.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},D.ULONG=I(4),R.LONG=function(e){return k<=e&&(e=-(2*k-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},D.LONG=I(4),R.FIXED=R.ULONG,D.FIXED=D.ULONG,R.FWORD=R.SHORT,D.FWORD=D.SHORT,R.UFWORD=R.USHORT,D.UFWORD=D.USHORT,R.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},D.LONGDATETIME=I(8),R.TAG=function(e){return L.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},D.TAG=I(4),R.Card8=R.BYTE,D.Card8=D.BYTE,R.Card16=R.USHORT,D.Card16=D.USHORT,R.OffSize=R.BYTE,D.OffSize=D.BYTE,R.SID=R.USHORT,D.SID=D.USHORT,R.NUMBER=function(e){return-107<=e&&e<=107?[e+139]:108<=e&&e<=1131?[247+((e-=108)>>8),255&e]:-1131<=e&&e<=-108?[251+((e=-e-108)>>8),255&e]:-32768<=e&&e<=32767?R.NUMBER16(e):R.NUMBER32(e)},D.NUMBER=function(e){return R.NUMBER(e).length},R.NUMBER16=function(e){return[28,e>>8&255,255&e]},D.NUMBER16=I(3),R.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},D.NUMBER32=I(5),R.REAL=function(e){var t=e.toString(),r=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(r){var i=parseFloat("1e"+((r[2]?+r[2]:0)+r[1].length));t=(Math.round(e*i)/i).toString()}for(var n="",o=0,a=t.length;o<a;o+=1){var s=t[o];n+="e"===s?"-"===t[++o]?"c":"b":"."===s?"a":"-"===s?"e":s}for(var l=[30],u=0,h=(n+=1&n.length?"f":"ff").length;u<h;u+=2)l.push(parseInt(n.substr(u,2),16));return l},D.REAL=function(e){return R.REAL(e).length},R.NAME=R.CHARARRAY,D.NAME=D.CHARARRAY,R.STRING=R.CHARARRAY,D.STRING=D.CHARARRAY,A.UTF8=function(e,t,r){for(var i=[],n=r,o=0;o<n;o++,t+=1)i[o]=e.getUint8(t);return String.fromCharCode.apply(null,i)},A.UTF16=function(e,t,r){for(var i=[],n=r/2,o=0;o<n;o++,t+=2)i[o]=e.getUint16(t);return String.fromCharCode.apply(null,i)},R.UTF16=function(e){for(var t=[],r=0;r<e.length;r+=1){var i=e.charCodeAt(r);t[t.length]=i>>8&255,t[t.length]=255&i}return t},D.UTF16=function(e){return 2*e.length};var U={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ­","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};A.MACSTRING=function(e,t,r,i){var n=U[i];if(void 0!==n){for(var o="",a=0;a<r;a++){var s=e.getUint8(t+a);o+=s<=127?String.fromCharCode(s):n[127&s]}return o}};var N,F="function"==typeof WeakMap&&new WeakMap;function B(e){return-128<=e&&e<=127}function G(e,t,r){for(var i=0,n=e.length;t<n&&i<64&&0===e[t];)++t,++i;return r.push(128|i-1),t}function j(e,t,r){for(var i=0,n=e.length,o=t;o<n&&i<64;){var a=e[o];if(!B(a))break;if(0===a&&o+1<n&&0===e[o+1])break;++o,++i}r.push(i-1);for(var s=t;s<o;++s)r.push(e[s]+256&255);return o}function V(e,t,r){for(var i=0,n=e.length,o=t;o<n&&i<64;){var a=e[o];if(0===a)break;if(B(a)&&o+1<n&&B(e[o+1]))break;++o,++i}r.push(64|i-1);for(var s=t;s<o;++s){var l=e[s];r.push(l+65536>>8&255,l+256&255)}return o}R.MACSTRING=function(e,t){var r=function(e){if(!N)for(var t in N={},U)N[t]=new String(t);var r=N[e];if(void 0!==r){if(F){var i=F.get(r);if(void 0!==i)return i}var n=U[e];if(void 0!==n){for(var o={},a=0;a<n.length;a++)o[n.charCodeAt(a)]=a+128;return F&&F.set(r,o),o}}}(t);if(void 0!==r){for(var i=[],n=0;n<e.length;n++){var o=e.charCodeAt(n);if(128<=o&&void 0===(o=r[o]))return;i[n]=o}return i}},D.MACSTRING=function(e,t){var r=R.MACSTRING(e,t);return void 0!==r?r.length:0},R.VARDELTAS=function(e){for(var t=0,r=[];t<e.length;){var i=e[t];t=0===i?G(e,t,r):-128<=i&&i<=127?j(e,t,r):V(e,t,r)}return r},R.INDEX=function(e){for(var t=1,r=[t],i=[],n=0;n<e.length;n+=1){var o=R.OBJECT(e[n]);Array.prototype.push.apply(i,o),t+=o.length,r.push(t)}if(0===i.length)return[0,0];for(var a=[],s=1+Math.floor(Math.log(t)/Math.log(2))/8|0,l=[void 0,R.BYTE,R.USHORT,R.UINT24,R.ULONG][s],u=0;u<r.length;u+=1){var h=l(r[u]);Array.prototype.push.apply(a,h)}return Array.prototype.concat(R.Card16(e.length),R.OffSize(s),a,i)},D.INDEX=function(e){return R.INDEX(e).length},R.DICT=function(e){for(var t=[],r=Object.keys(e),i=r.length,n=0;n<i;n+=1){var o=parseInt(r[n],0),a=e[o];t=(t=t.concat(R.OPERAND(a.value,a.type))).concat(R.OPERATOR(o))}return t},D.DICT=function(e){return R.DICT(e).length},R.OPERATOR=function(e){return e<1200?[e]:[12,e-1200]},R.OPERAND=function(e,t){var r=[];if(Array.isArray(t))for(var i=0;i<t.length;i+=1)L.argument(e.length===t.length,"Not enough arguments given for type"+t),r=r.concat(R.OPERAND(e[i],t[i]));else if("SID"===t)r=r.concat(R.NUMBER(e));else if("offset"===t)r=r.concat(R.NUMBER32(e));else if("number"===t)r=r.concat(R.NUMBER(e));else{if("real"!==t)throw new Error("Unknown operand type "+t);r=r.concat(R.REAL(e))}return r},R.OP=R.BYTE,D.OP=D.BYTE;var z="function"==typeof WeakMap&&new WeakMap;function H(e,t,r){for(var i=0;i<t.length;i+=1){var n=t[i];this[n.name]=n.value}if(this.tableName=e,this.fields=t,r)for(var o=Object.keys(r),a=0;a<o.length;a+=1){var s=o[a],l=r[s];void 0!==this[s]&&(this[s]=l)}}function W(e,t,r){void 0===r&&(r=t.length);var i=new Array(t.length+1);i[0]={name:e+"Count",type:"USHORT",value:r};for(var n=0;n<t.length;n++)i[n+1]={name:e+n,type:"USHORT",value:t[n]};return i}function q(e,t,r){var i=t.length,n=new Array(i+1);n[0]={name:e+"Count",type:"USHORT",value:i};for(var o=0;o<i;o++)n[o+1]={name:e+o,type:"TABLE",value:r(t[o],o)};return n}function X(e,t,r){var i=t.length,n=[];n[0]={name:e+"Count",type:"USHORT",value:i};for(var o=0;o<i;o++)n=n.concat(r(t[o],o));return n}function Y(e){1===e.format?H.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:1}].concat(W("glyph",e.glyphs))):L.assert(!1,"Can't create coverage table format 2 yet.")}function Z(e){H.call(this,"scriptListTable",X("scriptRecord",e,(function(e,t){var r=e.script,i=r.defaultLangSys;return L.assert(!!i,"Unable to write GSUB: script "+e.tag+" has no default language system."),[{name:"scriptTag"+t,type:"TAG",value:e.tag},{name:"script"+t,type:"TABLE",value:new H("scriptTable",[{name:"defaultLangSys",type:"TABLE",value:new H("defaultLangSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:i.reqFeatureIndex}].concat(W("featureIndex",i.featureIndexes)))}].concat(X("langSys",r.langSysRecords,(function(e,t){var r=e.langSys;return[{name:"langSysTag"+t,type:"TAG",value:e.tag},{name:"langSys"+t,type:"TABLE",value:new H("langSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:r.reqFeatureIndex}].concat(W("featureIndex",r.featureIndexes)))}]}))))}]})))}function Q(e){H.call(this,"featureListTable",X("featureRecord",e,(function(e,t){var r=e.feature;return[{name:"featureTag"+t,type:"TAG",value:e.tag},{name:"feature"+t,type:"TABLE",value:new H("featureTable",[{name:"featureParams",type:"USHORT",value:r.featureParams}].concat(W("lookupListIndex",r.lookupListIndexes)))}]})))}function K(e,t){H.call(this,"lookupListTable",q("lookup",e,(function(e){var r=t[e.lookupType];return L.assert(!!r,"Unable to write GSUB lookup type "+e.lookupType+" tables."),new H("lookupTable",[{name:"lookupType",type:"USHORT",value:e.lookupType},{name:"lookupFlag",type:"USHORT",value:e.lookupFlag}].concat(q("subtable",e.subtables,r)))})))}R.CHARSTRING=function(e){if(z){var t=z.get(e);if(void 0!==t)return t}for(var r=[],i=e.length,n=0;n<i;n+=1){var o=e[n];r=r.concat(R[o.type](o.value))}return z&&z.set(e,r),r},D.CHARSTRING=function(e){return R.CHARSTRING(e).length},R.OBJECT=function(e){var t=R[e.type];return L.argument(void 0!==t,"No encoding function for type "+e.type),t(e.value)},D.OBJECT=function(e){var t=D[e.type];return L.argument(void 0!==t,"No sizeOf function for type "+e.type),t(e.value)},R.TABLE=function(e){for(var t=[],r=e.fields.length,i=[],n=[],o=0;o<r;o+=1){var a=e.fields[o],s=R[a.type];L.argument(void 0!==s,"No encoding function for field type "+a.type+" ("+a.name+")");var l=e[a.name];void 0===l&&(l=a.value);var u=s(l);"TABLE"===a.type?(n.push(t.length),t=t.concat([0,0]),i.push(u)):t=t.concat(u)}for(var h=0;h<i.length;h+=1){var c=n[h],d=t.length;L.argument(d<65536,"Table "+e.tableName+" too big."),t[c]=d>>8,t[c+1]=255&d,t=t.concat(i[h])}return t},D.TABLE=function(e){for(var t=0,r=e.fields.length,i=0;i<r;i+=1){var n=e.fields[i],o=D[n.type];L.argument(void 0!==o,"No sizeOf function for field type "+n.type+" ("+n.name+")");var a=e[n.name];void 0===a&&(a=n.value),t+=o(a),"TABLE"===n.type&&(t+=2)}return t},R.RECORD=R.TABLE,D.RECORD=D.TABLE,R.LITERAL=function(e){return e},D.LITERAL=function(e){return e.length},H.prototype.encode=function(){return R.TABLE(this)},H.prototype.sizeOf=function(){return D.TABLE(this)};var J={Table:H,Record:H,Coverage:(Y.prototype=Object.create(H.prototype)).constructor=Y,ScriptList:(Z.prototype=Object.create(H.prototype)).constructor=Z,FeatureList:(Q.prototype=Object.create(H.prototype)).constructor=Q,LookupList:(K.prototype=Object.create(H.prototype)).constructor=K,ushortList:W,tableList:q,recordList:X};function $(e,t){return e.getUint8(t)}function ee(e,t){return e.getUint16(t,!1)}function te(e,t){return e.getUint32(t,!1)}function re(e,t){return e.getInt16(t,!1)+e.getUint16(t+2,!1)/65535}var ie={byte:1,uShort:2,short:2,uLong:4,fixed:4,longDateTime:8,tag:4};function ne(e,t){this.data=e,this.offset=t,this.relativeOffset=0}ne.prototype.parseByte=function(){var e=this.data.getUint8(this.offset+this.relativeOffset);return this.relativeOffset+=1,e},ne.prototype.parseChar=function(){var e=this.data.getInt8(this.offset+this.relativeOffset);return this.relativeOffset+=1,e},ne.prototype.parseCard8=ne.prototype.parseByte,ne.prototype.parseCard16=ne.prototype.parseUShort=function(){var e=this.data.getUint16(this.offset+this.relativeOffset);return this.relativeOffset+=2,e},ne.prototype.parseSID=ne.prototype.parseUShort,ne.prototype.parseOffset16=ne.prototype.parseUShort,ne.prototype.parseShort=function(){var e=this.data.getInt16(this.offset+this.relativeOffset);return this.relativeOffset+=2,e},ne.prototype.parseF2Dot14=function(){var e=this.data.getInt16(this.offset+this.relativeOffset)/16384;return this.relativeOffset+=2,e},ne.prototype.parseOffset32=ne.prototype.parseULong=function(){var e=te(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,e},ne.prototype.parseFixed=function(){var e=re(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,e},ne.prototype.parseString=function(e){var t=this.data,r=this.offset+this.relativeOffset,i="";this.relativeOffset+=e;for(var n=0;n<e;n++)i+=String.fromCharCode(t.getUint8(r+n));return i},ne.prototype.parseTag=function(){return this.parseString(4)},ne.prototype.parseLongDateTime=function(){var e=te(this.data,this.offset+this.relativeOffset+4);return e-=2082844800,this.relativeOffset+=8,e},ne.prototype.parseVersion=function(e){var t=ee(this.data,this.offset+this.relativeOffset),r=ee(this.data,this.offset+this.relativeOffset+2);return this.relativeOffset+=4,void 0===e&&(e=4096),t+r/e/10},ne.prototype.skip=function(e,t){void 0===t&&(t=1),this.relativeOffset+=ie[e]*t},ne.prototype.parseULongList=function(e){void 0===e&&(e=this.parseULong());for(var t=new Array(e),r=this.data,i=this.offset+this.relativeOffset,n=0;n<e;n++)t[n]=r.getUint32(i),i+=4;return this.relativeOffset+=4*e,t},ne.prototype.parseOffset16List=ne.prototype.parseUShortList=function(e){void 0===e&&(e=this.parseUShort());for(var t=new Array(e),r=this.data,i=this.offset+this.relativeOffset,n=0;n<e;n++)t[n]=r.getUint16(i),i+=2;return this.relativeOffset+=2*e,t},ne.prototype.parseShortList=function(e){for(var t=new Array(e),r=this.data,i=this.offset+this.relativeOffset,n=0;n<e;n++)t[n]=r.getInt16(i),i+=2;return this.relativeOffset+=2*e,t},ne.prototype.parseByteList=function(e){for(var t=new Array(e),r=this.data,i=this.offset+this.relativeOffset,n=0;n<e;n++)t[n]=r.getUint8(i++);return this.relativeOffset+=e,t},ne.prototype.parseList=function(e,t){t||(t=e,e=this.parseUShort());for(var r=new Array(e),i=0;i<e;i++)r[i]=t.call(this);return r},ne.prototype.parseList32=function(e,t){t||(t=e,e=this.parseULong());for(var r=new Array(e),i=0;i<e;i++)r[i]=t.call(this);return r},ne.prototype.parseRecordList=function(e,t){t||(t=e,e=this.parseUShort());for(var r=new Array(e),i=Object.keys(t),n=0;n<e;n++){for(var o={},a=0;a<i.length;a++){var s=i[a],l=t[s];o[s]=l.call(this)}r[n]=o}return r},ne.prototype.parseRecordList32=function(e,t){t||(t=e,e=this.parseULong());for(var r=new Array(e),i=Object.keys(t),n=0;n<e;n++){for(var o={},a=0;a<i.length;a++){var s=i[a],l=t[s];o[s]=l.call(this)}r[n]=o}return r},ne.prototype.parseStruct=function(e){if("function"==typeof e)return e.call(this);for(var t=Object.keys(e),r={},i=0;i<t.length;i++){var n=t[i],o=e[n];r[n]=o.call(this)}return r},ne.prototype.parseValueRecord=function(e){if(void 0===e&&(e=this.parseUShort()),0!==e){var t={};return 1&e&&(t.xPlacement=this.parseShort()),2&e&&(t.yPlacement=this.parseShort()),4&e&&(t.xAdvance=this.parseShort()),8&e&&(t.yAdvance=this.parseShort()),16&e&&(t.xPlaDevice=void 0,this.parseShort()),32&e&&(t.yPlaDevice=void 0,this.parseShort()),64&e&&(t.xAdvDevice=void 0,this.parseShort()),128&e&&(t.yAdvDevice=void 0,this.parseShort()),t}},ne.prototype.parseValueRecordList=function(){for(var e=this.parseUShort(),t=this.parseUShort(),r=new Array(t),i=0;i<t;i++)r[i]=this.parseValueRecord(e);return r},ne.prototype.parsePointer=function(e){var t=this.parseOffset16();if(0<t)return new ne(this.data,this.offset+t).parseStruct(e)},ne.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(0<t)return new ne(this.data,this.offset+t).parseStruct(e)},ne.prototype.parseListOfLists=function(e){for(var t=this,r=this.parseOffset16List(),i=r.length,n=this.relativeOffset,o=new Array(i),a=0;a<i;a++){var s=r[a];if(0!==s)if(t.relativeOffset=s,e){for(var l=t.parseOffset16List(),u=new Array(l.length),h=0;h<l.length;h++)t.relativeOffset=s+l[h],u[h]=e.call(t);o[a]=u}else o[a]=t.parseUShortList();else o[a]=void 0}return this.relativeOffset=n,o},ne.prototype.parseCoverage=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort(),r=this.parseUShort();if(1===t)return{format:1,glyphs:this.parseUShortList(r)};if(2!==t)throw new Error("0x"+e.toString(16)+": Coverage format must be 1 or 2.");for(var i=new Array(r),n=0;n<r;n++)i[n]={start:this.parseUShort(),end:this.parseUShort(),index:this.parseUShort()};return{format:2,ranges:i}},ne.prototype.parseClassDef=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(1===t)return{format:1,startGlyph:this.parseUShort(),classes:this.parseUShortList()};if(2===t)return{format:2,ranges:this.parseRecordList({start:ne.uShort,end:ne.uShort,classId:ne.uShort})};throw new Error("0x"+e.toString(16)+": ClassDef format must be 1 or 2.")},ne.list=function(e,t){return function(){return this.parseList(e,t)}},ne.list32=function(e,t){return function(){return this.parseList32(e,t)}},ne.recordList=function(e,t){return function(){return this.parseRecordList(e,t)}},ne.recordList32=function(e,t){return function(){return this.parseRecordList32(e,t)}},ne.pointer=function(e){return function(){return this.parsePointer(e)}},ne.pointer32=function(e){return function(){return this.parsePointer32(e)}},ne.tag=ne.prototype.parseTag,ne.byte=ne.prototype.parseByte,ne.uShort=ne.offset16=ne.prototype.parseUShort,ne.uShortList=ne.prototype.parseUShortList,ne.uLong=ne.offset32=ne.prototype.parseULong,ne.uLongList=ne.prototype.parseULongList,ne.struct=ne.prototype.parseStruct,ne.coverage=ne.prototype.parseCoverage,ne.classDef=ne.prototype.parseClassDef;var oe={reserved:ne.uShort,reqFeatureIndex:ne.uShort,featureIndexes:ne.uShortList};ne.prototype.parseScriptList=function(){return this.parsePointer(ne.recordList({tag:ne.tag,script:ne.pointer({defaultLangSys:ne.pointer(oe),langSysRecords:ne.recordList({tag:ne.tag,langSys:ne.pointer(oe)})})}))||[]},ne.prototype.parseFeatureList=function(){return this.parsePointer(ne.recordList({tag:ne.tag,feature:ne.pointer({featureParams:ne.offset16,lookupListIndexes:ne.uShortList})}))||[]},ne.prototype.parseLookupList=function(e){return this.parsePointer(ne.list(ne.pointer((function(){var t=this.parseUShort();L.argument(1<=t&&t<=9,"GPOS/GSUB lookup type "+t+" unknown.");var r=this.parseUShort(),i=16&r;return{lookupType:t,lookupFlag:r,subtables:this.parseList(ne.pointer(e[t])),markFilteringSet:i?this.parseUShort():void 0}}))))||[]},ne.prototype.parseFeatureVariationsList=function(){return this.parsePointer32((function(){var e=this.parseUShort(),t=this.parseUShort();return L.argument(1===e&&t<1,"GPOS/GSUB feature variations table unknown."),this.parseRecordList32({conditionSetOffset:ne.offset32,featureTableSubstitutionOffset:ne.offset32})}))||[]};var ae={getByte:$,getCard8:$,getUShort:ee,getCard16:ee,getShort:function(e,t){return e.getInt16(t,!1)},getULong:te,getFixed:re,getTag:function(e,t){for(var r="",i=t;i<t+4;i+=1)r+=String.fromCharCode(e.getInt8(i));return r},getOffset:function(e,t,r){for(var i=0,n=0;n<r;n+=1)i<<=8,i+=e.getUint8(t+n);return i},getBytes:function(e,t,r){for(var i=[],n=t;n<r;n+=1)i.push(e.getUint8(n));return i},bytesToString:function(e){for(var t="",r=0;r<e.length;r+=1)t+=String.fromCharCode(e[r]);return t},Parser:ne},se=function(e,t){var r={};r.version=ae.getUShort(e,t),L.argument(0===r.version,"cmap table version should be 0."),r.numTables=ae.getUShort(e,t+2);for(var i=-1,n=r.numTables-1;0<=n;--n){var o=ae.getUShort(e,t+4+8*n),a=ae.getUShort(e,t+4+8*n+2);if(3===o&&(0===a||1===a||10===a)||0===o&&(0===a||1===a||2===a||3===a||4===a)){i=ae.getULong(e,t+4+8*n+4);break}}if(-1===i)throw new Error("No valid cmap sub-tables found.");var s=new ae.Parser(e,t+i);if(r.format=s.parseUShort(),12===r.format)!function(e,t){var r;t.parseUShort(),e.length=t.parseULong(),e.language=t.parseULong(),e.groupCount=r=t.parseULong(),e.glyphIndexMap={};for(var i=0;i<r;i+=1)for(var n=t.parseULong(),o=t.parseULong(),a=t.parseULong(),s=n;s<=o;s+=1)e.glyphIndexMap[s]=a,a++}(r,s);else{if(4!==r.format)throw new Error("Only format 4 and 12 cmap tables are supported (found format "+r.format+").");!function(e,t,r,i,n){var o;e.length=t.parseUShort(),e.language=t.parseUShort(),e.segCount=o=t.parseUShort()>>1,t.skip("uShort",3),e.glyphIndexMap={};for(var a=new ae.Parser(r,i+n+14),s=new ae.Parser(r,i+n+16+2*o),l=new ae.Parser(r,i+n+16+4*o),u=new ae.Parser(r,i+n+16+6*o),h=i+n+16+8*o,c=0;c<o-1;c+=1)for(var d=void 0,f=a.parseUShort(),p=s.parseUShort(),m=l.parseShort(),y=u.parseUShort(),v=p;v<=f;v+=1)0!==y?(h=u.offset+u.relativeOffset-2,h+=y,h+=2*(v-p),0!==(d=ae.getUShort(r,h))&&(d=d+m&65535)):d=v+m&65535,e.glyphIndexMap[v]=d}(r,s,e,t,i)}return r},le=function(e){var t,r=!0;for(t=e.length-1;0<t;--t)if(65535<e.get(t).unicode){console.log("Adding CMAP format 12 (needed!)"),r=!1;break}var i=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:r?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:r?12:20}];r||(i=i.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),i=i.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var n,o,a,s=new J.Table("cmap",i);for(s.segments=[],t=0;t<e.length;t+=1){for(var l=e.get(t),u=0;u<l.unicodes.length;u+=1)n=s,o=l.unicodes[u],a=t,n.segments.push({end:o,start:o,delta:-(o-a),offset:0,glyphIndex:a});s.segments=s.segments.sort((function(e,t){return e.start-t.start}))}s.segments.push({end:65535,start:65535,delta:1,offset:0});var h=s.segments.length,c=0,d=[],f=[],p=[],m=[],y=[],v=[];for(t=0;t<h;t+=1){var g=s.segments[t];g.end<=65535&&g.start<=65535?(d=d.concat({name:"end_"+t,type:"USHORT",value:g.end}),f=f.concat({name:"start_"+t,type:"USHORT",value:g.start}),p=p.concat({name:"idDelta_"+t,type:"SHORT",value:g.delta}),m=m.concat({name:"idRangeOffset_"+t,type:"USHORT",value:g.offset}),void 0!==g.glyphId&&(y=y.concat({name:"glyph_"+t,type:"USHORT",value:g.glyphId}))):c+=1,r||void 0===g.glyphIndex||(v=(v=(v=v.concat({name:"cmap12Start_"+t,type:"ULONG",value:g.start})).concat({name:"cmap12End_"+t,type:"ULONG",value:g.end})).concat({name:"cmap12Glyph_"+t,type:"ULONG",value:g.glyphIndex}))}if(s.segCountX2=2*(h-c),s.searchRange=2*Math.pow(2,Math.floor(Math.log(h-c)/Math.log(2))),s.entrySelector=Math.log(s.searchRange/2)/Math.log(2),s.rangeShift=s.segCountX2-s.searchRange,s.fields=s.fields.concat(d),s.fields.push({name:"reservedPad",type:"USHORT",value:0}),s.fields=s.fields.concat(f),s.fields=s.fields.concat(p),s.fields=s.fields.concat(m),s.fields=s.fields.concat(y),s.cmap4Length=14+2*d.length+2+2*f.length+2*p.length+2*m.length+2*y.length,!r){var b=16+4*v.length;s.cmap12Offset=20+s.cmap4Length,s.fields=s.fields.concat([{name:"cmap12Format",type:"USHORT",value:12},{name:"cmap12Reserved",type:"USHORT",value:0},{name:"cmap12Length",type:"ULONG",value:b},{name:"cmap12Language",type:"ULONG",value:0},{name:"cmap12nGroups",type:"ULONG",value:v.length/3}]),s.fields=s.fields.concat(v)}return s},ue=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],he=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],ce=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],de=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function fe(e){this.font=e}function pe(e){this.cmap=e}function me(e,t){this.encoding=e,this.charset=t}function ye(e){switch(e.version){case 1:this.names=de.slice();break;case 2:this.names=new Array(e.numberOfGlyphs);for(var t=0;t<e.numberOfGlyphs;t++)e.glyphNameIndex[t]<de.length?this.names[t]=de[e.glyphNameIndex[t]]:this.names[t]=e.names[e.glyphNameIndex[t]-de.length];break;case 2.5:this.names=new Array(e.numberOfGlyphs);for(var r=0;r<e.numberOfGlyphs;r++)this.names[r]=de[r+e.glyphNameIndex[r]];break;case 3:default:this.names=[]}}fe.prototype.charToGlyphIndex=function(e){var t=e.codePointAt(0),r=this.font.glyphs;if(r)for(var i=0;i<r.length;i+=1)for(var n=r.get(i),o=0;o<n.unicodes.length;o+=1)if(n.unicodes[o]===t)return i;return null},pe.prototype.charToGlyphIndex=function(e){return this.cmap.glyphIndexMap[e.codePointAt(0)]||0},me.prototype.charToGlyphIndex=function(e){var t=e.codePointAt(0),r=this.encoding[t];return this.charset.indexOf(r)},ye.prototype.nameToGlyphIndex=function(e){return this.names.indexOf(e)},ye.prototype.glyphIndexToName=function(e){return this.names[e]};var ve=function(e,t,r,i,n){e.beginPath(),e.moveTo(t,r),e.lineTo(i,n),e.stroke()};function ge(e){this.bindConstructorValues(e)}function be(e,t,r){Object.defineProperty(e,t,{get:function(){return e.path,e[r]},set:function(t){e[r]=t},enumerable:!0,configurable:!0})}function _e(e,t){if(this.font=e,this.glyphs={},Array.isArray(t))for(var r=0;r<t.length;r++)this.glyphs[r]=t[r];this.length=t&&t.length||0}ge.prototype.bindConstructorValues=function(e){var t,r;this.index=e.index||0,this.name=e.name||null,this.unicode=e.unicode||void 0,this.unicodes=e.unicodes||void 0!==e.unicode?[e.unicode]:[],e.xMin&&(this.xMin=e.xMin),e.yMin&&(this.yMin=e.yMin),e.xMax&&(this.xMax=e.xMax),e.yMax&&(this.yMax=e.yMax),e.advanceWidth&&(this.advanceWidth=e.advanceWidth),Object.defineProperty(this,"path",(t=e.path,r=t||new C,{configurable:!0,get:function(){return"function"==typeof r&&(r=r()),r},set:function(e){r=e}}))},ge.prototype.addUnicode=function(e){0===this.unicodes.length&&(this.unicode=e),this.unicodes.push(e)},ge.prototype.getBoundingBox=function(){return this.path.getBoundingBox()},ge.prototype.getPath=function(e,t,r,i,n){var o,a;e=void 0!==e?e:0,t=void 0!==t?t:0,r=void 0!==r?r:72;var s=(i=i||{}).xScale,l=i.yScale;if(i.hinting&&n&&n.hinting&&(a=this.path&&n.hinting.exec(this,r)),a)o=n.hinting.getCommands(a),e=Math.round(e),t=Math.round(t),s=l=1;else{o=this.path.commands;var u=1/this.path.unitsPerEm*r;void 0===s&&(s=u),void 0===l&&(l=u)}for(var h=new C,c=0;c<o.length;c+=1){var d=o[c];"M"===d.type?h.moveTo(e+d.x*s,t+-d.y*l):"L"===d.type?h.lineTo(e+d.x*s,t+-d.y*l):"Q"===d.type?h.quadraticCurveTo(e+d.x1*s,t+-d.y1*l,e+d.x*s,t+-d.y*l):"C"===d.type?h.curveTo(e+d.x1*s,t+-d.y1*l,e+d.x2*s,t+-d.y2*l,e+d.x*s,t+-d.y*l):"Z"===d.type&&h.closePath()}return h},ge.prototype.getContours=function(){if(void 0===this.points)return[];for(var e=[],t=[],r=0;r<this.points.length;r+=1){var i=this.points[r];t.push(i),i.lastPointOfContour&&(e.push(t),t=[])}return L.argument(0===t.length,"There are still points left in the current contour."),e},ge.prototype.getMetrics=function(){for(var e=this.path.commands,t=[],r=[],i=0;i<e.length;i+=1){var n=e[i];"Z"!==n.type&&(t.push(n.x),r.push(n.y)),"Q"!==n.type&&"C"!==n.type||(t.push(n.x1),r.push(n.y1)),"C"===n.type&&(t.push(n.x2),r.push(n.y2))}var o={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,r),xMax:Math.max.apply(null,t),yMax:Math.max.apply(null,r),leftSideBearing:this.leftSideBearing};return isFinite(o.xMin)||(o.xMin=0),isFinite(o.xMax)||(o.xMax=this.advanceWidth),isFinite(o.yMin)||(o.yMin=0),isFinite(o.yMax)||(o.yMax=0),o.rightSideBearing=this.advanceWidth-o.leftSideBearing-(o.xMax-o.xMin),o},ge.prototype.draw=function(e,t,r,i,n){this.getPath(t,r,i,n).draw(e)},ge.prototype.drawPoints=function(e,t,r,i){function n(t,r,i,n){var o=2*Math.PI;e.beginPath();for(var a=0;a<t.length;a+=1)e.moveTo(r+t[a].x*n,i+t[a].y*n),e.arc(r+t[a].x*n,i+t[a].y*n,2,0,o,!1);e.closePath(),e.fill()}t=void 0!==t?t:0,r=void 0!==r?r:0,i=void 0!==i?i:24;for(var o=1/this.path.unitsPerEm*i,a=[],s=[],l=this.path,u=0;u<l.commands.length;u+=1){var h=l.commands[u];void 0!==h.x&&a.push({x:h.x,y:-h.y}),void 0!==h.x1&&s.push({x:h.x1,y:-h.y1}),void 0!==h.x2&&s.push({x:h.x2,y:-h.y2})}e.fillStyle="blue",n(a,t,r,o),e.fillStyle="red",n(s,t,r,o)},ge.prototype.drawMetrics=function(e,t,r,i){var n;t=void 0!==t?t:0,r=void 0!==r?r:0,i=void 0!==i?i:24,n=1/this.path.unitsPerEm*i,e.lineWidth=1,e.strokeStyle="black",ve(e,t,-1e4,t,1e4),ve(e,-1e4,r,1e4,r);var o=this.xMin||0,a=this.yMin||0,s=this.xMax||0,l=this.yMax||0,u=this.advanceWidth||0;e.strokeStyle="blue",ve(e,t+o*n,-1e4,t+o*n,1e4),ve(e,t+s*n,-1e4,t+s*n,1e4),ve(e,-1e4,r+-a*n,1e4,r+-a*n),ve(e,-1e4,r+-l*n,1e4,r+-l*n),e.strokeStyle="green",ve(e,t+u*n,-1e4,t+u*n,1e4)},_e.prototype.get=function(e){return"function"==typeof this.glyphs[e]&&(this.glyphs[e]=this.glyphs[e]()),this.glyphs[e]},_e.prototype.push=function(e,t){this.glyphs[e]=t,this.length++};var xe={GlyphSet:_e,glyphLoader:function(e,t){return new ge({index:t,font:e})},ttfGlyphLoader:function(e,t,r,i,n,o){return function(){var a=new ge({index:t,font:e});return a.path=function(){r(a,i,n);var t=o(e.glyphs,a);return t.unitsPerEm=e.unitsPerEm,t},be(a,"xMin","_xMin"),be(a,"xMax","_xMax"),be(a,"yMin","_yMin"),be(a,"yMax","_yMax"),a}},cffGlyphLoader:function(e,t,r,i){return function(){var n=new ge({index:t,font:e});return n.path=function(){var t=r(e,n,i);return t.unitsPerEm=e.unitsPerEm,t},n}}};function we(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(var r=0;r<e.length;r+=1)if(!we(e[r],t[r]))return!1;return!0}return!1}function Se(e){return e.length<1240?107:e.length<33900?1131:32768}function Me(e,t,r){var i,n,o=[],a=[],s=ae.getCard16(e,t);if(0!==s){var l=ae.getByte(e,t+2);i=t+(s+1)*l+2;for(var u=t+3,h=0;h<s+1;h+=1)o.push(ae.getOffset(e,u,l)),u+=l;n=i+o[s]}else n=t+2;for(var c=0;c<o.length-1;c+=1){var d=ae.getBytes(e,i+o[c],i+o[c+1]);r&&(d=r(d)),a.push(d)}return{objects:a,startOffset:t,endOffset:n}}function Ee(e,t){if(28===t)return e.parseByte()<<8|e.parseByte();if(29===t)return e.parseByte()<<24|e.parseByte()<<16|e.parseByte()<<8|e.parseByte();if(30===t)return function(e){for(var t="",r=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];;){var i=e.parseByte(),n=i>>4,o=15&i;if(15==n)break;if(t+=r[n],15==o)break;t+=r[o]}return parseFloat(t)}(e);if(32<=t&&t<=246)return t-139;if(247<=t&&t<=250)return 256*(t-247)+e.parseByte()+108;if(251<=t&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function Te(e,t,r){t=void 0!==t?t:0;var i=new ae.Parser(e,t),n=[],o=[];for(r=void 0!==r?r:e.length;i.relativeOffset<r;){var a=i.parseByte();a<=21?(12===a&&(a=1200+i.parseByte()),n.push([a,o]),o=[]):o.push(Ee(i,a))}return function(e){for(var t={},r=0;r<e.length;r+=1){var i,n=e[r][0],o=e[r][1];if(i=1===o.length?o[0]:o,t.hasOwnProperty(n)&&!isNaN(t[n]))throw new Error("Object "+t+" already has key "+n);t[n]=i}return t}(n)}function Ce(e,t){return t<=390?ue[t]:e[t-391]}function Oe(e,t,r){for(var i,n={},o=0;o<t.length;o+=1){var a=t[o];if(Array.isArray(a.type)){var s=[];s.length=a.type.length;for(var l=0;l<a.type.length;l++)void 0===(i=void 0!==e[a.op]?e[a.op][l]:void 0)&&(i=void 0!==a.value&&void 0!==a.value[l]?a.value[l]:null),"SID"===a.type[l]&&(i=Ce(r,i)),s[l]=i;n[a.name]=s}else void 0===(i=e[a.op])&&(i=void 0!==a.value?a.value:null),"SID"===a.type&&(i=Ce(r,i)),n[a.name]=i}return n}var Pe=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],Le=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}];function ke(e,t,r,i){return Oe(Te(e,t,r),Le,i)}function Ae(e,t,r,i){for(var n,o,a=[],s=0;s<r.length;s+=1){var l=(o=i,Oe(Te(n=new DataView(new Uint8Array(r[s]).buffer),0,n.byteLength),Pe,o));l._subrs=[],l._subrsBias=0;var u=l.private[0],h=l.private[1];if(0!==u&&0!==h){var c=ke(e,h+t,u,i);if(l._defaultWidthX=c.defaultWidthX,l._nominalWidthX=c.nominalWidthX,0!==c.subrs){var d=Me(e,h+c.subrs+t);l._subrs=d.objects,l._subrsBias=Se(l._subrs)}l._privateDict=c}a.push(l)}return a}function Re(e,t,r){var i,n,o,a,s,l,u,h,c=new C,d=[],f=0,p=!1,m=!1,y=0,v=0;if(e.isCIDFont){var g=e.tables.cff.topDict._fdSelect[t.index],b=e.tables.cff.topDict._fdArray[g];s=b._subrs,l=b._subrsBias,u=b._defaultWidthX,h=b._nominalWidthX}else s=e.tables.cff.topDict._subrs,l=e.tables.cff.topDict._subrsBias,u=e.tables.cff.topDict._defaultWidthX,h=e.tables.cff.topDict._nominalWidthX;var _=u;function x(e,t){m&&c.closePath(),c.moveTo(e,t),m=!0}function w(){d.length%2==0||p||(_=d.shift()+h),f+=d.length>>1,d.length=0,p=!0}return function r(u){for(var g,b,S,M,E,T,C,O,P,L,k,A,R=0;R<u.length;){var D=u[R];switch(R+=1,D){case 1:case 3:w();break;case 4:1<d.length&&!p&&(_=d.shift()+h,p=!0),v+=d.pop(),x(y,v);break;case 5:for(;0<d.length;)y+=d.shift(),v+=d.shift(),c.lineTo(y,v);break;case 6:for(;0<d.length&&(y+=d.shift(),c.lineTo(y,v),0!==d.length);)v+=d.shift(),c.lineTo(y,v);break;case 7:for(;0<d.length&&(v+=d.shift(),c.lineTo(y,v),0!==d.length);)y+=d.shift(),c.lineTo(y,v);break;case 8:for(;0<d.length;)i=y+d.shift(),n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),y=o+d.shift(),v=a+d.shift(),c.curveTo(i,n,o,a,y,v);break;case 10:E=d.pop()+l,(T=s[E])&&r(T);break;case 11:return;case 12:switch(D=u[R],R+=1,D){case 35:i=y+d.shift(),n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),C=o+d.shift(),O=a+d.shift(),P=C+d.shift(),L=O+d.shift(),k=P+d.shift(),A=L+d.shift(),y=k+d.shift(),v=A+d.shift(),d.shift(),c.curveTo(i,n,o,a,C,O),c.curveTo(P,L,k,A,y,v);break;case 34:i=y+d.shift(),n=v,o=i+d.shift(),a=n+d.shift(),C=o+d.shift(),O=a,P=C+d.shift(),L=a,k=P+d.shift(),A=v,y=k+d.shift(),c.curveTo(i,n,o,a,C,O),c.curveTo(P,L,k,A,y,v);break;case 36:i=y+d.shift(),n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),C=o+d.shift(),O=a,P=C+d.shift(),L=a,k=P+d.shift(),A=L+d.shift(),y=k+d.shift(),c.curveTo(i,n,o,a,C,O),c.curveTo(P,L,k,A,y,v);break;case 37:i=y+d.shift(),n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),C=o+d.shift(),O=a+d.shift(),P=C+d.shift(),L=O+d.shift(),k=P+d.shift(),A=L+d.shift(),Math.abs(k-y)>Math.abs(A-v)?y=k+d.shift():v=A+d.shift(),c.curveTo(i,n,o,a,C,O),c.curveTo(P,L,k,A,y,v);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+D),d.length=0}break;case 14:0<d.length&&!p&&(_=d.shift()+h,p=!0),m&&(c.closePath(),m=!1);break;case 18:w();break;case 19:case 20:w(),R+=f+7>>3;break;case 21:2<d.length&&!p&&(_=d.shift()+h,p=!0),v+=d.pop(),x(y+=d.pop(),v);break;case 22:1<d.length&&!p&&(_=d.shift()+h,p=!0),x(y+=d.pop(),v);break;case 23:w();break;case 24:for(;2<d.length;)i=y+d.shift(),n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),y=o+d.shift(),v=a+d.shift(),c.curveTo(i,n,o,a,y,v);y+=d.shift(),v+=d.shift(),c.lineTo(y,v);break;case 25:for(;6<d.length;)y+=d.shift(),v+=d.shift(),c.lineTo(y,v);i=y+d.shift(),n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),y=o+d.shift(),v=a+d.shift(),c.curveTo(i,n,o,a,y,v);break;case 26:for(d.length%2&&(y+=d.shift());0<d.length;)i=y,n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),y=o,v=a+d.shift(),c.curveTo(i,n,o,a,y,v);break;case 27:for(d.length%2&&(v+=d.shift());0<d.length;)i=y+d.shift(),n=v,o=i+d.shift(),a=n+d.shift(),y=o+d.shift(),v=a,c.curveTo(i,n,o,a,y,v);break;case 28:g=u[R],b=u[R+1],d.push((g<<24|b<<16)>>16),R+=2;break;case 29:E=d.pop()+e.gsubrsBias,(T=e.gsubrs[E])&&r(T);break;case 30:for(;0<d.length&&(i=y,n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),y=o+d.shift(),v=a+(1===d.length?d.shift():0),c.curveTo(i,n,o,a,y,v),0!==d.length);)i=y+d.shift(),n=v,o=i+d.shift(),a=n+d.shift(),v=a+d.shift(),y=o+(1===d.length?d.shift():0),c.curveTo(i,n,o,a,y,v);break;case 31:for(;0<d.length&&(i=y+d.shift(),n=v,o=i+d.shift(),a=n+d.shift(),v=a+d.shift(),y=o+(1===d.length?d.shift():0),c.curveTo(i,n,o,a,y,v),0!==d.length);)i=y,n=v+d.shift(),o=i+d.shift(),a=n+d.shift(),y=o+d.shift(),v=a+(1===d.length?d.shift():0),c.curveTo(i,n,o,a,y,v);break;default:D<32?console.log("Glyph "+t.index+": unknown operator "+D):D<247?d.push(D-139):D<251?(g=u[R],R+=1,d.push(256*(D-247)+g+108)):D<255?(g=u[R],R+=1,d.push(256*-(D-251)-g-108)):(g=u[R],b=u[R+1],S=u[R+2],M=u[R+3],R+=4,d.push((g<<24|b<<16|S<<8|M)/65536))}}}(r),t.advanceWidth=_,c}function De(e,t){var r,i=ue.indexOf(e);return 0<=i&&(r=i),0<=(i=t.indexOf(e))?r=i+ue.length:(r=ue.length+t.length,t.push(e)),r}function Ie(e,t,r){for(var i={},n=0;n<e.length;n+=1){var o=e[n],a=t[o.name];void 0===a||we(a,o.value)||("SID"===o.type&&(a=De(a,r)),i[o.op]={name:o.name,type:o.type,value:a})}return i}function Ue(e,t){var r=new J.Record("Top DICT",[{name:"dict",type:"DICT",value:{}}]);return r.dict=Ie(Pe,e,t),r}function Ne(e){var t=new J.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return t.topDicts=[{name:"topDict_0",type:"TABLE",value:e}],t}function Fe(e){var t=[],r=e.path;t.push({name:"width",type:"NUMBER",value:e.advanceWidth});for(var i=0,n=0,o=0;o<r.commands.length;o+=1){var a=void 0,s=void 0,l=r.commands[o];if("Q"===l.type&&(l={type:"C",x:l.x,y:l.y,x1:1/3*i+2/3*l.x1,y1:1/3*n+2/3*l.y1,x2:1/3*l.x+2/3*l.x1,y2:1/3*l.y+2/3*l.y1}),"M"===l.type)a=Math.round(l.x-i),s=Math.round(l.y-n),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rmoveto",type:"OP",value:21}),i=Math.round(l.x),n=Math.round(l.y);else if("L"===l.type)a=Math.round(l.x-i),s=Math.round(l.y-n),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rlineto",type:"OP",value:5}),i=Math.round(l.x),n=Math.round(l.y);else if("C"===l.type){var u=Math.round(l.x1-i),h=Math.round(l.y1-n),c=Math.round(l.x2-l.x1),d=Math.round(l.y2-l.y1);a=Math.round(l.x-l.x2),s=Math.round(l.y-l.y2),t.push({name:"dx1",type:"NUMBER",value:u}),t.push({name:"dy1",type:"NUMBER",value:h}),t.push({name:"dx2",type:"NUMBER",value:c}),t.push({name:"dy2",type:"NUMBER",value:d}),t.push({name:"dx",type:"NUMBER",value:a}),t.push({name:"dy",type:"NUMBER",value:s}),t.push({name:"rrcurveto",type:"OP",value:8}),i=Math.round(l.x),n=Math.round(l.y)}}return t.push({name:"endchar",type:"OP",value:14}),t}var Be=function(e,t,r){r.tables.cff={};var i,n,o,a=Me(e,(i=e,n=t,(o={}).formatMajor=ae.getCard8(i,n),o.formatMinor=ae.getCard8(i,n+1),o.size=ae.getCard8(i,n+2),o.offsetSize=ae.getCard8(i,n+3),o.startOffset=n,o.endOffset=n+4,o).endOffset,ae.bytesToString),s=Me(e,a.endOffset),l=Me(e,s.endOffset,ae.bytesToString),u=Me(e,l.endOffset);r.gsubrs=u.objects,r.gsubrsBias=Se(r.gsubrs);var h=Ae(e,t,s.objects,l.objects);if(1!==h.length)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+h.length);var c=h[0];if((r.tables.cff.topDict=c)._privateDict&&(r.defaultWidthX=c._privateDict.defaultWidthX,r.nominalWidthX=c._privateDict.nominalWidthX),void 0!==c.ros[0]&&void 0!==c.ros[1]&&(r.isCIDFont=!0),r.isCIDFont){var d=c.fdArray,f=c.fdSelect;if(0===d||0===f)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");var p=Ae(e,t,Me(e,d+=t).objects,l.objects);c._fdArray=p,f+=t,c._fdSelect=function(e,t,r,i){var n,o=[],a=new ae.Parser(e,t),s=a.parseCard8();if(0===s)for(var l=0;l<r;l++){if(i<=(n=a.parseCard8()))throw new Error("CFF table CID Font FDSelect has bad FD index value "+n+" (FD count "+i+")");o.push(n)}else{if(3!==s)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+s);var u,h=a.parseCard16(),c=a.parseCard16();if(0!==c)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+c);for(var d=0;d<h;d++){if(n=a.parseCard8(),u=a.parseCard16(),i<=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+n+" (FD count "+i+")");if(r<u)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+u);for(;c<u;c++)o.push(n);c=u}if(u!==r)throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID "+u)}return o}(e,f,r.numGlyphs,p.length)}var m=t+c.private[1],y=ke(e,m,c.private[0],l.objects);if(r.defaultWidthX=y.defaultWidthX,r.nominalWidthX=y.nominalWidthX,0!==y.subrs){var v=Me(e,m+y.subrs);r.subrs=v.objects,r.subrsBias=Se(r.subrs)}else r.subrs=[],r.subrsBias=0;var g=Me(e,t+c.charStrings);r.nGlyphs=g.objects.length;var b=function(e,t,r,i){var n,o,a=new ae.Parser(e,t);--r;var s=[".notdef"],l=a.parseCard8();if(0===l)for(var u=0;u<r;u+=1)n=a.parseSID(),s.push(Ce(i,n));else if(1===l)for(;s.length<=r;){n=a.parseSID(),o=a.parseCard8();for(var h=0;h<=o;h+=1)s.push(Ce(i,n)),n+=1}else{if(2!==l)throw new Error("Unknown charset format "+l);for(;s.length<=r;){n=a.parseSID(),o=a.parseCard16();for(var c=0;c<=o;c+=1)s.push(Ce(i,n)),n+=1}}return s}(e,t+c.charset,r.nGlyphs,l.objects);0===c.encoding?r.cffEncoding=new me(he,b):1===c.encoding?r.cffEncoding=new me(ce,b):r.cffEncoding=function(e,t,r){var i,n={},o=new ae.Parser(e,t),a=o.parseCard8();if(0===a)for(var s=o.parseCard8(),l=0;l<s;l+=1)n[i=o.parseCard8()]=l;else{if(1!==a)throw new Error("Unknown encoding format "+a);var u=o.parseCard8();i=1;for(var h=0;h<u;h+=1)for(var c=o.parseCard8(),d=o.parseCard8(),f=c;f<=c+d;f+=1)n[f]=i,i+=1}return new me(n,r)}(e,t+c.encoding,b),r.encoding=r.encoding||r.cffEncoding,r.glyphs=new xe.GlyphSet(r);for(var _=0;_<r.nGlyphs;_+=1){var x=g.objects[_];r.glyphs.push(_,xe.cffGlyphLoader(r,_,Re,x))}},Ge=function(e,t){for(var r,i=new J.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),n=1/t.unitsPerEm,o={version:t.version,fullName:t.fullName,familyName:t.familyName,weight:t.weightName,fontBBox:t.fontBBox||[0,0,0,0],fontMatrix:[n,0,0,n,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},a=[],s=1;s<e.length;s+=1)r=e.get(s),a.push(r.name);var l=[];i.header=new J.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}]),i.nameIndex=function(e){var t=new J.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var r=0;r<e.length;r+=1)t.names.push({name:"name_"+r,type:"NAME",value:e[r]});return t}([t.postScriptName]);var u,h,c,d=Ue(o,l);i.topDictIndex=Ne(d),i.globalSubrIndex=new J.Record("Global Subr INDEX",[{name:"subrs",type:"INDEX",value:[]}]),i.charsets=function(e,t){for(var r=new J.Record("Charsets",[{name:"format",type:"Card8",value:0}]),i=0;i<e.length;i+=1){var n=De(e[i],t);r.fields.push({name:"glyph_"+i,type:"SID",value:n})}return r}(a,l),i.charStringsIndex=function(e){for(var t=new J.Record("CharStrings INDEX",[{name:"charStrings",type:"INDEX",value:[]}]),r=0;r<e.length;r+=1){var i=e.get(r),n=Fe(i);t.charStrings.push({name:i.name,type:"CHARSTRING",value:n})}return t}(e),i.privateDict=(u={},h=l,(c=new J.Record("Private DICT",[{name:"dict",type:"DICT",value:{}}])).dict=Ie(Le,u,h),c),i.stringIndex=function(e){var t=new J.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);t.strings=[];for(var r=0;r<e.length;r+=1)t.strings.push({name:"string_"+r,type:"STRING",value:e[r]});return t}(l);var f=i.header.sizeOf()+i.nameIndex.sizeOf()+i.topDictIndex.sizeOf()+i.stringIndex.sizeOf()+i.globalSubrIndex.sizeOf();return o.charset=f,o.encoding=0,o.charStrings=o.charset+i.charsets.sizeOf(),o.private[1]=o.charStrings+i.charStringsIndex.sizeOf(),d=Ue(o,l),i.topDictIndex=Ne(d),i},je=function(e,t){var r={},i=new ae.Parser(e,t);return r.version=i.parseVersion(),r.fontRevision=Math.round(1e3*i.parseFixed())/1e3,r.checkSumAdjustment=i.parseULong(),r.magicNumber=i.parseULong(),L.argument(1594834165===r.magicNumber,"Font header has wrong magic number."),r.flags=i.parseUShort(),r.unitsPerEm=i.parseUShort(),r.created=i.parseLongDateTime(),r.modified=i.parseLongDateTime(),r.xMin=i.parseShort(),r.yMin=i.parseShort(),r.xMax=i.parseShort(),r.yMax=i.parseShort(),r.macStyle=i.parseUShort(),r.lowestRecPPEM=i.parseUShort(),r.fontDirectionHint=i.parseShort(),r.indexToLocFormat=i.parseShort(),r.glyphDataFormat=i.parseShort(),r},Ve=function(e){var t=Math.round((new Date).getTime()/1e3)+2082844800,r=t;return e.createdTimestamp&&(r=e.createdTimestamp+2082844800),new J.Table("head",[{name:"version",type:"FIXED",value:65536},{name:"fontRevision",type:"FIXED",value:65536},{name:"checkSumAdjustment",type:"ULONG",value:0},{name:"magicNumber",type:"ULONG",value:1594834165},{name:"flags",type:"USHORT",value:0},{name:"unitsPerEm",type:"USHORT",value:1e3},{name:"created",type:"LONGDATETIME",value:r},{name:"modified",type:"LONGDATETIME",value:t},{name:"xMin",type:"SHORT",value:0},{name:"yMin",type:"SHORT",value:0},{name:"xMax",type:"SHORT",value:0},{name:"yMax",type:"SHORT",value:0},{name:"macStyle",type:"USHORT",value:0},{name:"lowestRecPPEM",type:"USHORT",value:0},{name:"fontDirectionHint",type:"SHORT",value:2},{name:"indexToLocFormat",type:"SHORT",value:0},{name:"glyphDataFormat",type:"SHORT",value:0}],e)},ze=function(e,t){var r={},i=new ae.Parser(e,t);return r.version=i.parseVersion(),r.ascender=i.parseShort(),r.descender=i.parseShort(),r.lineGap=i.parseShort(),r.advanceWidthMax=i.parseUShort(),r.minLeftSideBearing=i.parseShort(),r.minRightSideBearing=i.parseShort(),r.xMaxExtent=i.parseShort(),r.caretSlopeRise=i.parseShort(),r.caretSlopeRun=i.parseShort(),r.caretOffset=i.parseShort(),i.relativeOffset+=8,r.metricDataFormat=i.parseShort(),r.numberOfHMetrics=i.parseUShort(),r},He=function(e){return new J.Table("hhea",[{name:"version",type:"FIXED",value:65536},{name:"ascender",type:"FWORD",value:0},{name:"descender",type:"FWORD",value:0},{name:"lineGap",type:"FWORD",value:0},{name:"advanceWidthMax",type:"UFWORD",value:0},{name:"minLeftSideBearing",type:"FWORD",value:0},{name:"minRightSideBearing",type:"FWORD",value:0},{name:"xMaxExtent",type:"FWORD",value:0},{name:"caretSlopeRise",type:"SHORT",value:1},{name:"caretSlopeRun",type:"SHORT",value:0},{name:"caretOffset",type:"SHORT",value:0},{name:"reserved1",type:"SHORT",value:0},{name:"reserved2",type:"SHORT",value:0},{name:"reserved3",type:"SHORT",value:0},{name:"reserved4",type:"SHORT",value:0},{name:"metricDataFormat",type:"SHORT",value:0},{name:"numberOfHMetrics",type:"USHORT",value:0}],e)},We=function(e,t,r,i,n){for(var o,a,s=new ae.Parser(e,t),l=0;l<i;l+=1){l<r&&(o=s.parseUShort(),a=s.parseShort());var u=n.get(l);u.advanceWidth=o,u.leftSideBearing=a}},qe=function(e){for(var t=new J.Table("hmtx",[]),r=0;r<e.length;r+=1){var i=e.get(r),n=i.advanceWidth||0,o=i.leftSideBearing||0;t.fields.push({name:"advanceWidth_"+r,type:"USHORT",value:n}),t.fields.push({name:"leftSideBearing_"+r,type:"SHORT",value:o})}return t},Xe=function(e){for(var t=new J.Table("ltag",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"numTags",type:"ULONG",value:e.length}]),r="",i=12+4*e.length,n=0;n<e.length;++n){var o=r.indexOf(e[n]);o<0&&(o=r.length,r+=e[n]),t.fields.push({name:"offset "+n,type:"USHORT",value:i+o}),t.fields.push({name:"length "+n,type:"USHORT",value:e[n].length})}return t.fields.push({name:"stringPool",type:"CHARARRAY",value:r}),t},Ye=function(e,t){var r=new ae.Parser(e,t),i=r.parseULong();L.argument(1===i,"Unsupported ltag table version."),r.skip("uLong",1);for(var n=r.parseULong(),o=[],a=0;a<n;a++){for(var s="",l=t+r.parseUShort(),u=r.parseUShort(),h=l;h<l+u;++h)s+=String.fromCharCode(e.getInt8(h));o.push(s)}return o},Ze=function(e,t){var r={},i=new ae.Parser(e,t);return r.version=i.parseVersion(),r.numGlyphs=i.parseUShort(),1===r.version&&(r.maxPoints=i.parseUShort(),r.maxContours=i.parseUShort(),r.maxCompositePoints=i.parseUShort(),r.maxCompositeContours=i.parseUShort(),r.maxZones=i.parseUShort(),r.maxTwilightPoints=i.parseUShort(),r.maxStorage=i.parseUShort(),r.maxFunctionDefs=i.parseUShort(),r.maxInstructionDefs=i.parseUShort(),r.maxStackElements=i.parseUShort(),r.maxSizeOfInstructions=i.parseUShort(),r.maxComponentElements=i.parseUShort(),r.maxComponentDepth=i.parseUShort()),r},Qe=function(e){return new J.Table("maxp",[{name:"version",type:"FIXED",value:20480},{name:"numGlyphs",type:"USHORT",value:e}])},Ke=["copyright","fontFamily","fontSubfamily","uniqueID","fullName","version","postScriptName","trademark","manufacturer","designer","description","manufacturerURL","designerURL","license","licenseURL","reserved","preferredFamily","preferredSubfamily","compatibleFullName","sampleText","postScriptFindFontName","wwsFamily","wwsSubfamily"],Je={0:"en",1:"fr",2:"de",3:"it",4:"nl",5:"sv",6:"es",7:"da",8:"pt",9:"no",10:"he",11:"ja",12:"ar",13:"fi",14:"el",15:"is",16:"mt",17:"tr",18:"hr",19:"zh-Hant",20:"ur",21:"hi",22:"th",23:"ko",24:"lt",25:"pl",26:"hu",27:"es",28:"lv",29:"se",30:"fo",31:"fa",32:"ru",33:"zh",34:"nl-BE",35:"ga",36:"sq",37:"ro",38:"cz",39:"sk",40:"si",41:"yi",42:"sr",43:"mk",44:"bg",45:"uk",46:"be",47:"uz",48:"kk",49:"az-Cyrl",50:"az-Arab",51:"hy",52:"ka",53:"mo",54:"ky",55:"tg",56:"tk",57:"mn-CN",58:"mn",59:"ps",60:"ks",61:"ku",62:"sd",63:"bo",64:"ne",65:"sa",66:"mr",67:"bn",68:"as",69:"gu",70:"pa",71:"or",72:"ml",73:"kn",74:"ta",75:"te",76:"si",77:"my",78:"km",79:"lo",80:"vi",81:"id",82:"tl",83:"ms",84:"ms-Arab",85:"am",86:"ti",87:"om",88:"so",89:"sw",90:"rw",91:"rn",92:"ny",93:"mg",94:"eo",128:"cy",129:"eu",130:"ca",131:"la",132:"qu",133:"gn",134:"ay",135:"tt",136:"ug",137:"dz",138:"jv",139:"su",140:"gl",141:"af",142:"br",143:"iu",144:"gd",145:"gv",146:"ga",147:"to",148:"el-polyton",149:"kl",150:"az",151:"nn"},$e={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:5,11:1,12:4,13:0,14:6,15:0,16:0,17:0,18:0,19:2,20:4,21:9,22:21,23:3,24:29,25:29,26:29,27:29,28:29,29:0,30:0,31:4,32:7,33:25,34:0,35:0,36:0,37:0,38:29,39:29,40:0,41:5,42:7,43:7,44:7,45:7,46:7,47:7,48:7,49:7,50:4,51:24,52:23,53:7,54:7,55:7,56:7,57:27,58:7,59:4,60:4,61:4,62:4,63:26,64:9,65:9,66:9,67:13,68:13,69:11,70:10,71:12,72:17,73:16,74:14,75:15,76:18,77:19,78:20,79:22,80:30,81:0,82:0,83:0,84:4,85:28,86:28,87:28,88:0,89:0,90:0,91:0,92:0,93:0,94:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:7,136:4,137:26,138:0,139:0,140:0,141:0,142:0,143:28,144:0,145:0,146:0,147:0,148:6,149:0,150:0,151:0},et={1078:"af",1052:"sq",1156:"gsw",1118:"am",5121:"ar-DZ",15361:"ar-BH",3073:"ar",2049:"ar-IQ",11265:"ar-JO",13313:"ar-KW",12289:"ar-LB",4097:"ar-LY",6145:"ary",8193:"ar-OM",16385:"ar-QA",1025:"ar-SA",10241:"ar-SY",7169:"aeb",14337:"ar-AE",9217:"ar-YE",1067:"hy",1101:"as",2092:"az-Cyrl",1068:"az",1133:"ba",1069:"eu",1059:"be",2117:"bn",1093:"bn-IN",8218:"bs-Cyrl",5146:"bs",1150:"br",1026:"bg",1027:"ca",3076:"zh-HK",5124:"zh-MO",2052:"zh",4100:"zh-SG",1028:"zh-TW",1155:"co",1050:"hr",4122:"hr-BA",1029:"cs",1030:"da",1164:"prs",1125:"dv",2067:"nl-BE",1043:"nl",3081:"en-AU",10249:"en-BZ",4105:"en-CA",9225:"en-029",16393:"en-IN",6153:"en-IE",8201:"en-JM",17417:"en-MY",5129:"en-NZ",13321:"en-PH",18441:"en-SG",7177:"en-ZA",11273:"en-TT",2057:"en-GB",1033:"en",12297:"en-ZW",1061:"et",1080:"fo",1124:"fil",1035:"fi",2060:"fr-BE",3084:"fr-CA",1036:"fr",5132:"fr-LU",6156:"fr-MC",4108:"fr-CH",1122:"fy",1110:"gl",1079:"ka",3079:"de-AT",1031:"de",5127:"de-LI",4103:"de-LU",2055:"de-CH",1032:"el",1135:"kl",1095:"gu",1128:"ha",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig",1057:"id",1117:"iu",2141:"iu-Latn",2108:"ga",1076:"xh",1077:"zu",1040:"it",2064:"it-CH",1041:"ja",1099:"kn",1087:"kk",1107:"km",1158:"quc",1159:"rw",1089:"sw",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1062:"lv",1063:"lt",2094:"dsb",1134:"lb",1071:"mk",2110:"ms-BN",1086:"ms",1100:"ml",1082:"mt",1153:"mi",1146:"arn",1102:"mr",1148:"moh",1104:"mn",2128:"mn-CN",1121:"ne",1044:"nb",2068:"nn",1154:"oc",1096:"or",1123:"ps",1045:"pl",1046:"pt",2070:"pt-PT",1094:"pa",1131:"qu-BO",2155:"qu-EC",3179:"qu",1048:"ro",1047:"rm",1049:"ru",9275:"smn",4155:"smj-NO",5179:"smj",3131:"se-FI",1083:"se",2107:"se-SE",8251:"sms",6203:"sma-NO",7227:"sms",1103:"sa",7194:"sr-Cyrl-BA",3098:"sr",6170:"sr-Latn-BA",2074:"sr-Latn",1132:"nso",1074:"tn",1115:"si",1051:"sk",1060:"sl",11274:"es-AR",16394:"es-BO",13322:"es-CL",9226:"es-CO",5130:"es-CR",7178:"es-DO",12298:"es-EC",17418:"es-SV",4106:"es-GT",18442:"es-HN",2058:"es-MX",19466:"es-NI",6154:"es-PA",15370:"es-PY",10250:"es-PE",20490:"es-PR",3082:"es",1034:"es",21514:"es-US",14346:"es-UY",8202:"es-VE",2077:"sv-FI",1053:"sv",1114:"syr",1064:"tg",2143:"tzm",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1055:"tr",1090:"tk",1152:"ug",1058:"uk",1070:"hsb",1056:"ur",2115:"uz-Cyrl",1091:"uz",1066:"vi",1106:"cy",1160:"wo",1157:"sah",1144:"ii",1130:"yo"};function tt(e,t,r){switch(e){case 0:if(65535===t)return"und";if(r)return r[t];break;case 1:return Je[t];case 3:return et[t]}}var rt="utf-16",it={0:"macintosh",1:"x-mac-japanese",2:"x-mac-chinesetrad",3:"x-mac-korean",6:"x-mac-greek",7:"x-mac-cyrillic",9:"x-mac-devanagai",10:"x-mac-gurmukhi",11:"x-mac-gujarati",12:"x-mac-oriya",13:"x-mac-bengali",14:"x-mac-tamil",15:"x-mac-telugu",16:"x-mac-kannada",17:"x-mac-malayalam",18:"x-mac-sinhalese",19:"x-mac-burmese",20:"x-mac-khmer",21:"x-mac-thai",22:"x-mac-lao",23:"x-mac-georgian",24:"x-mac-armenian",25:"x-mac-chinesesimp",26:"x-mac-tibetan",27:"x-mac-mongolian",28:"x-mac-ethiopic",29:"x-mac-ce",30:"x-mac-vietnamese",31:"x-mac-extarabic"},nt={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"};function ot(e,t,r){switch(e){case 0:return rt;case 1:return nt[r]||it[t];case 3:if(1===t||10===t)return rt}}function at(e){var t={};for(var r in e)t[e[r]]=parseInt(r);return t}function st(e,t,r,i,n,o){return new J.Record("NameRecord",[{name:"platformID",type:"USHORT",value:e},{name:"encodingID",type:"USHORT",value:t},{name:"languageID",type:"USHORT",value:r},{name:"nameID",type:"USHORT",value:i},{name:"length",type:"USHORT",value:n},{name:"offset",type:"USHORT",value:o}])}function lt(e,t){var r=function(e,t){var r=e.length,i=t.length-r+1;e:for(var n=0;n<i;n++)for(;n<i;n++){for(var o=0;o<r;o++)if(t[n+o]!==e[o])continue e;return n}return-1}(e,t);if(r<0){r=t.length;for(var i=0,n=e.length;i<n;++i)t.push(e[i])}return r}var ut=function(e,t,r){for(var i={},n=new ae.Parser(e,t),o=n.parseUShort(),a=n.parseUShort(),s=n.offset+n.parseUShort(),l=0;l<a;l++){var u=n.parseUShort(),h=n.parseUShort(),c=n.parseUShort(),d=n.parseUShort(),f=Ke[d]||d,p=n.parseUShort(),m=n.parseUShort(),y=tt(u,c,r),v=ot(u,h,c);if(void 0!==v&&void 0!==y){var g;if(g=v===rt?A.UTF16(e,s+m,p):A.MACSTRING(e,s+m,p,v)){var b=i[f];void 0===b&&(b=i[f]={}),b[y]=g}}}return 1===o&&n.parseUShort(),i},ht=function(e,t){var r,i=[],n={},o=at(Ke);for(var a in e){var s=o[a];if(void 0===s&&(s=a),r=parseInt(s),isNaN(r))throw new Error('Name table entry "'+a+'" does not exist, see nameTableNames for complete list.');n[r]=e[a],i.push(r)}for(var l=at(Je),u=at(et),h=[],c=[],d=0;d<i.length;d++){var f=n[r=i[d]];for(var p in f){var m=f[p],y=1,v=l[p],g=$e[v],b=ot(y,g,v),_=R.MACSTRING(m,b);void 0===_&&(y=0,(v=t.indexOf(p))<0&&(v=t.length,t.push(p)),g=4,_=R.UTF16(m));var x=lt(_,c);h.push(st(y,g,v,r,_.length,x));var w=u[p];if(void 0!==w){var S=R.UTF16(m),M=lt(S,c);h.push(st(3,1,w,r,S.length,M))}}}h.sort((function(e,t){return e.platformID-t.platformID||e.encodingID-t.encodingID||e.languageID-t.languageID||e.nameID-t.nameID}));for(var E=new J.Table("name",[{name:"format",type:"USHORT",value:0},{name:"count",type:"USHORT",value:h.length},{name:"stringOffset",type:"USHORT",value:6+12*h.length}]),T=0;T<h.length;T++)E.fields.push({name:"record_"+T,type:"RECORD",value:h[T]});return E.fields.push({name:"strings",type:"LITERAL",value:c}),E},ct=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}],dt=function(e,t){var r={},i=new ae.Parser(e,t);r.version=i.parseUShort(),r.xAvgCharWidth=i.parseShort(),r.usWeightClass=i.parseUShort(),r.usWidthClass=i.parseUShort(),r.fsType=i.parseUShort(),r.ySubscriptXSize=i.parseShort(),r.ySubscriptYSize=i.parseShort(),r.ySubscriptXOffset=i.parseShort(),r.ySubscriptYOffset=i.parseShort(),r.ySuperscriptXSize=i.parseShort(),r.ySuperscriptYSize=i.parseShort(),r.ySuperscriptXOffset=i.parseShort(),r.ySuperscriptYOffset=i.parseShort(),r.yStrikeoutSize=i.parseShort(),r.yStrikeoutPosition=i.parseShort(),r.sFamilyClass=i.parseShort(),r.panose=[];for(var n=0;n<10;n++)r.panose[n]=i.parseByte();return r.ulUnicodeRange1=i.parseULong(),r.ulUnicodeRange2=i.parseULong(),r.ulUnicodeRange3=i.parseULong(),r.ulUnicodeRange4=i.parseULong(),r.achVendID=String.fromCharCode(i.parseByte(),i.parseByte(),i.parseByte(),i.parseByte()),r.fsSelection=i.parseUShort(),r.usFirstCharIndex=i.parseUShort(),r.usLastCharIndex=i.parseUShort(),r.sTypoAscender=i.parseShort(),r.sTypoDescender=i.parseShort(),r.sTypoLineGap=i.parseShort(),r.usWinAscent=i.parseUShort(),r.usWinDescent=i.parseUShort(),1<=r.version&&(r.ulCodePageRange1=i.parseULong(),r.ulCodePageRange2=i.parseULong()),2<=r.version&&(r.sxHeight=i.parseShort(),r.sCapHeight=i.parseShort(),r.usDefaultChar=i.parseUShort(),r.usBreakChar=i.parseUShort(),r.usMaxContent=i.parseUShort()),r},ft=function(e){return new J.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)},pt=function(e){for(var t=0;t<ct.length;t+=1){var r=ct[t];if(e>=r.begin&&e<r.end)return t}return-1},mt=function(e,t){var r={},i=new ae.Parser(e,t);switch(r.version=i.parseVersion(),r.italicAngle=i.parseFixed(),r.underlinePosition=i.parseShort(),r.underlineThickness=i.parseShort(),r.isFixedPitch=i.parseULong(),r.minMemType42=i.parseULong(),r.maxMemType42=i.parseULong(),r.minMemType1=i.parseULong(),r.maxMemType1=i.parseULong(),r.version){case 1:r.names=de.slice();break;case 2:r.numberOfGlyphs=i.parseUShort(),r.glyphNameIndex=new Array(r.numberOfGlyphs);for(var n=0;n<r.numberOfGlyphs;n++)r.glyphNameIndex[n]=i.parseUShort();r.names=[];for(var o=0;o<r.numberOfGlyphs;o++)if(r.glyphNameIndex[o]>=de.length){var a=i.parseChar();r.names.push(i.parseString(a))}break;case 2.5:r.numberOfGlyphs=i.parseUShort(),r.offset=new Array(r.numberOfGlyphs);for(var s=0;s<r.numberOfGlyphs;s++)r.offset[s]=i.parseChar()}return r},yt=function(){return new J.Table("post",[{name:"version",type:"FIXED",value:196608},{name:"italicAngle",type:"FIXED",value:0},{name:"underlinePosition",type:"FWORD",value:0},{name:"underlineThickness",type:"FWORD",value:0},{name:"isFixedPitch",type:"ULONG",value:0},{name:"minMemType42",type:"ULONG",value:0},{name:"maxMemType42",type:"ULONG",value:0},{name:"minMemType1",type:"ULONG",value:0},{name:"maxMemType1",type:"ULONG",value:0}])},vt=new Array(9);vt[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{substFormat:1,coverage:this.parsePointer(ne.coverage),deltaGlyphId:this.parseUShort()}:2===t?{substFormat:2,coverage:this.parsePointer(ne.coverage),substitute:this.parseOffset16List()}:void L.assert(!1,"0x"+e.toString(16)+": lookup type 1 format must be 1 or 2.")},vt[2]=function(){var e=this.parseUShort();return L.argument(1===e,"GSUB Multiple Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(ne.coverage),sequences:this.parseListOfLists()}},vt[3]=function(){var e=this.parseUShort();return L.argument(1===e,"GSUB Alternate Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(ne.coverage),alternateSets:this.parseListOfLists()}},vt[4]=function(){var e=this.parseUShort();return L.argument(1===e,"GSUB ligature table identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(ne.coverage),ligatureSets:this.parseListOfLists((function(){return{ligGlyph:this.parseUShort(),components:this.parseUShortList(this.parseUShort()-1)}}))}};var gt={sequenceIndex:ne.uShort,lookupListIndex:ne.uShort};vt[5]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(1===t)return{substFormat:t,coverage:this.parsePointer(ne.coverage),ruleSets:this.parseListOfLists((function(){var e=this.parseUShort(),t=this.parseUShort();return{input:this.parseUShortList(e-1),lookupRecords:this.parseRecordList(t,gt)}}))};if(2===t)return{substFormat:t,coverage:this.parsePointer(ne.coverage),classDef:this.parsePointer(ne.classDef),classSets:this.parseListOfLists((function(){var e=this.parseUShort(),t=this.parseUShort();return{classes:this.parseUShortList(e-1),lookupRecords:this.parseRecordList(t,gt)}}))};if(3===t){var r=this.parseUShort(),i=this.parseUShort();return{substFormat:t,coverages:this.parseList(r,ne.pointer(ne.coverage)),lookupRecords:this.parseRecordList(i,gt)}}L.assert(!1,"0x"+e.toString(16)+": lookup type 5 format must be 1, 2 or 3.")},vt[6]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{substFormat:1,coverage:this.parsePointer(ne.coverage),chainRuleSets:this.parseListOfLists((function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(gt)}}))}:2===t?{substFormat:2,coverage:this.parsePointer(ne.coverage),backtrackClassDef:this.parsePointer(ne.classDef),inputClassDef:this.parsePointer(ne.classDef),lookaheadClassDef:this.parsePointer(ne.classDef),chainClassSet:this.parseListOfLists((function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(gt)}}))}:3===t?{substFormat:3,backtrackCoverage:this.parseList(ne.pointer(ne.coverage)),inputCoverage:this.parseList(ne.pointer(ne.coverage)),lookaheadCoverage:this.parseList(ne.pointer(ne.coverage)),lookupRecords:this.parseRecordList(gt)}:void L.assert(!1,"0x"+e.toString(16)+": lookup type 6 format must be 1, 2 or 3.")},vt[7]=function(){var e=this.parseUShort();L.argument(1===e,"GSUB Extension Substitution subtable identifier-format must be 1");var t=this.parseUShort(),r=new ne(this.data,this.offset+this.parseULong());return{substFormat:1,lookupType:t,extension:vt[t].call(r)}},vt[8]=function(){var e=this.parseUShort();return L.argument(1===e,"GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(ne.coverage),backtrackCoverage:this.parseList(ne.pointer(ne.coverage)),lookaheadCoverage:this.parseList(ne.pointer(ne.coverage)),substitutes:this.parseUShortList()}};var bt=new Array(9);bt[1]=function(e){return 1===e.substFormat?new J.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new J.Coverage(e.coverage)},{name:"deltaGlyphID",type:"USHORT",value:e.deltaGlyphId}]):new J.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:2},{name:"coverage",type:"TABLE",value:new J.Coverage(e.coverage)}].concat(J.ushortList("substitute",e.substitute)))},bt[3]=function(e){return L.assert(1===e.substFormat,"Lookup type 3 substFormat must be 1."),new J.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new J.Coverage(e.coverage)}].concat(J.tableList("altSet",e.alternateSets,(function(e){return new J.Table("alternateSetTable",J.ushortList("alternate",e))}))))},bt[4]=function(e){return L.assert(1===e.substFormat,"Lookup type 4 substFormat must be 1."),new J.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new J.Coverage(e.coverage)}].concat(J.tableList("ligSet",e.ligatureSets,(function(e){return new J.Table("ligatureSetTable",J.tableList("ligature",e,(function(e){return new J.Table("ligatureTable",[{name:"ligGlyph",type:"USHORT",value:e.ligGlyph}].concat(J.ushortList("component",e.components,e.components.length+1)))})))}))))};var _t=function(e,t){var r=new ne(e,t=t||0),i=r.parseVersion(1);return L.argument(1===i||1.1===i,"Unsupported GSUB table version."),1===i?{version:i,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(vt)}:{version:i,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(vt),variations:r.parseFeatureVariationsList()}},xt=function(e){return new J.Table("GSUB",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new J.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new J.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new J.LookupList(e.lookups,bt)}])},wt=function(e,t){var r=new ae.Parser(e,t),i=r.parseULong();L.argument(1===i,"Unsupported META table version."),r.parseULong(),r.parseULong();for(var n=r.parseULong(),o={},a=0;a<n;a++){var s=r.parseTag(),l=r.parseULong(),u=r.parseULong(),h=A.UTF8(e,t+l,u);o[s]=h}return o},St=function(e){var t=Object.keys(e).length,r="",i=16+12*t,n=new J.Table("meta",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"offset",type:"ULONG",value:i},{name:"numTags",type:"ULONG",value:t}]);for(var o in e){var a=r.length;r+=e[o],n.fields.push({name:"tag "+o,type:"TAG",value:o}),n.fields.push({name:"offset "+o,type:"ULONG",value:i+a}),n.fields.push({name:"length "+o,type:"ULONG",value:e[o].length})}return n.fields.push({name:"stringPool",type:"CHARARRAY",value:r}),n};function Mt(e){return Math.log(e)/Math.log(2)|0}function Et(e){for(;e.length%4!=0;)e.push(0);for(var t=0,r=0;r<e.length;r+=4)t+=(e[r]<<24)+(e[r+1]<<16)+(e[r+2]<<8)+e[r+3];return t%Math.pow(2,32)}function Tt(e,t,r,i){return new J.Record("Table Record",[{name:"tag",type:"TAG",value:void 0!==e?e:""},{name:"checkSum",type:"ULONG",value:void 0!==t?t:0},{name:"offset",type:"ULONG",value:void 0!==r?r:0},{name:"length",type:"ULONG",value:void 0!==i?i:0}])}function Ct(e){var t=new J.Table("sfnt",[{name:"version",type:"TAG",value:"OTTO"},{name:"numTables",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);t.tables=e,t.numTables=e.length;var r=Math.pow(2,Mt(t.numTables));t.searchRange=16*r,t.entrySelector=Mt(r),t.rangeShift=16*t.numTables-t.searchRange;for(var i=[],n=[],o=t.sizeOf()+Tt().sizeOf()*t.numTables;o%4!=0;)o+=1,n.push({name:"padding",type:"BYTE",value:0});for(var a=0;a<e.length;a+=1){var s=e[a];L.argument(4===s.tableName.length,"Table name"+s.tableName+" is invalid.");var l=s.sizeOf(),u=Tt(s.tableName,Et(s.encode()),o,l);for(i.push({name:u.tag+" Table Record",type:"RECORD",value:u}),n.push({name:s.tableName+" table",type:"RECORD",value:s}),o+=l,L.argument(!isNaN(o),"Something went wrong calculating the offset.");o%4!=0;)o+=1,n.push({name:"padding",type:"BYTE",value:0})}return i.sort((function(e,t){return e.value.tag>t.value.tag?1:-1})),t.fields=t.fields.concat(i),t.fields=t.fields.concat(n),t}function Ot(e,t,r){for(var i=0;i<t.length;i+=1){var n=e.charToGlyphIndex(t[i]);if(0<n)return e.glyphs.get(n).getMetrics()}return r}var Pt=function(e){for(var t,r=[],i=[],n=[],o=[],a=[],s=[],l=[],u=0,h=0,c=0,d=0,f=0,p=0;p<e.glyphs.length;p+=1){var m=e.glyphs.get(p),y=0|m.unicode;if(isNaN(m.advanceWidth))throw new Error("Glyph "+m.name+" ("+p+"): advanceWidth is not a number.");(y<t||void 0===t)&&0<y&&(t=y),u<y&&(u=y);var v=pt(y);if(v<32)h|=1<<v;else if(v<64)c|=1<<v-32;else if(v<96)d|=1<<v-64;else{if(!(v<123))throw new Error("Unicode ranges bits > 123 are reserved for internal usage");f|=1<<v-96}if(".notdef"!==m.name){var g=m.getMetrics();r.push(g.xMin),i.push(g.yMin),n.push(g.xMax),o.push(g.yMax),s.push(g.leftSideBearing),l.push(g.rightSideBearing),a.push(m.advanceWidth)}}var b={xMin:Math.min.apply(null,r),yMin:Math.min.apply(null,i),xMax:Math.max.apply(null,n),yMax:Math.max.apply(null,o),advanceWidthMax:Math.max.apply(null,a),advanceWidthAvg:function(e){for(var t=0,r=0;r<e.length;r+=1)t+=e[r];return t/e.length}(a),minLeftSideBearing:Math.min.apply(null,s),maxLeftSideBearing:Math.max.apply(null,s),minRightSideBearing:Math.min.apply(null,l)};b.ascender=e.ascender,b.descender=e.descender;var _=Ve({flags:3,unitsPerEm:e.unitsPerEm,xMin:b.xMin,yMin:b.yMin,xMax:b.xMax,yMax:b.yMax,lowestRecPPEM:3,createdTimestamp:e.createdTimestamp}),x=He({ascender:b.ascender,descender:b.descender,advanceWidthMax:b.advanceWidthMax,minLeftSideBearing:b.minLeftSideBearing,minRightSideBearing:b.minRightSideBearing,xMaxExtent:b.maxLeftSideBearing+(b.xMax-b.xMin),numberOfHMetrics:e.glyphs.length}),w=Qe(e.glyphs.length),S=ft({xAvgCharWidth:Math.round(b.advanceWidthAvg),usWeightClass:e.tables.os2.usWeightClass,usWidthClass:e.tables.os2.usWidthClass,usFirstCharIndex:t,usLastCharIndex:u,ulUnicodeRange1:h,ulUnicodeRange2:c,ulUnicodeRange3:d,ulUnicodeRange4:f,fsSelection:e.tables.os2.fsSelection,sTypoAscender:b.ascender,sTypoDescender:b.descender,sTypoLineGap:0,usWinAscent:b.yMax,usWinDescent:Math.abs(b.yMin),ulCodePageRange1:1,sxHeight:Ot(e,"xyvw",{yMax:Math.round(b.ascender/2)}).yMax,sCapHeight:Ot(e,"HIKLEFJMNTZBDPRAGOQSUVWXY",b).yMax,usDefaultChar:e.hasChar(" ")?32:0,usBreakChar:e.hasChar(" ")?32:0}),M=qe(e.glyphs),E=le(e.glyphs),T=e.getEnglishName("fontFamily"),C=e.getEnglishName("fontSubfamily"),O=T+" "+C,P=e.getEnglishName("postScriptName");P=P||T.replace(/\s/g,"")+"-"+C;var L={};for(var k in e.names)L[k]=e.names[k];L.uniqueID||(L.uniqueID={en:e.getEnglishName("manufacturer")+":"+O}),L.postScriptName||(L.postScriptName={en:P}),L.preferredFamily||(L.preferredFamily=e.names.fontFamily),L.preferredSubfamily||(L.preferredSubfamily=e.names.fontSubfamily);var A=[],R=ht(L,A),D=0<A.length?Xe(A):void 0,I=yt(),U=Ge(e.glyphs,{version:e.getEnglishName("version"),fullName:O,familyName:T,weightName:C,postScriptName:P,unitsPerEm:e.unitsPerEm,fontBBox:[0,b.yMin,b.ascender,b.advanceWidthMax]}),N=e.metas&&0<Object.keys(e.metas).length?St(e.metas):void 0,F=[_,x,w,S,R,E,I,U,M];D&&F.push(D),e.tables.gsub&&F.push(xt(e.tables.gsub)),N&&F.push(N);for(var B=Ct(F),G=Et(B.encode()),j=B.fields,V=!1,z=0;z<j.length;z+=1)if("head table"===j[z].name){j[z].value.checkSumAdjustment=2981146554-G,V=!0;break}if(!V)throw new Error("Could not find head table with checkSum to adjust.");return B};function Lt(e,t){for(var r=0,i=e.length-1;r<=i;){var n=r+i>>>1,o=e[n].tag;if(o===t)return n;o<t?r=1+n:i=n-1}return-r-1}function kt(e,t){for(var r=0,i=e.length-1;r<=i;){var n=r+i>>>1,o=e[n];if(o===t)return n;o<t?r=1+n:i=n-1}return-r-1}function At(e,t){for(var r,i=0,n=e.length-1;i<=n;){var o=i+n>>>1,a=(r=e[o]).start;if(a===t)return r;a<t?i=1+o:n=o-1}if(0<i)return t>(r=e[i-1]).end?0:r}function Rt(e,t){this.font=e,this.tableName=t}function Dt(e){Rt.call(this,e,"gpos")}function It(e){Rt.call(this,e,"gsub")}function Ut(e,t){var r=e.length;if(r!==t.length)return!1;for(var i=0;i<r;i++)if(e[i]!==t[i])return!1;return!0}function Nt(e,t,r){for(var i=e.subtables,n=0;n<i.length;n++){var o=i[n];if(o.substFormat===t)return o}if(r)return i.push(r),r}function Ft(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),i=0;i<e.length;++i)r[i]=e[i];return t}function Bt(e,t){if(!e)throw t}function Gt(e,t,r,i,n){var o;return 0<(t&i)?(o=e.parseByte(),0==(t&n)&&(o=-o),r+o):0<(t&n)?r:r+e.parseShort()}function jt(e,t,r){var i,n,o=new ae.Parser(t,r);if(e.numberOfContours=o.parseShort(),e._xMin=o.parseShort(),e._yMin=o.parseShort(),e._xMax=o.parseShort(),e._yMax=o.parseShort(),0<e.numberOfContours){for(var a=e.endPointIndices=[],s=0;s<e.numberOfContours;s+=1)a.push(o.parseUShort());e.instructionLength=o.parseUShort(),e.instructions=[];for(var l=0;l<e.instructionLength;l+=1)e.instructions.push(o.parseByte());var u=a[a.length-1]+1;i=[];for(var h=0;h<u;h+=1)if(n=o.parseByte(),i.push(n),0<(8&n))for(var c=o.parseByte(),d=0;d<c;d+=1)i.push(n),h+=1;if(L.argument(i.length===u,"Bad flags."),0<a.length){var f,p=[];if(0<u){for(var m=0;m<u;m+=1)n=i[m],(f={}).onCurve=!!(1&n),f.lastPointOfContour=0<=a.indexOf(m),p.push(f);for(var y=0,v=0;v<u;v+=1)n=i[v],(f=p[v]).x=Gt(o,n,y,2,16),y=f.x;for(var g=0,b=0;b<u;b+=1)n=i[b],(f=p[b]).y=Gt(o,n,g,4,32),g=f.y}e.points=p}else e.points=[]}else if(0===e.numberOfContours)e.points=[];else{e.isComposite=!0,e.points=[],e.components=[];for(var _=!0;_;){i=o.parseUShort();var x={glyphIndex:o.parseUShort(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};0<(1&i)?0<(2&i)?(x.dx=o.parseShort(),x.dy=o.parseShort()):x.matchedPoints=[o.parseUShort(),o.parseUShort()]:0<(2&i)?(x.dx=o.parseChar(),x.dy=o.parseChar()):x.matchedPoints=[o.parseByte(),o.parseByte()],0<(8&i)?x.xScale=x.yScale=o.parseF2Dot14():0<(64&i)?(x.xScale=o.parseF2Dot14(),x.yScale=o.parseF2Dot14()):0<(128&i)&&(x.xScale=o.parseF2Dot14(),x.scale01=o.parseF2Dot14(),x.scale10=o.parseF2Dot14(),x.yScale=o.parseF2Dot14()),e.components.push(x),_=!!(32&i)}if(256&i){e.instructionLength=o.parseUShort(),e.instructions=[];for(var w=0;w<e.instructionLength;w+=1)e.instructions.push(o.parseByte())}}}function Vt(e,t){for(var r=[],i=0;i<e.length;i+=1){var n=e[i],o={x:t.xScale*n.x+t.scale01*n.y+t.dx,y:t.scale10*n.x+t.yScale*n.y+t.dy,onCurve:n.onCurve,lastPointOfContour:n.lastPointOfContour};r.push(o)}return r}function zt(e){var t=new C;if(!e)return t;for(var r=function(e){for(var t=[],r=[],i=0;i<e.length;i+=1){var n=e[i];r.push(n),n.lastPointOfContour&&(t.push(r),r=[])}return L.argument(0===r.length,"There are still points left in the current contour."),t}(e),i=0;i<r.length;++i){var n=r[i],o=null,a=n[n.length-1],s=n[0];if(a.onCurve)t.moveTo(a.x,a.y);else if(s.onCurve)t.moveTo(s.x,s.y);else{var l={x:.5*(a.x+s.x),y:.5*(a.y+s.y)};t.moveTo(l.x,l.y)}for(var u=0;u<n.length;++u)if(o=a,a=s,s=n[(u+1)%n.length],a.onCurve)t.lineTo(a.x,a.y);else{var h=s;o.onCurve||(a.x,o.x,a.y,o.y),s.onCurve||(h={x:.5*(a.x+s.x),y:.5*(a.y+s.y)}),t.quadraticCurveTo(a.x,a.y,h.x,h.y)}t.closePath()}return t}function Ht(e,t){if(t.isComposite)for(var r=0;r<t.components.length;r+=1){var i=t.components[r],n=e.get(i.glyphIndex);if(n.getPath(),n.points){var o=void 0;if(void 0===i.matchedPoints)o=Vt(n.points,i);else{if(i.matchedPoints[0]>t.points.length-1||i.matchedPoints[1]>n.points.length-1)throw Error("Matched points out of range in "+t.name);var a=t.points[i.matchedPoints[0]],s=n.points[i.matchedPoints[1]],l={xScale:i.xScale,scale01:i.scale01,scale10:i.scale10,yScale:i.yScale,dx:0,dy:0};s=Vt([s],l)[0],l.dx=a.x-s.x,l.dy=a.y-s.y,o=Vt(n.points,l)}t.points=t.points.concat(o)}}return zt(t.points)}(Dt.prototype=Rt.prototype={searchTag:Lt,binSearch:kt,getTable:function(e){var t=this.font.tables[this.tableName];return!t&&e&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var e=this.getTable();return e?e.scripts.map((function(e){return e.tag})):[]},getDefaultScriptName:function(){var e=this.getTable();if(e){for(var t=!1,r=0;r<e.scripts.length;r++){var i=e.scripts[r].tag;if("DFLT"===i)return i;"latn"===i&&(t=!0)}return t?"latn":void 0}},getScriptTable:function(e,t){var r=this.getTable(t);if(r){e=e||"DFLT";var i=r.scripts,n=Lt(r.scripts,e);if(0<=n)return i[n].script;if(t){var o={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return i.splice(-1-n,0,o),o.script}}},getLangSysTable:function(e,t,r){var i=this.getScriptTable(e,r);if(i){if(!t||"dflt"===t||"DFLT"===t)return i.defaultLangSys;var n=Lt(i.langSysRecords,t);if(0<=n)return i.langSysRecords[n].langSys;if(r){var o={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return i.langSysRecords.splice(-1-n,0,o),o.langSys}}},getFeatureTable:function(e,t,r,i){var n=this.getLangSysTable(e,t,i);if(n){for(var o,a=n.featureIndexes,s=this.font.tables[this.tableName].features,l=0;l<a.length;l++)if((o=s[a[l]]).tag===r)return o.feature;if(i){var u=s.length;return L.assert(0===u||r>=s[u-1].tag,"Features must be added in alphabetical order."),o={tag:r,feature:{params:0,lookupListIndexes:[]}},s.push(o),a.push(u),o.feature}}},getLookupTables:function(e,t,r,i,n){var o=this.getFeatureTable(e,t,r,n),a=[];if(o){for(var s,l=o.lookupListIndexes,u=this.font.tables[this.tableName].lookups,h=0;h<l.length;h++)(s=u[l[h]]).lookupType===i&&a.push(s);if(0===a.length&&n){s={lookupType:i,lookupFlag:0,subtables:[],markFilteringSet:void 0};var c=u.length;return u.push(s),l.push(c),[s]}}return a},getGlyphClass:function(e,t){switch(e.format){case 1:return e.startGlyph<=t&&t<e.startGlyph+e.classes.length?e.classes[t-e.startGlyph]:0;case 2:var r=At(e.ranges,t);return r?r.classId:0}},getCoverageIndex:function(e,t){switch(e.format){case 1:var r=kt(e.glyphs,t);return 0<=r?r:-1;case 2:var i=At(e.ranges,t);return i?i.index+t-i.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],r=e.ranges,i=0;i<r.length;i++)for(var n=r[i],o=n.start,a=n.end,s=o;s<=a;s++)t.push(s);return t}}).init=function(){var e=this.getDefaultScriptName();this.defaultKerningTables=this.getKerningTables(e)},Dt.prototype.getKerningValue=function(e,t,r){for(var i=0;i<e.length;i++)for(var n=e[i].subtables,o=0;o<n.length;o++){var a=n[o],s=this.getCoverageIndex(a.coverage,t);if(!(s<0))switch(a.posFormat){case 1:for(var l=a.pairSets[s],u=0;u<l.length;u++){var h=l[u];if(h.secondGlyph===r)return h.value1&&h.value1.xAdvance||0}break;case 2:var c=this.getGlyphClass(a.classDef1,t),d=this.getGlyphClass(a.classDef2,r),f=a.classRecords[c][d];return f.value1&&f.value1.xAdvance||0}}return 0},Dt.prototype.getKerningTables=function(e,t){if(this.font.tables.gpos)return this.getLookupTables(e,t,"kern",2)},(It.prototype=Rt.prototype).createDefaultTable=function(){return{version:1,scripts:[{tag:"DFLT",script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}}],features:[],lookups:[]}},It.prototype.getSingle=function(e,t,r){for(var i=[],n=this.getLookupTables(t,r,e,1),o=0;o<n.length;o++)for(var a=n[o].subtables,s=0;s<a.length;s++){var l=a[s],u=this.expandCoverage(l.coverage),h=void 0;if(1===l.substFormat){var c=l.deltaGlyphId;for(h=0;h<u.length;h++){var d=u[h];i.push({sub:d,by:d+c})}}else{var f=l.substitute;for(h=0;h<u.length;h++)i.push({sub:u[h],by:f[h]})}}return i},It.prototype.getAlternates=function(e,t,r){for(var i=[],n=this.getLookupTables(t,r,e,3),o=0;o<n.length;o++)for(var a=n[o].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),h=l.alternateSets,c=0;c<u.length;c++)i.push({sub:u[c],by:h[c]});return i},It.prototype.getLigatures=function(e,t,r){for(var i=[],n=this.getLookupTables(t,r,e,4),o=0;o<n.length;o++)for(var a=n[o].subtables,s=0;s<a.length;s++)for(var l=a[s],u=this.expandCoverage(l.coverage),h=l.ligatureSets,c=0;c<u.length;c++)for(var d=u[c],f=h[c],p=0;p<f.length;p++){var m=f[p];i.push({sub:[d].concat(m.components),by:m.ligGlyph})}return i},It.prototype.addSingle=function(e,t,r,i){var n=Nt(this.getLookupTables(r,i,e,1,!0)[0],2,{substFormat:2,coverage:{format:1,glyphs:[]},substitute:[]});L.assert(1===n.coverage.format,"Ligature: unable to modify coverage table format "+n.coverage.format);var o=t.sub,a=this.binSearch(n.coverage.glyphs,o);a<0&&(a=-1-a,n.coverage.glyphs.splice(a,0,o),n.substitute.splice(a,0,0)),n.substitute[a]=t.by},It.prototype.addAlternate=function(e,t,r,i){var n=Nt(this.getLookupTables(r,i,e,3,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});L.assert(1===n.coverage.format,"Ligature: unable to modify coverage table format "+n.coverage.format);var o=t.sub,a=this.binSearch(n.coverage.glyphs,o);a<0&&(a=-1-a,n.coverage.glyphs.splice(a,0,o),n.alternateSets.splice(a,0,0)),n.alternateSets[a]=t.by},It.prototype.addLigature=function(e,t,r,i){var n=this.getLookupTables(r,i,e,4,!0)[0],o=n.subtables[0];o||(o={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},n.subtables[0]=o),L.assert(1===o.coverage.format,"Ligature: unable to modify coverage table format "+o.coverage.format);var a=t.sub[0],s=t.sub.slice(1),l={ligGlyph:t.by,components:s},u=this.binSearch(o.coverage.glyphs,a);if(0<=u){for(var h=o.ligatureSets[u],c=0;c<h.length;c++)if(Ut(h[c].components,s))return;h.push(l)}else u=-1-u,o.coverage.glyphs.splice(u,0,a),o.ligatureSets.splice(u,0,[l])},It.prototype.getFeature=function(e,t,r){if(/ss\d\d/.test(e))return this.getSingle(e,t,r);switch(e){case"aalt":case"salt":return this.getSingle(e,t,r).concat(this.getAlternates(e,t,r));case"dlig":case"liga":case"rlig":return this.getLigatures(e,t,r)}},It.prototype.add=function(e,t,r,i){if(/ss\d\d/.test(e))return this.addSingle(e,t,r,i);switch(e){case"aalt":case"salt":return"number"==typeof t.by?this.addSingle(e,t,r,i):this.addAlternate(e,t,r,i);case"dlig":case"liga":case"rlig":return this.addLigature(e,t,r,i)}};var Wt,qt,Xt,Yt,Zt={getPath:zt,parse:function(e,t,r,i){for(var n=new xe.GlyphSet(i),o=0;o<r.length-1;o+=1){var a=r[o];a!==r[o+1]?n.push(o,xe.ttfGlyphLoader(i,o,jt,e,t+a,Ht)):n.push(o,xe.glyphLoader(i,o))}return n}};function Qt(e){this.font=e,this.getCommands=function(e){return Zt.getPath(e).commands},this._fpgmState=this._prepState=void 0,this._errorState=0}function Kt(e){return e}function Jt(e){return Math.sign(e)*Math.round(Math.abs(e))}function $t(e){return Math.sign(e)*Math.round(Math.abs(2*e))/2}function er(e){return Math.sign(e)*(Math.round(Math.abs(e)+.5)-.5)}function tr(e){return Math.sign(e)*Math.ceil(Math.abs(e))}function rr(e){return Math.sign(e)*Math.floor(Math.abs(e))}function ir(e){var t=this.srPeriod,r=this.srPhase,i=1;return e<0&&(e=-e,i=-1),e+=this.srThreshold-r,e=Math.trunc(e/t)*t,(e+=r)<0?r*i:e*i}var nr={x:1,y:0,axis:"x",distance:function(e,t,r,i){return(r?e.xo:e.x)-(i?t.xo:t.x)},interpolate:function(e,t,r,i){var n,o,a,s,l,u,h;if(!i||i===this)return n=e.xo-t.xo,o=e.xo-r.xo,l=t.x-t.xo,u=r.x-r.xo,0===(h=(a=Math.abs(n))+(s=Math.abs(o)))?void(e.x=e.xo+(l+u)/2):void(e.x=e.xo+(l*s+u*a)/h);n=i.distance(e,t,!0,!0),o=i.distance(e,r,!0,!0),l=i.distance(t,t,!1,!0),u=i.distance(r,r,!1,!0),0!==(h=(a=Math.abs(n))+(s=Math.abs(o)))?nr.setRelative(e,e,(l*s+u*a)/h,i,!0):nr.setRelative(e,e,(l+u)/2,i,!0)},normalSlope:Number.NEGATIVE_INFINITY,setRelative:function(e,t,r,i,n){if(i&&i!==this){var o=n?t.xo:t.x,a=n?t.yo:t.y,s=o+r*i.x,l=a+r*i.y;e.x=s+(e.y-l)/i.normalSlope}else e.x=(n?t.xo:t.x)+r},slope:0,touch:function(e){e.xTouched=!0},touched:function(e){return e.xTouched},untouch:function(e){e.xTouched=!1}},or={x:0,y:1,axis:"y",distance:function(e,t,r,i){return(r?e.yo:e.y)-(i?t.yo:t.y)},interpolate:function(e,t,r,i){var n,o,a,s,l,u,h;if(!i||i===this)return n=e.yo-t.yo,o=e.yo-r.yo,l=t.y-t.yo,u=r.y-r.yo,0===(h=(a=Math.abs(n))+(s=Math.abs(o)))?void(e.y=e.yo+(l+u)/2):void(e.y=e.yo+(l*s+u*a)/h);n=i.distance(e,t,!0,!0),o=i.distance(e,r,!0,!0),l=i.distance(t,t,!1,!0),u=i.distance(r,r,!1,!0),0!==(h=(a=Math.abs(n))+(s=Math.abs(o)))?or.setRelative(e,e,(l*s+u*a)/h,i,!0):or.setRelative(e,e,(l+u)/2,i,!0)},normalSlope:0,setRelative:function(e,t,r,i,n){if(i&&i!==this){var o=n?t.xo:t.x,a=n?t.yo:t.y,s=o+r*i.x,l=a+r*i.y;e.y=l+i.normalSlope*(e.x-s)}else e.y=(n?t.yo:t.y)+r},slope:Number.POSITIVE_INFINITY,touch:function(e){e.yTouched=!0},touched:function(e){return e.yTouched},untouch:function(e){e.yTouched=!1}};function ar(e,t){this.x=e,this.y=t,this.axis=void 0,this.slope=t/e,this.normalSlope=-e/t,Object.freeze(this)}function sr(e,t){var r=Math.sqrt(e*e+t*t);return t/=r,1==(e/=r)&&0===t?nr:0===e&&1===t?or:new ar(e,t)}function lr(e,t,r,i){this.x=this.xo=Math.round(64*e)/64,this.y=this.yo=Math.round(64*t)/64,this.lastPointOfContour=r,this.onCurve=i,this.prevPointOnContour=void 0,this.nextPointOnContour=void 0,this.xTouched=!1,this.yTouched=!1,Object.preventExtensions(this)}Object.freeze(nr),Object.freeze(or),ar.prototype.distance=function(e,t,r,i){return this.x*nr.distance(e,t,r,i)+this.y*or.distance(e,t,r,i)},ar.prototype.interpolate=function(e,t,r,i){var n,o,a,s,l,u,h;a=i.distance(e,t,!0,!0),s=i.distance(e,r,!0,!0),n=i.distance(t,t,!1,!0),o=i.distance(r,r,!1,!0),0!==(h=(l=Math.abs(a))+(u=Math.abs(s)))?this.setRelative(e,e,(n*u+o*l)/h,i,!0):this.setRelative(e,e,(n+o)/2,i,!0)},ar.prototype.setRelative=function(e,t,r,i,n){i=i||this;var o=n?t.xo:t.x,a=n?t.yo:t.y,s=o+r*i.x,l=a+r*i.y,u=i.normalSlope,h=this.slope,c=e.x,d=e.y;e.x=(h*c-u*s+l-d)/(h-u),e.y=h*(e.x-c)+d},ar.prototype.touch=function(e){e.xTouched=!0,e.yTouched=!0},lr.prototype.nextTouched=function(e){for(var t=this.nextPointOnContour;!e.touched(t)&&t!==this;)t=t.nextPointOnContour;return t},lr.prototype.prevTouched=function(e){for(var t=this.prevPointOnContour;!e.touched(t)&&t!==this;)t=t.prevPointOnContour;return t};var ur=Object.freeze(new lr(0,0)),hr={cvCutIn:17/16,deltaBase:9,deltaShift:.125,loop:1,minDis:1,autoFlip:!0};function cr(e,t){switch(this.env=e,this.stack=[],this.prog=t,e){case"glyf":this.zp0=this.zp1=this.zp2=1,this.rp0=this.rp1=this.rp2=0;case"prep":this.fv=this.pv=this.dpv=nr,this.round=Jt}}function dr(e){for(var t=e.tZone=new Array(e.gZone.length),r=0;r<t.length;r++)t[r]=new lr(0,0)}function fr(e,t){var r,i=e.prog,n=e.ip,o=1;do{if(88===(r=i[++n]))o++;else if(89===r)o--;else if(64===r)n+=i[n+1]+1;else if(65===r)n+=2*i[n+1]+1;else if(176<=r&&r<=183)n+=r-176+1;else if(184<=r&&r<=191)n+=2*(r-184+1);else if(t&&1===o&&27===r)break}while(0<o);e.ip=n}function pr(e,r){t.DEBUG&&console.log(r.step,"SVTCA["+e.axis+"]"),r.fv=r.pv=r.dpv=e}function mr(e,r){t.DEBUG&&console.log(r.step,"SPVTCA["+e.axis+"]"),r.pv=r.dpv=e}function yr(e,r){t.DEBUG&&console.log(r.step,"SFVTCA["+e.axis+"]"),r.fv=e}function vr(e,r){var i,n,o=r.stack,a=o.pop(),s=o.pop(),l=r.z2[a],u=r.z1[s];t.DEBUG&&console.log("SPVTL["+e+"]",a,s),n=e?(i=l.y-u.y,u.x-l.x):(i=u.x-l.x,u.y-l.y),r.pv=r.dpv=sr(i,n)}function gr(e,r){var i,n,o=r.stack,a=o.pop(),s=o.pop(),l=r.z2[a],u=r.z1[s];t.DEBUG&&console.log("SFVTL["+e+"]",a,s),n=e?(i=l.y-u.y,u.x-l.x):(i=u.x-l.x,u.y-l.y),r.fv=sr(i,n)}function br(e){t.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function _r(e,r){var i=r.stack.pop(),n=r.z0[i],o=r.fv,a=r.pv;t.DEBUG&&console.log(r.step,"MDAP["+e+"]",i);var s=a.distance(n,ur);e&&(s=r.round(s)),o.setRelative(n,ur,s,a),o.touch(n),r.rp0=r.rp1=i}function xr(e,r){var i,n,o,a=r.z2,s=a.length-2;t.DEBUG&&console.log(r.step,"IUP["+e.axis+"]");for(var l=0;l<s;l++)i=a[l],e.touched(i)||(n=i.prevTouched(e))!==i&&(n===(o=i.nextTouched(e))&&e.setRelative(i,i,e.distance(n,n,!1,!0),e,!0),e.interpolate(i,n,o,e))}function wr(e,r){for(var i=r.stack,n=e?r.rp1:r.rp2,o=(e?r.z0:r.z1)[n],a=r.fv,s=r.pv,l=r.loop,u=r.z2;l--;){var h=i.pop(),c=u[h],d=s.distance(o,o,!1,!0);a.setRelative(c,c,d,s),a.touch(c),t.DEBUG&&console.log(r.step,(1<r.loop?"loop "+(r.loop-l)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",h)}r.loop=1}function Sr(e,r){var i=r.stack,n=e?r.rp1:r.rp2,o=(e?r.z0:r.z1)[n],a=r.fv,s=r.pv,l=i.pop(),u=r.z2[r.contours[l]],h=u;t.DEBUG&&console.log(r.step,"SHC["+e+"]",l);for(var c=s.distance(o,o,!1,!0);h!==o&&a.setRelative(h,h,c,s),(h=h.nextPointOnContour)!==u;);}function Mr(e,r){var i,n,o=r.stack,a=e?r.rp1:r.rp2,s=(e?r.z0:r.z1)[a],l=r.fv,u=r.pv,h=o.pop();switch(t.DEBUG&&console.log(r.step,"SHZ["+e+"]",h),h){case 0:i=r.tZone;break;case 1:i=r.gZone;break;default:throw new Error("Invalid zone")}for(var c=u.distance(s,s,!1,!0),d=i.length-2,f=0;f<d;f++)n=i[f],l.setRelative(n,n,c,u)}function Er(e,r){var i=r.stack,n=i.pop()/64,o=i.pop(),a=r.z1[o],s=r.z0[r.rp0],l=r.fv,u=r.pv;l.setRelative(a,s,n,u),l.touch(a),t.DEBUG&&console.log(r.step,"MSIRP["+e+"]",n,o),r.rp1=r.rp0,r.rp2=o,e&&(r.rp0=o)}function Tr(e,r){var i=r.stack,n=i.pop(),o=i.pop(),a=r.z0[o],s=r.fv,l=r.pv,u=r.cvt[n];t.DEBUG&&console.log(r.step,"MIAP["+e+"]",n,"(",u,")",o);var h=l.distance(a,ur);e&&(Math.abs(h-u)<r.cvCutIn&&(h=u),h=r.round(h)),s.setRelative(a,ur,h,l),0===r.zp0&&(a.xo=a.x,a.yo=a.y),s.touch(a),r.rp0=r.rp1=o}function Cr(e,r){var i=r.stack,n=i.pop(),o=r.z2[n];t.DEBUG&&console.log(r.step,"GC["+e+"]",n),i.push(64*r.dpv.distance(o,ur,e,!1))}function Or(e,r){var i=r.stack,n=i.pop(),o=i.pop(),a=r.z1[n],s=r.z0[o],l=r.dpv.distance(s,a,e,e);t.DEBUG&&console.log(r.step,"MD["+e+"]",n,o,"->",l),r.stack.push(Math.round(64*l))}function Pr(e,r){var i=r.stack,n=i.pop(),o=r.fv,a=r.pv,s=r.ppem,l=r.deltaBase+16*(e-1),u=r.deltaShift,h=r.z0;t.DEBUG&&console.log(r.step,"DELTAP["+e+"]",n,i);for(var c=0;c<n;c++){var d=i.pop(),f=i.pop();if(l+((240&f)>>4)===s){var p=(15&f)-8;0<=p&&p++,t.DEBUG&&console.log(r.step,"DELTAPFIX",d,"by",p*u);var m=h[d];o.setRelative(m,m,p*u,a)}}}function Lr(e,r){var i=r.stack,n=i.pop();t.DEBUG&&console.log(r.step,"ROUND[]"),i.push(64*r.round(n/64))}function kr(e,r){var i=r.stack,n=i.pop(),o=r.ppem,a=r.deltaBase+16*(e-1),s=r.deltaShift;t.DEBUG&&console.log(r.step,"DELTAC["+e+"]",n,i);for(var l=0;l<n;l++){var u=i.pop(),h=i.pop();if(a+((240&h)>>4)===o){var c=(15&h)-8;0<=c&&c++;var d=c*s;t.DEBUG&&console.log(r.step,"DELTACFIX",u,"by",d),r.cvt[u]+=d}}}function Ar(e,r){var i,n,o=r.stack,a=o.pop(),s=o.pop(),l=r.z2[a],u=r.z1[s];t.DEBUG&&console.log(r.step,"SDPVTL["+e+"]",a,s),n=e?(i=l.y-u.y,u.x-l.x):(i=u.x-l.x,u.y-l.y),r.dpv=sr(i,n)}function Rr(e,r){var i=r.stack,n=r.prog,o=r.ip;t.DEBUG&&console.log(r.step,"PUSHB["+e+"]");for(var a=0;a<e;a++)i.push(n[++o]);r.ip=o}function Dr(e,r){var i=r.ip,n=r.prog,o=r.stack;t.DEBUG&&console.log(r.ip,"PUSHW["+e+"]");for(var a=0;a<e;a++){var s=n[++i]<<8|n[++i];32768&s&&(s=-(1+(65535^s))),o.push(s)}r.ip=i}function Ir(e,r,i,n,o,a){var s,l,u,h,c=a.stack,d=e&&c.pop(),f=c.pop(),p=a.rp0,m=a.z0[p],y=a.z1[f],v=a.minDis,g=a.fv,b=a.dpv;u=0<=(l=s=b.distance(y,m,!0,!0))?1:-1,l=Math.abs(l),e&&(h=a.cvt[d],n&&Math.abs(l-h)<a.cvCutIn&&(l=h)),i&&l<v&&(l=v),n&&(l=a.round(l)),g.setRelative(y,m,u*l,b),g.touch(y),t.DEBUG&&console.log(a.step,(e?"MIRP[":"MDRP[")+(r?"M":"m")+(i?">":"_")+(n?"R":"_")+(0===o?"Gr":1===o?"Bl":2===o?"Wh":"")+"]",e?d+"("+a.cvt[d]+","+h+")":"",f,"(d =",s,"->",u*l,")"),a.rp1=a.rp0,a.rp2=f,r&&(a.rp0=f)}Qt.prototype.exec=function(e,r){if("number"!=typeof r)throw new Error("Point size is not a number!");if(!(2<this._errorState)){var i=this.font,n=this._prepState;if(!n||n.ppem!==r){var o=this._fpgmState;if(!o){cr.prototype=hr,(o=this._fpgmState=new cr("fpgm",i.tables.fpgm)).funcs=[],o.font=i,t.DEBUG&&(console.log("---EXEC FPGM---"),o.step=-1);try{qt(o)}catch(e){return console.log("Hinting error in FPGM:"+e),void(this._errorState=3)}}cr.prototype=o,(n=this._prepState=new cr("prep",i.tables.prep)).ppem=r;var a=i.tables.cvt;if(a)for(var s=n.cvt=new Array(a.length),l=r/i.unitsPerEm,u=0;u<a.length;u++)s[u]=a[u]*l;else n.cvt=[];t.DEBUG&&(console.log("---EXEC PREP---"),n.step=-1);try{qt(n)}catch(e){this._errorState<2&&console.log("Hinting error in PREP:"+e),this._errorState=2}}if(!(1<this._errorState))try{return Xt(e,n)}catch(e){return this._errorState<1&&(console.log("Hinting error:"+e),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},Xt=function(e,r){var i,n,o,a=r.ppem/r.font.unitsPerEm,s=a,l=e.components;if(cr.prototype=r,l){var u=r.font;n=[],i=[];for(var h=0;h<l.length;h++){var c=l[h],d=u.glyphs.get(c.glyphIndex);o=new cr("glyf",d.instructions),t.DEBUG&&(console.log("---EXEC COMP "+h+"---"),o.step=-1),Yt(d,o,a,s);for(var f=Math.round(c.dx*a),p=Math.round(c.dy*s),m=o.gZone,y=o.contours,v=0;v<m.length;v++){var g=m[v];g.xTouched=g.yTouched=!1,g.xo=g.x=g.x+f,g.yo=g.y=g.y+p}var b=n.length;n.push.apply(n,m);for(var _=0;_<y.length;_++)i.push(y[_]+b)}e.instructions&&!o.inhibitGridFit&&((o=new cr("glyf",e.instructions)).gZone=o.z0=o.z1=o.z2=n,o.contours=i,n.push(new lr(0,0),new lr(Math.round(e.advanceWidth*a),0)),t.DEBUG&&(console.log("---EXEC COMPOSITE---"),o.step=-1),qt(o),n.length-=2)}else o=new cr("glyf",e.instructions),t.DEBUG&&(console.log("---EXEC GLYPH---"),o.step=-1),Yt(e,o,a,s),n=o.gZone;return n},Yt=function(e,r,i,n){for(var o,a,s,l=e.points||[],u=l.length,h=r.gZone=r.z0=r.z1=r.z2=[],c=r.contours=[],d=0;d<u;d++)o=l[d],h[d]=new lr(o.x*i,o.y*n,o.lastPointOfContour,o.onCurve);for(var f=0;f<u;f++)o=h[f],a||(a=o,c.push(f)),o.lastPointOfContour?((o.nextPointOnContour=a).prevPointOnContour=o,a=void 0):(s=h[f+1],(o.nextPointOnContour=s).prevPointOnContour=o);if(!r.inhibitGridFit){if(t.DEBUG){console.log("PROCESSING GLYPH",r.stack);for(var p=0;p<u;p++)console.log(p,h[p].x,h[p].y)}if(h.push(new lr(0,0),new lr(Math.round(e.advanceWidth*i),0)),qt(r),h.length-=2,t.DEBUG){console.log("FINISHED GLYPH",r.stack);for(var m=0;m<u;m++)console.log(m,h[m].x,h[m].y)}}},qt=function(e){var r=e.prog;if(r){var i,n=r.length;for(e.ip=0;e.ip<n;e.ip++){if(t.DEBUG&&e.step++,!(i=Wt[r[e.ip]]))throw new Error("unknown instruction: 0x"+Number(r[e.ip]).toString(16));i(e)}}},Wt=[pr.bind(void 0,or),pr.bind(void 0,nr),mr.bind(void 0,or),mr.bind(void 0,nr),yr.bind(void 0,or),yr.bind(void 0,nr),vr.bind(void 0,0),vr.bind(void 0,1),gr.bind(void 0,0),gr.bind(void 0,1),function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"SPVFS[]",i,n),e.pv=e.dpv=sr(n,i)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"SPVFS[]",i,n),e.fv=sr(n,i)},function(e){var r=e.stack,i=e.pv;t.DEBUG&&console.log(e.step,"GPV[]"),r.push(16384*i.x),r.push(16384*i.y)},function(e){var r=e.stack,i=e.fv;t.DEBUG&&console.log(e.step,"GFV[]"),r.push(16384*i.x),r.push(16384*i.y)},function(e){e.fv=e.pv,t.DEBUG&&console.log(e.step,"SFVTPV[]")},function(e){var r=e.stack,i=r.pop(),n=r.pop(),o=r.pop(),a=r.pop(),s=r.pop(),l=e.z0,u=e.z1,h=l[i],c=l[n],d=u[o],f=u[a],p=e.z2[s];t.DEBUG&&console.log("ISECT[], ",i,n,o,a,s);var m=h.x,y=h.y,v=c.x,g=c.y,b=d.x,_=d.y,x=f.x,w=f.y,S=(m-v)*(_-w)-(y-g)*(b-x),M=m*g-y*v,E=b*w-_*x;p.x=(M*(b-x)-E*(m-v))/S,p.y=(M*(_-w)-E*(y-g))/S},function(e){e.rp0=e.stack.pop(),t.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)},function(e){e.rp1=e.stack.pop(),t.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)},function(e){e.rp2=e.stack.pop(),t.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)},function(e){var r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SZP0[]",r),e.zp0=r){case 0:e.tZone||dr(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}},function(e){var r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SZP1[]",r),e.zp1=r){case 0:e.tZone||dr(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}},function(e){var r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SZP2[]",r),e.zp2=r){case 0:e.tZone||dr(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}},function(e){var r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SZPS[]",r),e.zp0=e.zp1=e.zp2=r,r){case 0:e.tZone||dr(e),e.z0=e.z1=e.z2=e.tZone;break;case 1:e.z0=e.z1=e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}},function(e){e.loop=e.stack.pop(),t.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)},function(e){t.DEBUG&&console.log(e.step,"RTG[]"),e.round=Jt},function(e){t.DEBUG&&console.log(e.step,"RTHG[]"),e.round=er},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SMD[]",r),e.minDis=r/64},function(e){t.DEBUG&&console.log(e.step,"ELSE[]"),fr(e,!1)},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"JMPR[]",r),e.ip+=r-1},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SCVTCI[]",r),e.cvCutIn=r/64},void 0,void 0,function(e){var r=e.stack;t.DEBUG&&console.log(e.step,"DUP[]"),r.push(r[r.length-1])},br,function(e){t.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"SWAP[]"),r.push(i),r.push(n)},function(e){var r=e.stack;t.DEBUG&&console.log(e.step,"DEPTH[]"),r.push(r.length)},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"CINDEX[]",i),r.push(r[r.length-i])},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"MINDEX[]",i),r.push(r.splice(r.length-i,1)[0])},void 0,void 0,void 0,function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"LOOPCALL[]",i,n);var o=e.ip,a=e.prog;e.prog=e.funcs[i];for(var s=0;s<n;s++)qt(e),t.DEBUG&&console.log(++e.step,s+1<n?"next loopcall":"done loopcall",s);e.ip=o,e.prog=a},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"CALL[]",r);var i=e.ip,n=e.prog;e.prog=e.funcs[r],qt(e),e.ip=i,e.prog=n,t.DEBUG&&console.log(++e.step,"returning from",r)},function(e){if("fpgm"!==e.env)throw new Error("FDEF not allowed here");var r=e.stack,i=e.prog,n=e.ip,o=r.pop(),a=n;for(t.DEBUG&&console.log(e.step,"FDEF[]",o);45!==i[++n];);e.ip=n,e.funcs[o]=i.slice(a+1,n)},void 0,_r.bind(void 0,0),_r.bind(void 0,1),xr.bind(void 0,or),xr.bind(void 0,nr),wr.bind(void 0,0),wr.bind(void 0,1),Sr.bind(void 0,0),Sr.bind(void 0,1),Mr.bind(void 0,0),Mr.bind(void 0,1),function(e){for(var r=e.stack,i=e.loop,n=e.fv,o=r.pop()/64,a=e.z2;i--;){var s=r.pop(),l=a[s];t.DEBUG&&console.log(e.step,(1<e.loop?"loop "+(e.loop-i)+": ":"")+"SHPIX[]",s,o),n.setRelative(l,l,o),n.touch(l)}e.loop=1},function(e){for(var r=e.stack,i=e.rp1,n=e.rp2,o=e.loop,a=e.z0[i],s=e.z1[n],l=e.fv,u=e.dpv,h=e.z2;o--;){var c=r.pop(),d=h[c];t.DEBUG&&console.log(e.step,(1<e.loop?"loop "+(e.loop-o)+": ":"")+"IP[]",c,i,"<->",n),l.interpolate(d,a,s,u),l.touch(d)}e.loop=1},Er.bind(void 0,0),Er.bind(void 0,1),function(e){for(var r=e.stack,i=e.rp0,n=e.z0[i],o=e.loop,a=e.fv,s=e.pv,l=e.z1;o--;){var u=r.pop(),h=l[u];t.DEBUG&&console.log(e.step,(1<e.loop?"loop "+(e.loop-o)+": ":"")+"ALIGNRP[]",u),a.setRelative(h,n,0,s),a.touch(h)}e.loop=1},function(e){t.DEBUG&&console.log(e.step,"RTDG[]"),e.round=$t},Tr.bind(void 0,0),Tr.bind(void 0,1),function(e){var r=e.prog,i=e.ip,n=e.stack,o=r[++i];t.DEBUG&&console.log(e.step,"NPUSHB[]",o);for(var a=0;a<o;a++)n.push(r[++i]);e.ip=i},function(e){var r=e.ip,i=e.prog,n=e.stack,o=i[++r];t.DEBUG&&console.log(e.step,"NPUSHW[]",o);for(var a=0;a<o;a++){var s=i[++r]<<8|i[++r];32768&s&&(s=-(1+(65535^s))),n.push(s)}e.ip=r},function(e){var r=e.stack,i=e.store;i=i||(e.store=[]);var n=r.pop(),o=r.pop();t.DEBUG&&console.log(e.step,"WS",n,o),i[o]=n},function(e){var r=e.stack,i=e.store,n=r.pop();t.DEBUG&&console.log(e.step,"RS",n);var o=i&&i[n]||0;r.push(o)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"WCVTP",i,n),e.cvt[n]=i/64},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"RCVT",i),r.push(64*e.cvt[i])},Cr.bind(void 0,0),Cr.bind(void 0,1),void 0,Or.bind(void 0,0),Or.bind(void 0,1),function(e){t.DEBUG&&console.log(e.step,"MPPEM[]"),e.stack.push(e.ppem)},void 0,function(e){t.DEBUG&&console.log(e.step,"FLIPON[]"),e.autoFlip=!0},void 0,void 0,function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"LT[]",i,n),r.push(n<i?1:0)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"LTEQ[]",i,n),r.push(n<=i?1:0)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"GT[]",i,n),r.push(i<n?1:0)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"GTEQ[]",i,n),r.push(i<=n?1:0)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"EQ[]",i,n),r.push(i===n?1:0)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"NEQ[]",i,n),r.push(i!==n?1:0)},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"ODD[]",i),r.push(Math.trunc(i)%2?1:0)},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"EVEN[]",i),r.push(Math.trunc(i)%2?0:1)},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"IF[]",r),r||(fr(e,!0),t.DEBUG&&console.log(e.step,"EIF[]"))},function(e){t.DEBUG&&console.log(e.step,"EIF[]")},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"AND[]",i,n),r.push(i&&n?1:0)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"OR[]",i,n),r.push(i||n?1:0)},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"NOT[]",i),r.push(i?0:1)},Pr.bind(void 0,1),function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SDB[]",r),e.deltaBase=r},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SDS[]",r),e.deltaShift=Math.pow(.5,r)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"ADD[]",i,n),r.push(n+i)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"SUB[]",i,n),r.push(n-i)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"DIV[]",i,n),r.push(64*n/i)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"MUL[]",i,n),r.push(n*i/64)},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"ABS[]",i),r.push(Math.abs(i))},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"NEG[]",i),r.push(-i)},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"FLOOR[]",i),r.push(64*Math.floor(i/64))},function(e){var r=e.stack,i=r.pop();t.DEBUG&&console.log(e.step,"CEILING[]",i),r.push(64*Math.ceil(i/64))},Lr.bind(void 0,0),Lr.bind(void 0,1),Lr.bind(void 0,2),Lr.bind(void 0,3),void 0,void 0,void 0,void 0,function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"WCVTF[]",i,n),e.cvt[n]=i*e.ppem/e.font.unitsPerEm},Pr.bind(void 0,2),Pr.bind(void 0,3),kr.bind(void 0,1),kr.bind(void 0,2),kr.bind(void 0,3),function(e){var r,i=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SROUND[]",i),e.round=ir,192&i){case 0:r=.5;break;case 64:r=1;break;case 128:r=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=r,48&i){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*r;break;case 32:e.srPhase=.5*r;break;case 48:e.srPhase=.75*r;break;default:throw new Error("invalid SROUND value")}i&=15,e.srThreshold=0===i?0:(i/8-.5)*r},function(e){var r,i=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"S45ROUND[]",i),e.round=ir,192&i){case 0:r=Math.sqrt(2)/2;break;case 64:r=Math.sqrt(2);break;case 128:r=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=r,48&i){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*r;break;case 32:e.srPhase=.5*r;break;case 48:e.srPhase=.75*r;break;default:throw new Error("invalid S45ROUND value")}i&=15,e.srThreshold=0===i?0:(i/8-.5)*r},void 0,void 0,function(e){t.DEBUG&&console.log(e.step,"ROFF[]"),e.round=Kt},void 0,function(e){t.DEBUG&&console.log(e.step,"RUTG[]"),e.round=tr},function(e){t.DEBUG&&console.log(e.step,"RDTG[]"),e.round=rr},br,br,void 0,void 0,void 0,void 0,void 0,function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SCANCTRL[]",r)},Ar.bind(void 0,0),Ar.bind(void 0,1),function(e){var r=e.stack,i=r.pop(),n=0;t.DEBUG&&console.log(e.step,"GETINFO[]",i),1&i&&(n=35),32&i&&(n|=4096),r.push(n)},void 0,function(e){var r=e.stack,i=r.pop(),n=r.pop(),o=r.pop();t.DEBUG&&console.log(e.step,"ROLL[]"),r.push(n),r.push(i),r.push(o)},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"MAX[]",i,n),r.push(Math.max(n,i))},function(e){var r=e.stack,i=r.pop(),n=r.pop();t.DEBUG&&console.log(e.step,"MIN[]",i,n),r.push(Math.min(n,i))},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SCANTYPE[]",r)},function(e){var r=e.stack.pop(),i=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"INSTCTRL[]",r,i),r){case 1:return void(e.inhibitGridFit=!!i);case 2:return void(e.ignoreCvt=!!i);default:throw new Error("invalid INSTCTRL[] selector")}},void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Rr.bind(void 0,1),Rr.bind(void 0,2),Rr.bind(void 0,3),Rr.bind(void 0,4),Rr.bind(void 0,5),Rr.bind(void 0,6),Rr.bind(void 0,7),Rr.bind(void 0,8),Dr.bind(void 0,1),Dr.bind(void 0,2),Dr.bind(void 0,3),Dr.bind(void 0,4),Dr.bind(void 0,5),Dr.bind(void 0,6),Dr.bind(void 0,7),Dr.bind(void 0,8),Ir.bind(void 0,0,0,0,0,0),Ir.bind(void 0,0,0,0,0,1),Ir.bind(void 0,0,0,0,0,2),Ir.bind(void 0,0,0,0,0,3),Ir.bind(void 0,0,0,0,1,0),Ir.bind(void 0,0,0,0,1,1),Ir.bind(void 0,0,0,0,1,2),Ir.bind(void 0,0,0,0,1,3),Ir.bind(void 0,0,0,1,0,0),Ir.bind(void 0,0,0,1,0,1),Ir.bind(void 0,0,0,1,0,2),Ir.bind(void 0,0,0,1,0,3),Ir.bind(void 0,0,0,1,1,0),Ir.bind(void 0,0,0,1,1,1),Ir.bind(void 0,0,0,1,1,2),Ir.bind(void 0,0,0,1,1,3),Ir.bind(void 0,0,1,0,0,0),Ir.bind(void 0,0,1,0,0,1),Ir.bind(void 0,0,1,0,0,2),Ir.bind(void 0,0,1,0,0,3),Ir.bind(void 0,0,1,0,1,0),Ir.bind(void 0,0,1,0,1,1),Ir.bind(void 0,0,1,0,1,2),Ir.bind(void 0,0,1,0,1,3),Ir.bind(void 0,0,1,1,0,0),Ir.bind(void 0,0,1,1,0,1),Ir.bind(void 0,0,1,1,0,2),Ir.bind(void 0,0,1,1,0,3),Ir.bind(void 0,0,1,1,1,0),Ir.bind(void 0,0,1,1,1,1),Ir.bind(void 0,0,1,1,1,2),Ir.bind(void 0,0,1,1,1,3),Ir.bind(void 0,1,0,0,0,0),Ir.bind(void 0,1,0,0,0,1),Ir.bind(void 0,1,0,0,0,2),Ir.bind(void 0,1,0,0,0,3),Ir.bind(void 0,1,0,0,1,0),Ir.bind(void 0,1,0,0,1,1),Ir.bind(void 0,1,0,0,1,2),Ir.bind(void 0,1,0,0,1,3),Ir.bind(void 0,1,0,1,0,0),Ir.bind(void 0,1,0,1,0,1),Ir.bind(void 0,1,0,1,0,2),Ir.bind(void 0,1,0,1,0,3),Ir.bind(void 0,1,0,1,1,0),Ir.bind(void 0,1,0,1,1,1),Ir.bind(void 0,1,0,1,1,2),Ir.bind(void 0,1,0,1,1,3),Ir.bind(void 0,1,1,0,0,0),Ir.bind(void 0,1,1,0,0,1),Ir.bind(void 0,1,1,0,0,2),Ir.bind(void 0,1,1,0,0,3),Ir.bind(void 0,1,1,0,1,0),Ir.bind(void 0,1,1,0,1,1),Ir.bind(void 0,1,1,0,1,2),Ir.bind(void 0,1,1,0,1,3),Ir.bind(void 0,1,1,1,0,0),Ir.bind(void 0,1,1,1,0,1),Ir.bind(void 0,1,1,1,0,2),Ir.bind(void 0,1,1,1,0,3),Ir.bind(void 0,1,1,1,1,0),Ir.bind(void 0,1,1,1,1,1),Ir.bind(void 0,1,1,1,1,2),Ir.bind(void 0,1,1,1,1,3)];var Ur=Array.from||function(e){return e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]?|[^\uD800-\uDFFF]|./g)||[]};function Nr(e){(e=e||{}).empty||(Bt(e.familyName,"When creating a new Font object, familyName is required."),Bt(e.styleName,"When creating a new Font object, styleName is required."),Bt(e.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),Bt(e.ascender,"When creating a new Font object, ascender is required."),Bt(e.descender,"When creating a new Font object, descender is required."),Bt(e.descender<0,"Descender should be negative (e.g. -512)."),this.names={fontFamily:{en:e.familyName||" "},fontSubfamily:{en:e.styleName||" "},fullName:{en:e.fullName||e.familyName+" "+e.styleName},postScriptName:{en:e.postScriptName||(e.familyName+e.styleName).replace(/\s/g,"")},designer:{en:e.designer||" "},designerURL:{en:e.designerURL||" "},manufacturer:{en:e.manufacturer||" "},manufacturerURL:{en:e.manufacturerURL||" "},license:{en:e.license||" "},licenseURL:{en:e.licenseURL||" "},version:{en:e.version||"Version 0.1"},description:{en:e.description||" "},copyright:{en:e.copyright||" "},trademark:{en:e.trademark||" "}},this.unitsPerEm=e.unitsPerEm||1e3,this.ascender=e.ascender,this.descender=e.descender,this.createdTimestamp=e.createdTimestamp,this.tables={os2:{usWeightClass:e.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:e.widthClass||this.usWidthClasses.MEDIUM,fsSelection:e.fsSelection||this.fsSelectionValues.REGULAR}}),this.supported=!0,this.glyphs=new xe.GlyphSet(this,e.glyphs||[]),this.encoding=new fe(this),this.position=new Dt(this),this.substitution=new It(this),this.tables=this.tables||{},Object.defineProperty(this,"hinting",{get:function(){return this._hinting?this._hinting:"truetype"===this.outlinesFormat?this._hinting=new Qt(this):void 0}})}function Fr(e,t,r,i){var n={},o=new ae.Parser(e,t);n.name=i[o.parseUShort()]||{},o.skip("uShort",1),n.coordinates={};for(var a=0;a<r.length;++a)n.coordinates[r[a].tag]=o.parseFixed();return n}Nr.prototype.hasChar=function(e){return null!==this.encoding.charToGlyphIndex(e)},Nr.prototype.charToGlyphIndex=function(e){return this.encoding.charToGlyphIndex(e)},Nr.prototype.charToGlyph=function(e){var t=this.charToGlyphIndex(e);return this.glyphs.get(t)||this.glyphs.get(0)},Nr.prototype.stringToGlyphs=function(e,t){t=t||this.defaultRenderOptions;for(var r=Ur(e),i=[],n=0;n<r.length;n+=1){var o=r[n];i.push(this.charToGlyphIndex(o))}var a=i.length;if(t.features){var s=t.script||this.substitution.getDefaultScriptName(),l=[];t.features.liga&&(l=l.concat(this.substitution.getFeature("liga",s,t.language))),t.features.rlig&&(l=l.concat(this.substitution.getFeature("rlig",s,t.language)));for(var u=0;u<a;u+=1)for(var h=0;h<l.length;h++){for(var c=l[h],d=c.sub,f=d.length,p=0;p<f&&d[p]===i[u+p];)p++;p===f&&(i.splice(u,f,c.by),a=a-f+1)}}for(var m=new Array(a),y=this.glyphs.get(0),v=0;v<a;v+=1)m[v]=this.glyphs.get(i[v])||y;return m},Nr.prototype.nameToGlyphIndex=function(e){return this.glyphNames.nameToGlyphIndex(e)},Nr.prototype.nameToGlyph=function(e){var t=this.nameToGlyphIndex(e);return this.glyphs.get(t)||this.glyphs.get(0)},Nr.prototype.glyphIndexToName=function(e){return this.glyphNames.glyphIndexToName?this.glyphNames.glyphIndexToName(e):""},Nr.prototype.getKerningValue=function(e,t){e=e.index||e,t=t.index||t;var r=this.position.defaultKerningTables;return r?this.position.getKerningValue(r,e,t):this.kerningPairs[e+","+t]||0},Nr.prototype.defaultRenderOptions={kerning:!0,features:{liga:!0,rlig:!0}},Nr.prototype.forEachGlyph=function(e,t,r,i,n,o){t=void 0!==t?t:0,r=void 0!==r?r:0,i=void 0!==i?i:72,n=n||this.defaultRenderOptions;var a,s=1/this.unitsPerEm*i,l=this.stringToGlyphs(e,n);if(n.kerning){var u=n.script||this.position.getDefaultScriptName();a=this.position.getKerningTables(u,n.language)}for(var h=0;h<l.length;h+=1){var c=l[h];o.call(this,c,t,r,i,n),c.advanceWidth&&(t+=c.advanceWidth*s),n.kerning&&h<l.length-1&&(t+=(a?this.position.getKerningValue(a,c.index,l[h+1].index):this.getKerningValue(c,l[h+1]))*s),n.letterSpacing?t+=n.letterSpacing*i:n.tracking&&(t+=n.tracking/1e3*i)}return t},Nr.prototype.getPath=function(e,t,r,i,n){var o=new C;return this.forEachGlyph(e,t,r,i,n,(function(e,t,r,i){var a=e.getPath(t,r,i,n,this);o.extend(a)})),o},Nr.prototype.getPaths=function(e,t,r,i,n){var o=[];return this.forEachGlyph(e,t,r,i,n,(function(e,t,r,i){var a=e.getPath(t,r,i,n,this);o.push(a)})),o},Nr.prototype.getAdvanceWidth=function(e,t,r){return this.forEachGlyph(e,0,0,t,r,(function(){}))},Nr.prototype.draw=function(e,t,r,i,n,o){this.getPath(t,r,i,n,o).draw(e)},Nr.prototype.drawPoints=function(e,t,r,i,n,o){this.forEachGlyph(t,r,i,n,o,(function(t,r,i,n){t.drawPoints(e,r,i,n)}))},Nr.prototype.drawMetrics=function(e,t,r,i,n,o){this.forEachGlyph(t,r,i,n,o,(function(t,r,i,n){t.drawMetrics(e,r,i,n)}))},Nr.prototype.getEnglishName=function(e){var t=this.names[e];if(t)return t.en},Nr.prototype.validate=function(){var e=this;function t(t){var r=e.getEnglishName(t);r&&r.trim().length}t("fontFamily"),t("weightName"),t("manufacturer"),t("copyright"),t("version"),this.unitsPerEm},Nr.prototype.toTables=function(){return Pt(this)},Nr.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()},Nr.prototype.toArrayBuffer=function(){for(var e=this.toTables().encode(),t=new ArrayBuffer(e.length),r=new Uint8Array(t),i=0;i<e.length;i++)r[i]=e[i];return t},Nr.prototype.download=function(t){var r=this.getEnglishName("fontFamily"),n=this.getEnglishName("fontSubfamily");t=t||r.replace(/\s/g,"")+"-"+n+".otf";var o=this.toArrayBuffer();if("undefined"!=typeof window)window.requestFileSystem=window.requestFileSystem||window.webkitRequestFileSystem,window.requestFileSystem(window.TEMPORARY,o.byteLength,(function(e){e.root.getFile(t,{create:!0},(function(e){e.createWriter((function(t){var r=new DataView(o),i=new Blob([r],{type:"font/opentype"});t.write(i),t.addEventListener("writeend",(function(){location.href=e.toURL()}),!1)}))}))}),(function(e){throw new Error(e.name+": "+e.message)}));else{var a=e("fs"),s=function(e){for(var t=new i(e.byteLength),r=new Uint8Array(e),n=0;n<t.length;++n)t[n]=r[n];return t}(o);a.writeFileSync(t,s)}},Nr.prototype.fsSelectionValues={ITALIC:1,UNDERSCORE:2,NEGATIVE:4,OUTLINED:8,STRIKEOUT:16,BOLD:32,REGULAR:64,USER_TYPO_METRICS:128,WWS:256,OBLIQUE:512},Nr.prototype.usWidthClasses={ULTRA_CONDENSED:1,EXTRA_CONDENSED:2,CONDENSED:3,SEMI_CONDENSED:4,MEDIUM:5,SEMI_EXPANDED:6,EXPANDED:7,EXTRA_EXPANDED:8,ULTRA_EXPANDED:9},Nr.prototype.usWeightClasses={THIN:100,EXTRA_LIGHT:200,LIGHT:300,NORMAL:400,MEDIUM:500,SEMI_BOLD:600,BOLD:700,EXTRA_BOLD:800,BLACK:900};var Br=function(e,t,r){var i=new ae.Parser(e,t),n=i.parseULong();L.argument(65536===n,"Unsupported fvar table version.");var o=i.parseOffset16();i.skip("uShort",1);for(var a,s,l,u,h,c=i.parseUShort(),d=i.parseUShort(),f=i.parseUShort(),p=i.parseUShort(),m=[],y=0;y<c;y++)m.push((a=e,s=t+o+y*d,l=r,h=u=void 0,u={},h=new ae.Parser(a,s),u.tag=h.parseTag(),u.minValue=h.parseFixed(),u.defaultValue=h.parseFixed(),u.maxValue=h.parseFixed(),h.skip("uShort",1),u.name=l[h.parseUShort()]||{},u));for(var v=[],g=t+o+c*d,b=0;b<f;b++)v.push(Fr(e,g+b*p,m,r));return{axes:m,instances:v}},Gr=new Array(10);Gr[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{posFormat:1,coverage:this.parsePointer(ne.coverage),value:this.parseValueRecord()}:2===t?{posFormat:2,coverage:this.parsePointer(ne.coverage),values:this.parseValueRecordList()}:void L.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")},Gr[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();L.assert(1===t||2===t,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var r=this.parsePointer(ne.coverage),i=this.parseUShort(),n=this.parseUShort();if(1===t)return{posFormat:t,coverage:r,valueFormat1:i,valueFormat2:n,pairSets:this.parseList(ne.pointer(ne.list((function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(i),value2:this.parseValueRecord(n)}}))))};if(2===t){var o=this.parsePointer(ne.classDef),a=this.parsePointer(ne.classDef),s=this.parseUShort(),l=this.parseUShort();return{posFormat:t,coverage:r,valueFormat1:i,valueFormat2:n,classDef1:o,classDef2:a,class1Count:s,class2Count:l,classRecords:this.parseList(s,ne.list(l,(function(){return{value1:this.parseValueRecord(i),value2:this.parseValueRecord(n)}})))}}},Gr[3]=function(){return{error:"GPOS Lookup 3 not supported"}},Gr[4]=function(){return{error:"GPOS Lookup 4 not supported"}},Gr[5]=function(){return{error:"GPOS Lookup 5 not supported"}},Gr[6]=function(){return{error:"GPOS Lookup 6 not supported"}},Gr[7]=function(){return{error:"GPOS Lookup 7 not supported"}},Gr[8]=function(){return{error:"GPOS Lookup 8 not supported"}},Gr[9]=function(){return{error:"GPOS Lookup 9 not supported"}};new Array(10);var jr=function(e,t){var r=new ne(e,t=t||0),i=r.parseVersion(1);return L.argument(1===i||1.1===i,"Unsupported GPOS table version "+i),1===i?{version:i,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(Gr)}:{version:i,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(Gr),variations:r.parseFeatureVariationsList()}},Vr=function(e,t){var r=new ae.Parser(e,t),i=r.parseUShort();if(0===i)return function(e){var t={};e.skip("uShort");var r=e.parseUShort();L.argument(0===r,"Unsupported kern sub-table version."),e.skip("uShort",2);var i=e.parseUShort();e.skip("uShort",3);for(var n=0;n<i;n+=1){var o=e.parseUShort(),a=e.parseUShort(),s=e.parseShort();t[o+","+a]=s}return t}(r);if(1===i)return function(e){var t={};e.skip("uShort"),1<e.parseULong()&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var r=255&e.parseUShort();if(e.skip("uShort"),0==r){var i=e.parseUShort();e.skip("uShort",3);for(var n=0;n<i;n+=1){var o=e.parseUShort(),a=e.parseUShort(),s=e.parseShort();t[o+","+a]=s}}return t}(r);throw new Error("Unsupported kern table version ("+i+").")},zr=function(e,t,r,i){for(var n=new ae.Parser(e,t),o=i?n.parseUShort:n.parseULong,a=[],s=0;s<r+1;s+=1){var l=o.call(n);i&&(l*=2),a.push(l)}return a};function Hr(t,r){e("fs").readFile(t,(function(e,t){if(e)return r(e.message);r(null,Ft(t))}))}function Wr(e,t){var r=new XMLHttpRequest;r.open("get",e,!0),r.responseType="arraybuffer",r.onload=function(){return r.response?t(null,r.response):t("Font could not be loaded: "+r.statusText)},r.onerror=function(){t("Font could not be loaded")},r.send()}function qr(e,t){for(var r=[],i=12,n=0;n<t;n+=1){var o=ae.getTag(e,i),a=ae.getULong(e,i+4),s=ae.getULong(e,i+8),l=ae.getULong(e,i+12);r.push({tag:o,checksum:a,offset:s,length:l,compression:!1}),i+=16}return r}function Xr(e,t){if("WOFF"!==t.compression)return{data:e,offset:t.offset};var r=new Uint8Array(e.buffer,t.offset+2,t.compressedLength-2),i=new Uint8Array(t.length);if(function(e,t){var r,i,n=new a(e,t);do{switch(r=b(n),_(n,2,0)){case 0:i=M(n);break;case 1:i=S(n,s,l);break;case 2:w(n,n.ltree,n.dtree),i=S(n,n.ltree,n.dtree);break;default:i=-3}if(0!==i)throw new Error("Data error")}while(!r);n.destLen<n.dest.length?"function"==typeof n.dest.slice?n.dest.slice(0,n.destLen):n.dest.subarray(0,n.destLen):n.dest}(r,i),i.byteLength!==t.length)throw new Error("Decompression error: "+t.tag+" decompressed length doesn't match recorded length");return{data:new DataView(i.buffer,0),offset:0}}function Yr(e){var t,r,i,n,o,a,s,l,u,h,c,d,f,p,m=new Nr({empty:!0}),y=new DataView(e,0),v=[],g=ae.getTag(y,0);if(g===String.fromCharCode(0,1,0,0)||"true"===g||"typ1"===g)m.outlinesFormat="truetype",v=qr(y,i=ae.getUShort(y,4));else if("OTTO"===g)m.outlinesFormat="cff",v=qr(y,i=ae.getUShort(y,4));else{if("wOFF"!==g)throw new Error("Unsupported OpenType signature "+g);var b=ae.getTag(y,4);if(b===String.fromCharCode(0,1,0,0))m.outlinesFormat="truetype";else{if("OTTO"!==b)throw new Error("Unsupported OpenType flavor "+g);m.outlinesFormat="cff"}v=function(e,t){for(var r=[],i=44,n=0;n<t;n+=1){var o,a=ae.getTag(e,i),s=ae.getULong(e,i+4),l=ae.getULong(e,i+8),u=ae.getULong(e,i+12);o=l<u&&"WOFF",r.push({tag:a,offset:s,compression:o,compressedLength:l,length:u}),i+=20}return r}(y,i=ae.getUShort(y,12))}for(var _=0;_<i;_+=1){var x=v[_],w=void 0;switch(x.tag){case"cmap":w=Xr(y,x),m.tables.cmap=se(w.data,w.offset),m.encoding=new pe(m.tables.cmap);break;case"cvt ":w=Xr(y,x),p=new ae.Parser(w.data,w.offset),m.tables.cvt=p.parseShortList(x.length/2);break;case"fvar":o=x;break;case"fpgm":w=Xr(y,x),p=new ae.Parser(w.data,w.offset),m.tables.fpgm=p.parseByteList(x.length);break;case"head":w=Xr(y,x),m.tables.head=je(w.data,w.offset),m.unitsPerEm=m.tables.head.unitsPerEm,t=m.tables.head.indexToLocFormat;break;case"hhea":w=Xr(y,x),m.tables.hhea=ze(w.data,w.offset),m.ascender=m.tables.hhea.ascender,m.descender=m.tables.hhea.descender,m.numberOfHMetrics=m.tables.hhea.numberOfHMetrics;break;case"hmtx":u=x;break;case"ltag":w=Xr(y,x),r=Ye(w.data,w.offset);break;case"maxp":w=Xr(y,x),m.tables.maxp=Ze(w.data,w.offset),m.numGlyphs=m.tables.maxp.numGlyphs;break;case"name":d=x;break;case"OS/2":w=Xr(y,x),m.tables.os2=dt(w.data,w.offset);break;case"post":w=Xr(y,x),m.tables.post=mt(w.data,w.offset),m.glyphNames=new ye(m.tables.post);break;case"prep":w=Xr(y,x),p=new ae.Parser(w.data,w.offset),m.tables.prep=p.parseByteList(x.length);break;case"glyf":a=x;break;case"loca":c=x;break;case"CFF ":n=x;break;case"kern":h=x;break;case"GPOS":s=x;break;case"GSUB":l=x;break;case"meta":f=x}}var S=Xr(y,d);if(m.tables.name=ut(S.data,S.offset,r),m.names=m.tables.name,a&&c){var M=0===t,E=Xr(y,c),T=zr(E.data,E.offset,m.numGlyphs,M),C=Xr(y,a);m.glyphs=Zt.parse(C.data,C.offset,T,m)}else{if(!n)throw new Error("Font doesn't contain TrueType or CFF outlines.");var O=Xr(y,n);Be(O.data,O.offset,m)}var P=Xr(y,u);if(We(P.data,P.offset,m.numberOfHMetrics,m.numGlyphs,m.glyphs),function(e){for(var t,r=e.tables.cmap.glyphIndexMap,i=Object.keys(r),n=0;n<i.length;n+=1){var o=i[n],a=r[o];(t=e.glyphs.get(a)).addUnicode(parseInt(o))}for(var s=0;s<e.glyphs.length;s+=1)t=e.glyphs.get(s),e.cffEncoding?e.isCIDFont?t.name="gid"+s:t.name=e.cffEncoding.charset[s]:e.glyphNames.names&&(t.name=e.glyphNames.glyphIndexToName(s))}(m),h){var L=Xr(y,h);m.kerningPairs=Vr(L.data,L.offset)}else m.kerningPairs={};if(s){var k=Xr(y,s);m.tables.gpos=jr(k.data,k.offset),m.position.init()}if(l){var A=Xr(y,l);m.tables.gsub=_t(A.data,A.offset)}if(o){var R=Xr(y,o);m.tables.fvar=Br(R.data,R.offset,m.names)}if(f){var D=Xr(y,f);m.tables.meta=wt(D.data,D.offset),m.metas=m.tables.meta}return m}t.Font=Nr,t.Glyph=ge,t.Path=C,t.BoundingBox=T,t._parse=ae,t.parse=Yr,t.load=function(e,t){("undefined"==typeof window?Hr:Wr)(e,(function(e,r){if(e)return t(e);var i;try{i=Yr(r)}catch(e){return t(e,null)}return t(null,i)}))},t.loadSync=function(t){return Yr(Ft(e("fs").readFileSync(t)))},Object.defineProperty(t,"__esModule",{value:!0})}("object"==typeof r&&void 0!==t?r:this.opentype={})}).call(this,e("buffer").Buffer)},{buffer:4,fs:2}],13:[function(e,t,r){(function(e){function t(e,t){for(var r=0,i=e.length-1;0<=i;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r--;)e.unshift("..");return e}function i(e,t){if(e.filter)return e.filter(t);for(var r=[],i=0;i<e.length;i++)t(e[i],i,e)&&r.push(e[i]);return r}r.resolve=function(){for(var r="",n=!1,o=arguments.length-1;-1<=o&&!n;o--){var a=0<=o?arguments[o]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,n="/"===a.charAt(0))}return(n?"/":"")+(r=t(i(r.split("/"),(function(e){return!!e})),!n).join("/"))||"."},r.normalize=function(e){var o=r.isAbsolute(e),a="/"===n(e,-1);return(e=t(i(e.split("/"),(function(e){return!!e})),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+e},r.isAbsolute=function(e){return"/"===e.charAt(0)},r.join=function(){var e=Array.prototype.slice.call(arguments,0);return r.normalize(i(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},r.relative=function(e,t){function i(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;0<=r&&""===e[r];r--);return r<t?[]:e.slice(t,r-t+1)}e=r.resolve(e).substr(1),t=r.resolve(t).substr(1);for(var n=i(e.split("/")),o=i(t.split("/")),a=Math.min(n.length,o.length),s=a,l=0;l<a;l++)if(n[l]!==o[l]){s=l;break}var u=[];for(l=s;l<n.length;l++)u.push("..");return(u=u.concat(o.slice(s))).join("/")},r.sep="/",r.delimiter=":",r.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),r=47===t,i=-1,n=!0,o=e.length-1;1<=o;--o)if(47===(t=e.charCodeAt(o))){if(!n){i=o;break}}else n=!1;return-1===i?r?"/":".":r&&1===i?"/":e.slice(0,i)},r.basename=function(e,t){var r=function(e){"string"!=typeof e&&(e+="");var t,r=0,i=-1,n=!0;for(t=e.length-1;0<=t;--t)if(47===e.charCodeAt(t)){if(!n){r=t+1;break}}else-1===i&&(n=!1,i=t+1);return-1===i?"":e.slice(r,i)}(e);return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},r.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,r=0,i=-1,n=!0,o=0,a=e.length-1;0<=a;--a){var s=e.charCodeAt(a);if(47===s){if(n)continue;r=a+1;break}-1===i&&(n=!1,i=a+1),46===s?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1)}return-1===t||-1===i||0===o||1===o&&t===i-1&&t===r+1?"":e.slice(t,i)};var n=function(e,t,r){return e.substr(t,r)}}).call(this,e("_process"))},{_process:14}],14:[function(e,t,r){var i,n,o=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(i===setTimeout)return setTimeout(e,0);if((i===a||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:a}catch(e){i=a}try{n="function"==typeof clearTimeout?clearTimeout:s}catch(e){n=s}}();var u,h=[],c=!1,d=-1;function f(){c&&u&&(c=!1,u.length?h=u.concat(h):d=-1,h.length&&p())}function p(){if(!c){var e=l(f);c=!0;for(var t=h.length;t;){for(u=h,h=[];++d<t;)u&&u[d].run();d=-1,t=h.length}u=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];h.push(new m(e,t)),1!==h.length||c||l(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},{}],15:[function(e,t,r){!function(e){"use strict";if(!e.fetch){var t="URLSearchParams"in e,r="Symbol"in e&&"iterator"in Symbol,i="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),n="FormData"in e,o="ArrayBuffer"in e;if(o)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],s=function(e){return e&&DataView.prototype.isPrototypeOf(e)},l=ArrayBuffer.isView||function(e){return e&&-1<a.indexOf(Object.prototype.toString.call(e))};p.prototype.append=function(e,t){e=c(e),t=d(t);var r=this.map[e];this.map[e]=r?r+","+t:t},p.prototype.delete=function(e){delete this.map[c(e)]},p.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},p.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},p.prototype.set=function(e,t){this.map[c(e)]=d(t)},p.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},p.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),f(e)},p.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),f(e)},p.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),f(e)},r&&(p.prototype[Symbol.iterator]=p.prototype.entries);var u=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},b.call(_.prototype),b.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},w.error=function(){var e=new w(null,{status:0,statusText:""});return e.type="error",e};var h=[301,302,303,307,308];w.redirect=function(e,t){if(-1===h.indexOf(t))throw new RangeError("Invalid status code");return new w(null,{status:t,headers:{location:e}})},e.Headers=p,e.Request=_,e.Response=w,e.fetch=function(e,t){return new Promise((function(r,n){var o=new _(e,t),a=new XMLHttpRequest;a.onload=function(){var e,t,i={status:a.status,statusText:a.statusText,headers:(e=a.getAllResponseHeaders()||"",t=new p,e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var r=e.split(":"),i=r.shift().trim();if(i){var n=r.join(":").trim();t.append(i,n)}})),t)};i.url="responseURL"in a?a.responseURL:i.headers.get("X-Request-URL");var n="response"in a?a.response:a.responseText;r(new w(n,i))},a.onerror=function(){n(new TypeError("Network request failed"))},a.ontimeout=function(){n(new TypeError("Network request failed"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),o.headers.forEach((function(e,t){a.setRequestHeader(t,e)})),a.send(void 0===o._bodyInit?null:o._bodyInit)}))},e.fetch.polyfill=!0}function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function d(e){return"string"!=typeof e&&(e=String(e)),e}function f(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r&&(t[Symbol.iterator]=function(){return t}),t}function p(e){this.map={},e instanceof p?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function m(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function y(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function v(e){var t=new FileReader,r=y(t);return t.readAsArrayBuffer(e),r}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e)if("string"==typeof e)this._bodyText=e;else if(i&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(n&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(t&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(o&&i&&s(e))this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!o||!ArrayBuffer.prototype.isPrototypeOf(e)&&!l(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=g(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):t&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var e=m(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?m(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(v)}),this.text=function(){var e,t,r,i=m(this);if(i)return i;if(this._bodyBlob)return e=this._bodyBlob,r=y(t=new FileReader),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),i=0;i<t.length;i++)r[i]=String.fromCharCode(t[i]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n&&(this.formData=function(){return this.text().then(x)}),this.json=function(){return this.text().then(JSON.parse)},this}function _(e,t){var r,i,n=(t=t||{}).body;if(e instanceof _){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new p(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new p(t.headers)),this.method=(i=(r=t.method||this.method||"GET").toUpperCase(),-1<u.indexOf(i)?i:r),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function x(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var r=e.split("="),i=r.shift().replace(/\+/g," "),n=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(i),decodeURIComponent(n))}})),t}function w(e,t){t=t||{},this.type="default",this.status=void 0===t.status?200:t.status,this.ok=200<=this.status&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new p(t.headers),this.url=t.url||"",this._initBody(e)}}("undefined"!=typeof self?self:this)},{}],16:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=a(e("../core/main")),o=a(e("../color/color_conversion"));function a(e){return e&&e.__esModule?e:{default:e}}var s=[{h:0,s:0,b:.8275,name:"gray"},{h:0,s:0,b:.8627,name:"gray"},{h:0,s:0,b:.7529,name:"gray"},{h:.0167,s:.1176,b:1,name:"light pink"}],l=[{h:0,s:0,b:0,name:"black"},{h:0,s:0,b:.5,name:"gray"},{h:0,s:0,b:1,name:"white"},{h:0,s:.5,b:.5,name:"dark maroon"},{h:0,s:.5,b:1,name:"salmon pink"},{h:0,s:1,b:0,name:"black"},{h:0,s:1,b:.5,name:"dark red"},{h:0,s:1,b:1,name:"red"},{h:5,s:0,b:1,name:"very light peach"},{h:5,s:.5,b:.5,name:"brown"},{h:5,s:.5,b:1,name:"peach"},{h:5,s:1,b:.5,name:"brick red"},{h:5,s:1,b:1,name:"crimson"},{h:10,s:0,b:1,name:"light peach"},{h:10,s:.5,b:.5,name:"brown"},{h:10,s:.5,b:1,name:"light orange"},{h:10,s:1,b:.5,name:"brown"},{h:10,s:1,b:1,name:"orange"},{h:15,s:0,b:1,name:"very light yellow"},{h:15,s:.5,b:.5,name:"olive green"},{h:15,s:.5,b:1,name:"light yellow"},{h:15,s:1,b:0,name:"dark olive green"},{h:15,s:1,b:.5,name:"olive green"},{h:15,s:1,b:1,name:"yellow"},{h:20,s:0,b:1,name:"very light yellow"},{h:20,s:.5,b:.5,name:"olive green"},{h:20,s:.5,b:1,name:"light yellow green"},{h:20,s:1,b:0,name:"dark olive green"},{h:20,s:1,b:.5,name:"dark yellow green"},{h:20,s:1,b:1,name:"yellow green"},{h:25,s:.5,b:.5,name:"dark yellow green"},{h:25,s:.5,b:1,name:"light green"},{h:25,s:1,b:.5,name:"dark green"},{h:25,s:1,b:1,name:"green"},{h:30,s:.5,b:1,name:"light green"},{h:30,s:1,b:.5,name:"dark green"},{h:30,s:1,b:1,name:"green"},{h:35,s:0,b:.5,name:"light green"},{h:35,s:0,b:1,name:"very light green"},{h:35,s:.5,b:.5,name:"dark green"},{h:35,s:.5,b:1,name:"light green"},{h:35,s:1,b:0,name:"very dark green"},{h:35,s:1,b:.5,name:"dark green"},{h:35,s:1,b:1,name:"green"},{h:40,s:0,b:1,name:"very light green"},{h:40,s:.5,b:.5,name:"dark green"},{h:40,s:.5,b:1,name:"light green"},{h:40,s:1,b:.5,name:"dark green"},{h:40,s:1,b:1,name:"green"},{h:45,s:.5,b:1,name:"light turquoise"},{h:45,s:1,b:.5,name:"dark turquoise"},{h:45,s:1,b:1,name:"turquoise"},{h:50,s:0,b:1,name:"light sky blue"},{h:50,s:.5,b:.5,name:"dark cyan"},{h:50,s:.5,b:1,name:"light cyan"},{h:50,s:1,b:.5,name:"dark cyan"},{h:50,s:1,b:1,name:"cyan"},{h:55,s:0,b:1,name:"light sky blue"},{h:55,s:.5,b:1,name:"light sky blue"},{h:55,s:1,b:.5,name:"dark blue"},{h:55,s:1,b:1,name:"sky blue"},{h:60,s:0,b:.5,name:"gray"},{h:60,s:0,b:1,name:"very light blue"},{h:60,s:.5,b:.5,name:"blue"},{h:60,s:.5,b:1,name:"light blue"},{h:60,s:1,b:.5,name:"navy blue"},{h:60,s:1,b:1,name:"blue"},{h:65,s:0,b:1,name:"lavender"},{h:65,s:.5,b:.5,name:"navy blue"},{h:65,s:.5,b:1,name:"light purple"},{h:65,s:1,b:.5,name:"dark navy blue"},{h:65,s:1,b:1,name:"blue"},{h:70,s:0,b:1,name:"lavender"},{h:70,s:.5,b:.5,name:"navy blue"},{h:70,s:.5,b:1,name:"lavender blue"},{h:70,s:1,b:.5,name:"dark navy blue"},{h:70,s:1,b:1,name:"blue"},{h:75,s:.5,b:1,name:"lavender"},{h:75,s:1,b:.5,name:"dark purple"},{h:75,s:1,b:1,name:"purple"},{h:80,s:.5,b:1,name:"pinkish purple"},{h:80,s:1,b:.5,name:"dark purple"},{h:80,s:1,b:1,name:"purple"},{h:85,s:0,b:1,name:"light pink"},{h:85,s:.5,b:.5,name:"purple"},{h:85,s:.5,b:1,name:"light fuchsia"},{h:85,s:1,b:.5,name:"dark fuchsia"},{h:85,s:1,b:1,name:"fuchsia"},{h:90,s:.5,b:.5,name:"dark fuchsia"},{h:90,s:.5,b:1,name:"hot pink"},{h:90,s:1,b:.5,name:"dark fuchsia"},{h:90,s:1,b:1,name:"fuchsia"},{h:95,s:0,b:1,name:"pink"},{h:95,s:.5,b:1,name:"light pink"},{h:95,s:1,b:.5,name:"dark magenta"},{h:95,s:1,b:1,name:"magenta"}];n.default.prototype._rgbColorName=function(e){var t=o.default._rgbaToHSBA(e);return function(e){var t;if(0!==e[0]){e[0]=Math.round(100*e[0]);var r=e[0].toString().split(""),n=r.length-1;r[n]=parseInt(r[n]),r[n]<2.5?r[n]=0:2.5<=r[n]&&r[n]<7.5&&(r[n]=5),2===r.length?(r[0]=parseInt(r[0]),7.5<=r[n]&&(r[n]=0,r[0]=r[0]+1),e[0]=10*r[0]+r[1]):7.5<=r[n]?e[0]=10:e[0]=r[n]}e[2]=e[2]/255;for(var o=e.length-1;1<=o;o--)e[o]<=.25?e[o]=0:.25<e[o]&&e[o]<.75?e[o]=.5:e[o]=1;if(0===e[0]&&0===e[1]&&1===e[2]){for(var a=2;0<=a;a--)i[a]=Math.round(1e4*i[a])/1e4;for(var u=0;u<s.length;u++){if(s[u].h===i[0]&&s[u].s===i[1]&&s[u].b===i[2]){t=s[u].name;break}t="white"}}else for(var h=0;h<l.length;h++)if(l[h].h===e[0]&&l[h].s===e[1]&&l[h].b===e[2]){t=l[h].name;break}return t}([(i=t)[0],t[1],t[2]])};var u=n.default;r.default=u},{"../color/color_conversion":22,"../core/main":36}],17:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i},o="_Description",a="_fallbackDesc",s="_fallbackTable",l="_Label",u="_labelDesc",h="_labelTable";function c(e){if("label"===e||"fallback"===e)throw new Error("description should not be LABEL or FALLBACK");return e.endsWith(".")||e.endsWith(";")||e.endsWith(",")||e.endsWith("?")||e.endsWith("!")||(e+="."),e}n.default.prototype.describe=function(e,t){if(n.default._validateParameters("describe",arguments),"string"==typeof e){var r=this.canvas.id;e=c(e),this.dummyDOM||(this.dummyDOM=document.getElementById(r).parentNode),this.descriptions||(this.descriptions={}),this.descriptions.fallback?this.descriptions.fallback.innerHTML!==e&&(this.descriptions.fallback.innerHTML=e):this._describeHTML("fallback",e),t===this.LABEL&&(this.descriptions.label?this.descriptions.label.innerHTML!==e&&(this.descriptions.label.innerHTML=e):this._describeHTML("label",e))}},n.default.prototype.describeElement=function(e,t,r){if(n.default._validateParameters("describeElement",arguments),"string"==typeof t&&"string"==typeof e){var i=this.canvas.id;t=c(t);var o=function(e){if("label"===e||"fallback"===e)throw new Error("element name should not be LABEL or FALLBACK");return e.endsWith(".")||e.endsWith(";")||e.endsWith(",")?e=e.replace(/.$/,":"):e.endsWith(":")||(e+=":"),e}(e);e=e.replace(/[^a-zA-Z0-9 ]/g,"");var a='<th scope="row">'.concat(o,"</th><td>").concat(t,"</td>");this.dummyDOM||(this.dummyDOM=document.getElementById(i).parentNode),this.descriptions?this.descriptions.fallbackElements||(this.descriptions.fallbackElements={}):this.descriptions={fallbackElements:{}},this.descriptions.fallbackElements[e]?this.descriptions.fallbackElements[e].innerHTML!==a&&(this.descriptions.fallbackElements[e].innerHTML=a):this._describeElementHTML("fallback",e,a),r===this.LABEL&&(this.descriptions.labelElements||(this.descriptions.labelElements={}),this.descriptions.labelElements[e]?this.descriptions.labelElements[e].innerHTML!==a&&(this.descriptions.labelElements[e].innerHTML=a):this._describeElementHTML("label",e,a))}},n.default.prototype._describeHTML=function(e,t){var r=this.canvas.id;if("fallback"===e){if(this.dummyDOM.querySelector("#".concat(r+o)))this.dummyDOM.querySelector("#"+r+s).insertAdjacentHTML("beforebegin",'<p id="'.concat(r+a,'"></p>'));else{var i='<div id="'.concat(r).concat(o,'" role="region" aria-label="Canvas Description"><p id="').concat(r).concat(a,'"></p></div>');this.dummyDOM.querySelector("#".concat(r,"accessibleOutput"))?this.dummyDOM.querySelector("#".concat(r,"accessibleOutput")).insertAdjacentHTML("beforebegin",i):this.dummyDOM.querySelector("#".concat(r)).innerHTML=i}return this.descriptions.fallback=this.dummyDOM.querySelector("#".concat(r).concat(a)),void(this.descriptions.fallback.innerHTML=t)}if("label"===e){if(this.dummyDOM.querySelector("#".concat(r+l)))this.dummyDOM.querySelector("#".concat(r+h))&&this.dummyDOM.querySelector("#".concat(r+h)).insertAdjacentHTML("beforebegin",'<p id="'.concat(r).concat(u,'"></p>'));else{var n='<div id="'.concat(r).concat(l,'" class="p5Label"><p id="').concat(r).concat(u,'"></p></div>');this.dummyDOM.querySelector("#".concat(r,"accessibleOutputLabel"))?this.dummyDOM.querySelector("#".concat(r,"accessibleOutputLabel")).insertAdjacentHTML("beforebegin",n):this.dummyDOM.querySelector("#"+r).insertAdjacentHTML("afterend",n)}return this.descriptions.label=this.dummyDOM.querySelector("#"+r+u),void(this.descriptions.label.innerHTML=t)}},n.default.prototype._describeElementHTML=function(e,t,r){var i=this.canvas.id;if("fallback"===e){if(this.dummyDOM.querySelector("#".concat(i+o)))this.dummyDOM.querySelector("#"+i+s)||this.dummyDOM.querySelector("#"+i+a).insertAdjacentHTML("afterend",'<table id="'.concat(i).concat(s,'"><caption>Canvas elements and their descriptions</caption></table>'));else{var n='<div id="'.concat(i).concat(o,'" role="region" aria-label="Canvas Description"><table id="').concat(i).concat(s,'"><caption>Canvas elements and their descriptions</caption></table></div>');this.dummyDOM.querySelector("#".concat(i,"accessibleOutput"))?this.dummyDOM.querySelector("#".concat(i,"accessibleOutput")).insertAdjacentHTML("beforebegin",n):this.dummyDOM.querySelector("#"+i).innerHTML=n}var c=document.createElement("tr");return c.id=i+"_fte_"+t,this.dummyDOM.querySelector("#"+i+s).appendChild(c),this.descriptions.fallbackElements[t]=this.dummyDOM.querySelector("#".concat(i).concat("_fte_").concat(t)),void(this.descriptions.fallbackElements[t].innerHTML=r)}if("label"===e){if(this.dummyDOM.querySelector("#".concat(i+l)))this.dummyDOM.querySelector("#".concat(i+h))||this.dummyDOM.querySelector("#"+i+u).insertAdjacentHTML("afterend",'<table id="'.concat(i+h,'"></table>'));else{var d='<div id="'.concat(i).concat(l,'" class="p5Label"><table id="').concat(i).concat(h,'"></table></div>');this.dummyDOM.querySelector("#".concat(i,"accessibleOutputLabel"))?this.dummyDOM.querySelector("#".concat(i,"accessibleOutputLabel")).insertAdjacentHTML("beforebegin",d):this.dummyDOM.querySelector("#"+i).insertAdjacentHTML("afterend",d)}var f=document.createElement("tr");f.id=i+"_lte_"+t,this.dummyDOM.querySelector("#"+i+h).appendChild(f),this.descriptions.labelElements[t]=this.dummyDOM.querySelector("#".concat(i).concat("_lte_").concat(t)),this.descriptions.labelElements[t].innerHTML=r}};var d=n.default;r.default=d},{"../core/main":36}],18:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype._updateGridOutput=function(e){if(this.dummyDOM.querySelector("#".concat(e,"_summary"))){var t=this._accessibleOutputs[e],r=function(e,t){var r="",i="",n=0;for(var o in t){var a=0;for(var s in t[o]){var l='<li id="'.concat(e,"shape").concat(n,'">').concat(t[o][s].color," ").concat(o,",");"line"===o?l+=" location = ".concat(t[o][s].pos,", length = ").concat(t[o][s].length," pixels"):(l+=" location = ".concat(t[o][s].pos),"point"!==o&&(l+=", area = ".concat(t[o][s].area," %")),l+="</li>"),r+=l,a++,n++}i=1<a?"".concat(i," ").concat(a," ").concat(o,"s"):"".concat(i," ").concat(a," ").concat(o)}return{numShapes:[n,i],details:r}}(e,this.ingredients.shapes),i=function(e,t,r,i){var n="".concat(t," canvas, ").concat(r," by ").concat(i," pixels, contains ").concat(e[0]);return 1===e[0]?"".concat(n," shape: ").concat(e[1]):"".concat(n," shapes: ").concat(e[1])}(r.numShapes,this.ingredients.colors.background,this.width,this.height),n=function(e,t){var r=0,i="",n=Array.apply(null,Array(10)).map((function(){}));for(var o in n)n[o]=Array.apply(null,Array(10)).map((function(){}));for(var a in t)for(var s in t[a]){var l;l="line"!==a?'<a href="#'.concat(e,"shape").concat(r,'">').concat(t[a][s].color," ").concat(a,"</a>"):'<a href="#'.concat(e,"shape").concat(r,'">').concat(t[a][s].color," ").concat(a," midpoint</a>"),n[t[a][s].loc.locY][t[a][s].loc.locX]?n[t[a][s].loc.locY][t[a][s].loc.locX]=n[t[a][s].loc.locY][t[a][s].loc.locX]+" "+l:n[t[a][s].loc.locY][t[a][s].loc.locX]=l,r++}for(var u in n){var h="<tr>";for(var c in n[u])h+="<td>",void 0!==n[u][c]&&(h+=n[u][c]),h+="</td>";i=i+h+"</tr>"}return i}(e,this.ingredients.shapes);i!==t.summary.innerHTML&&(t.summary.innerHTML=i),n!==t.map.innerHTML&&(t.map.innerHTML=n),r.details!==t.shapeDetails.innerHTML&&(t.shapeDetails.innerHTML=r.details),this._accessibleOutputs[e]=t}};var o=n.default;r.default=o},{"../core/main":36}],19:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e,t,r){return e[0]<.4*t?e[1]<.4*r?"top left":e[1]>.6*r?"bottom left":"mid left":e[0]>.6*t?e[1]<.4*r?"top right":e[1]>.6*r?"bottom right":"mid right":e[1]<.4*r?"top middle":e[1]>.6*r?"bottom middle":"middle"}function a(e,t,r){var i=Math.floor(e[0]/t*10),n=Math.floor(e[1]/r*10);return 10===i&&--i,10===n&&--n,{locX:i,locY:n}}n.default.prototype.textOutput=function(e){n.default._validateParameters("textOutput",arguments),this._accessibleOutputs.text||(this._accessibleOutputs.text=!0,this._createOutput("textOutput","Fallback"),e===this.LABEL&&(this._accessibleOutputs.textLabel=!0,this._createOutput("textOutput","Label")))},n.default.prototype.gridOutput=function(e){n.default._validateParameters("gridOutput",arguments),this._accessibleOutputs.grid||(this._accessibleOutputs.grid=!0,this._createOutput("gridOutput","Fallback"),e===this.LABEL&&(this._accessibleOutputs.gridLabel=!0,this._createOutput("gridOutput","Label")))},n.default.prototype._addAccsOutput=function(){return this._accessibleOutputs||(this._accessibleOutputs={text:!1,grid:!1,textLabel:!1,gridLabel:!1}),this._accessibleOutputs.grid||this._accessibleOutputs.text},n.default.prototype._createOutput=function(e,t){var r,i,n,o=this.canvas.id;this.ingredients||(this.ingredients={shapes:{},colors:{background:"white",fill:"white",stroke:"black"},pShapes:""}),this.dummyDOM||(this.dummyDOM=document.getElementById(o).parentNode);var a="";"Fallback"===t?(r=o+e,i=o+"accessibleOutput",this.dummyDOM.querySelector("#".concat(i))||(this.dummyDOM.querySelector("#".concat(o,"_Description"))?this.dummyDOM.querySelector("#".concat(o,"_Description")).insertAdjacentHTML("afterend",'<div id="'.concat(i,'" role="region" aria-label="Canvas Outputs"></div>')):this.dummyDOM.querySelector("#".concat(o)).innerHTML='<div id="'.concat(i,'" role="region" aria-label="Canvas Outputs"></div>'))):"Label"===t&&(r=o+e+(a=t),i=o+"accessibleOutput"+t,this.dummyDOM.querySelector("#".concat(i))||(this.dummyDOM.querySelector("#".concat(o,"_Label"))?this.dummyDOM.querySelector("#".concat(o,"_Label")).insertAdjacentHTML("afterend",'<div id="'.concat(i,'"></div>')):this.dummyDOM.querySelector("#".concat(o)).insertAdjacentHTML("afterend",'<div id="'.concat(i,'"></div>')))),this._accessibleOutputs[r]={},"textOutput"===e?(a="#".concat(o,"gridOutput").concat(a),n='<div id="'.concat(r,'">Text Output<div id="').concat(r,'Summary" aria-label="text output summary"><p id="').concat(r,'_summary"></p><ul id="').concat(r,'_list"></ul></div><table id="').concat(r,'_shapeDetails" summary="text output shape details"></table></div>'),this.dummyDOM.querySelector(a)?this.dummyDOM.querySelector(a).insertAdjacentHTML("beforebegin",n):this.dummyDOM.querySelector("#".concat(i)).innerHTML=n,this._accessibleOutputs[r].list=this.dummyDOM.querySelector("#".concat(r,"_list"))):"gridOutput"===e&&(a="#".concat(o,"textOutput").concat(a),n='<div id="'.concat(r,'">Grid Output<p id="').concat(r,'_summary" aria-label="grid output summary"><table id="').concat(r,'_map" summary="grid output content"></table><ul id="').concat(r,'_shapeDetails" aria-label="grid output shape details"></ul></div>'),this.dummyDOM.querySelector(a)?this.dummyDOM.querySelector(a).insertAdjacentHTML("afterend",n):this.dummyDOM.querySelector("#".concat(i)).innerHTML=n,this._accessibleOutputs[r].map=this.dummyDOM.querySelector("#".concat(r,"_map"))),this._accessibleOutputs[r].shapeDetails=this.dummyDOM.querySelector("#".concat(r,"_shapeDetails")),this._accessibleOutputs[r].summary=this.dummyDOM.querySelector("#".concat(r,"_summary"))},n.default.prototype._updateAccsOutput=function(){var e=this.canvas.id;JSON.stringify(this.ingredients.shapes)!==this.ingredients.pShapes&&(this.ingredients.pShapes=JSON.stringify(this.ingredients.shapes),this._accessibleOutputs.text&&this._updateTextOutput(e+"textOutput"),this._accessibleOutputs.grid&&this._updateGridOutput(e+"gridOutput"),this._accessibleOutputs.textLabel&&this._updateTextOutput(e+"textOutputLabel"),this._accessibleOutputs.gridLabel&&this._updateGridOutput(e+"gridOutputLabel"))},n.default.prototype._accsBackground=function(e){this.ingredients.pShapes=JSON.stringify(this.ingredients.shapes),this.ingredients.shapes={},this.ingredients.colors.backgroundRGBA!==e&&(this.ingredients.colors.backgroundRGBA=e,this.ingredients.colors.background=this._rgbColorName(e))},n.default.prototype._accsCanvasColors=function(e,t){"fill"===e?this.ingredients.colors.fillRGBA!==t&&(this.ingredients.colors.fillRGBA=t,this.ingredients.colors.fill=this._rgbColorName(t)):"stroke"===e&&this.ingredients.colors.strokeRGBA!==t&&(this.ingredients.colors.strokeRGBA=t,this.ingredients.colors.stroke=this._rgbColorName(t))},n.default.prototype._accsOutput=function(e,t){"ellipse"===e&&t[2]===t[3]?e="circle":"rectangle"===e&&t[2]===t[3]&&(e="square");var r={},i=!0,n=function(e,t){var r,i;return i="rectangle"===e||"ellipse"===e||"arc"===e||"circle"===e||"square"===e?(r=Math.round(t[0]+t[2]/2),Math.round(t[1]+t[3]/2)):"triangle"===e?(r=(t[0]+t[2]+t[4])/3,(t[1]+t[3]+t[5])/3):"quadrilateral"===e?(r=(t[0]+t[2]+t[4]+t[6])/4,(t[1]+t[3]+t[5]+t[7])/4):"line"===e?(r=(t[0]+t[2])/2,(t[1]+t[3])/2):(r=t[0],t[1]),[r,i]}(e,t);if("line"===e){r.color=this.ingredients.colors.stroke,r.length=Math.round(this.dist(t[0],t[1],t[2],t[3]));var s=o([t[0],[1]],this.width,this.height),l=o([t[2],[3]],this.width,this.height);r.loc=a(n,this.width,this.height),r.pos=s===l?"at ".concat(s):"from ".concat(s," to ").concat(l)}else"point"===e?r.color=this.ingredients.colors.stroke:(r.color=this.ingredients.colors.fill,r.area=function(e,t,r,i){var n=0;if("arc"===e){var o=((t[5]-t[4])%(2*Math.PI)+2*Math.PI)%(2*Math.PI);if(n=o*t[2]*t[3]/8,"open"===t[6]||"chord"===t[6]){var a=t[0],s=t[1],l=t[0]+t[2]/2*Math.cos(t[4]).toFixed(2),u=t[1]+t[3]/2*Math.sin(t[4]).toFixed(2),h=t[0]+t[2]/2*Math.cos(t[5]).toFixed(2),c=t[1]+t[3]/2*Math.sin(t[5]).toFixed(2),d=Math.abs(a*(u-c)+l*(c-s)+h*(s-u))/2;o>Math.PI?n+=d:n-=d}}else"ellipse"===e||"circle"===e?n=3.14*t[2]/2*t[3]/2:"line"===e||"point"===e?n=0:"quadrilateral"===e?n=Math.abs((t[6]+t[0])*(t[7]-t[1])+(t[0]+t[2])*(t[1]-t[3])+(t[2]+t[4])*(t[3]-t[5])+(t[4]+t[6])*(t[5]-t[7]))/2:"rectangle"===e||"square"===e?n=t[2]*t[3]:"triangle"===e&&(n=Math.abs(t[0]*(t[3]-t[5])+t[2]*(t[5]-t[1])+t[4]*(t[1]-t[3]))/2);return Math.round(100*n/(r*i))}(e,t,this.width,this.height)),r.pos=o(n,this.width,this.height),r.loc=a(n,this.width,this.height);if(this.ingredients.shapes[e]){if(this.ingredients.shapes[e]!==[r]){for(var u in this.ingredients.shapes[e])JSON.stringify(this.ingredients.shapes[e][u])===JSON.stringify(r)&&(i=!1);!0===i&&this.ingredients.shapes[e].push(r)}}else this.ingredients.shapes[e]=[r]};var s=n.default;r.default=s},{"../core/main":36}],20:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype._updateTextOutput=function(e){if(this.dummyDOM.querySelector("#".concat(e,"_summary"))){var t=this._accessibleOutputs[e],r=function(e,t){var r="",i=0;for(var n in t)for(var o in t[n]){var a='<li><a href="#'.concat(e,"shape").concat(i,'">').concat(t[n][o].color," ").concat(n,"</a>");"line"===n?a+=", ".concat(t[n][o].pos,", ").concat(t[n][o].length," pixels long.</li>"):(a+=", at ".concat(t[n][o].pos),"point"!==n&&(a+=", covering ".concat(t[n][o].area,"% of the canvas")),a+=".</li>"),r+=a,i++}return{numShapes:i,listShapes:r}}(e,this.ingredients.shapes),i=function(e,t,r,i){var n="Your output is a, ".concat(r," by ").concat(i," pixels, ").concat(t," canvas containing the following");return 1===e?"".concat(n," shape:"):"".concat(n," ").concat(e," shapes:")}(r.numShapes,this.ingredients.colors.background,this.width,this.height),n=function(e,t){var r="",i=0;for(var n in t)for(var o in t[n]){var a='<tr id="'.concat(e,"shape").concat(i,'"><th>').concat(t[n][o].color," ").concat(n,"</th>");"line"===n?a+="<td>location = ".concat(t[n][o].pos,"</td><td>length = ").concat(t[n][o].length," pixels</td></tr>"):(a+="<td>location = ".concat(t[n][o].pos,"</td>"),"point"!==n&&(a+="<td> area = ".concat(t[n][o].area,"%</td>")),a+="</tr>"),r+=a,i++}return r}(e,this.ingredients.shapes);i!==t.summary.innerHTML&&(t.summary.innerHTML=i),r.listShapes!==t.list.innerHTML&&(t.list.innerHTML=r.listShapes),n!==t.shapeDetails.innerHTML&&(t.shapeDetails.innerHTML=n),this._accessibleOutputs[e]=t}};var o=n.default;r.default=o},{"../core/main":36}],21:[function(e,t,r){"use strict";var i,n=(i=e("./core/main"))&&i.__esModule?i:{default:i};e("./core/constants"),e("./core/environment"),e("./core/friendly_errors/stacktrace"),e("./core/friendly_errors/validate_params"),e("./core/friendly_errors/file_errors"),e("./core/friendly_errors/fes_core"),e("./core/helpers"),e("./core/legacy"),e("./core/preload"),e("./core/p5.Element"),e("./core/p5.Graphics"),e("./core/p5.Renderer"),e("./core/p5.Renderer2D"),e("./core/rendering"),e("./core/shim"),e("./core/structure"),e("./core/transform"),e("./core/shape/2d_primitives"),e("./core/shape/attributes"),e("./core/shape/curves"),e("./core/shape/vertex"),e("./accessibility/outputs"),e("./accessibility/textOutput"),e("./accessibility/gridOutput"),e("./accessibility/color_namer"),e("./color/color_conversion"),e("./color/creating_reading"),e("./color/p5.Color"),e("./color/setting"),e("./data/p5.TypedDict"),e("./data/local_storage.js"),e("./dom/dom"),e("./accessibility/describe"),e("./events/acceleration"),e("./events/keyboard"),e("./events/mouse"),e("./events/touch"),e("./image/filters"),e("./image/image"),e("./image/loading_displaying"),e("./image/p5.Image"),e("./image/pixels"),e("./io/files"),e("./io/p5.Table"),e("./io/p5.TableRow"),e("./io/p5.XML"),e("./math/calculation"),e("./math/math"),e("./math/noise"),e("./math/p5.Vector"),e("./math/random"),e("./math/trigonometry"),e("./typography/attributes"),e("./typography/loading_displaying"),e("./typography/p5.Font"),e("./utilities/array_functions"),e("./utilities/conversion"),e("./utilities/string_functions"),e("./utilities/time_date"),e("./webgl/3d_primitives"),e("./webgl/interaction"),e("./webgl/light"),e("./webgl/loading"),e("./webgl/material"),e("./webgl/p5.Camera"),e("./webgl/p5.Geometry"),e("./webgl/p5.Matrix"),e("./webgl/p5.RendererGL.Immediate"),e("./webgl/p5.RendererGL"),e("./webgl/p5.RendererGL.Retained"),e("./webgl/p5.Shader"),e("./webgl/p5.RenderBuffer"),e("./webgl/p5.Texture"),e("./webgl/text"),e("./core/init"),t.exports=n.default},{"./accessibility/color_namer":16,"./accessibility/describe":17,"./accessibility/gridOutput":18,"./accessibility/outputs":19,"./accessibility/textOutput":20,"./color/color_conversion":22,"./color/creating_reading":23,"./color/p5.Color":24,"./color/setting":25,"./core/constants":26,"./core/environment":27,"./core/friendly_errors/fes_core":28,"./core/friendly_errors/file_errors":29,"./core/friendly_errors/stacktrace":30,"./core/friendly_errors/validate_params":31,"./core/helpers":32,"./core/init":33,"./core/legacy":35,"./core/main":36,"./core/p5.Element":37,"./core/p5.Graphics":38,"./core/p5.Renderer":39,"./core/p5.Renderer2D":40,"./core/preload":41,"./core/rendering":42,"./core/shape/2d_primitives":43,"./core/shape/attributes":44,"./core/shape/curves":45,"./core/shape/vertex":46,"./core/shim":47,"./core/structure":48,"./core/transform":49,"./data/local_storage.js":50,"./data/p5.TypedDict":51,"./dom/dom":52,"./events/acceleration":53,"./events/keyboard":54,"./events/mouse":55,"./events/touch":56,"./image/filters":57,"./image/image":58,"./image/loading_displaying":59,"./image/p5.Image":60,"./image/pixels":61,"./io/files":62,"./io/p5.Table":63,"./io/p5.TableRow":64,"./io/p5.XML":65,"./math/calculation":66,"./math/math":67,"./math/noise":68,"./math/p5.Vector":69,"./math/random":70,"./math/trigonometry":71,"./typography/attributes":72,"./typography/loading_displaying":73,"./typography/p5.Font":74,"./utilities/array_functions":75,"./utilities/conversion":76,"./utilities/string_functions":77,"./utilities/time_date":78,"./webgl/3d_primitives":79,"./webgl/interaction":80,"./webgl/light":81,"./webgl/loading":82,"./webgl/material":83,"./webgl/p5.Camera":84,"./webgl/p5.Geometry":85,"./webgl/p5.Matrix":86,"./webgl/p5.RenderBuffer":87,"./webgl/p5.RendererGL":90,"./webgl/p5.RendererGL.Immediate":88,"./webgl/p5.RendererGL.Retained":89,"./webgl/p5.Shader":91,"./webgl/p5.Texture":92,"./webgl/text":93}],22:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.ColorConversion={},n.default.ColorConversion._hsbaToHSLA=function(e){var t=e[0],r=e[1],i=e[2],n=(2-r)*i/2;return 0!=n&&(1==n?r=0:n<.5?r/=2-r:r=r*i/(2-2*n)),[t,r,n,e[3]]},n.default.ColorConversion._hsbaToRGBA=function(e){var t=6*e[0],r=e[1],i=e[2],n=[];if(0===r)n=[i,i,i,e[3]];else{var o,a,s,l=Math.floor(t),u=i*(1-r),h=i*(1-r*(t-l)),c=i*(1-r*(1+l-t));s=1===l?(o=h,a=i,u):2===l?(o=u,a=i,c):3===l?(o=u,a=h,i):4===l?(o=c,a=u,i):5===l?(o=i,a=u,h):(o=i,a=c,u),n=[o,a,s,e[3]]}return n},n.default.ColorConversion._hslaToHSBA=function(e){var t,r=e[0],i=e[1],n=e[2];return[r,i=2*((t=n<.5?(1+i)*n:n+i-n*i)-n)/t,t,e[3]]},n.default.ColorConversion._hslaToRGBA=function(e){var t=6*e[0],r=e[1],i=e[2],n=[];if(0===r)n=[i,i,i,e[3]];else{var o,a=2*i-(o=i<.5?(1+r)*i:i+r-i*r),s=function(e,t,r){return e<0?e+=6:6<=e&&(e-=6),e<1?t+(r-t)*e:e<3?r:e<4?t+(r-t)*(4-e):t};n=[s(2+t,a,o),s(t,a,o),s(t-2,a,o),e[3]]}return n},n.default.ColorConversion._rgbaToHSBA=function(e){var t,r,i=e[0],n=e[1],o=e[2],a=Math.max(i,n,o),s=a-Math.min(i,n,o);return 0==s?r=t=0:(r=s/a,i===a?t=(n-o)/s:n===a?t=2+(o-i)/s:o===a&&(t=4+(i-n)/s),t<0?t+=6:6<=t&&(t-=6)),[t/6,r,a,e[3]]},n.default.ColorConversion._rgbaToHSLA=function(e){var t,r,i=e[0],n=e[1],o=e[2],a=Math.max(i,n,o),s=Math.min(i,n,o),l=a+s,u=a-s;return 0==u?r=t=0:(r=l<1?u/l:u/(2-l),i===a?t=(n-o)/u:n===a?t=2+(o-i)/u:o===a&&(t=4+(i-n)/u),t<0?t+=6:6<=t&&(t-=6)),[t/6,r,l/2,e[3]]};var o=n.default.ColorConversion;r.default=o},{"../core/main":36}],23:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}e("./p5.Color"),e("../core/friendly_errors/validate_params"),e("../core/friendly_errors/file_errors"),e("../core/friendly_errors/fes_core"),o.default.prototype.alpha=function(e){return o.default._validateParameters("alpha",arguments),this.color(e)._getAlpha()},o.default.prototype.blue=function(e){return o.default._validateParameters("blue",arguments),this.color(e)._getBlue()},o.default.prototype.brightness=function(e){return o.default._validateParameters("brightness",arguments),this.color(e)._getBrightness()},o.default.prototype.color=function(){if(o.default._validateParameters("color",arguments),arguments[0]instanceof o.default.Color)return arguments[0];var e=arguments[0]instanceof Array?arguments[0]:arguments;return new o.default.Color(this,e)},o.default.prototype.green=function(e){return o.default._validateParameters("green",arguments),this.color(e)._getGreen()},o.default.prototype.hue=function(e){return o.default._validateParameters("hue",arguments),this.color(e)._getHue()},o.default.prototype.lerpColor=function(e,t,r){o.default._validateParameters("lerpColor",arguments);var i,n,s,l,u,h,c=this._colorMode,d=this._colorMaxes;if(c===a.RGB)u=e.levels.map((function(e){return e/255})),h=t.levels.map((function(e){return e/255}));else if(c===a.HSB)e._getBrightness(),t._getBrightness(),u=e.hsba,h=t.hsba;else{if(c!==a.HSL)throw new Error("".concat(c,"cannot be used for interpolation."));e._getLightness(),t._getLightness(),u=e.hsla,h=t.hsla}return r=Math.max(Math.min(r,1),0),void 0===this.lerp&&(this.lerp=function(e,t,r){return r*(t-e)+e}),i=this.lerp(u[0],h[0],r),n=this.lerp(u[1],h[1],r),s=this.lerp(u[2],h[2],r),l=this.lerp(u[3],h[3],r),i*=d[c][0],n*=d[c][1],s*=d[c][2],l*=d[c][3],this.color(i,n,s,l)},o.default.prototype.lightness=function(e){return o.default._validateParameters("lightness",arguments),this.color(e)._getLightness()},o.default.prototype.red=function(e){return o.default._validateParameters("red",arguments),this.color(e)._getRed()},o.default.prototype.saturation=function(e){return o.default._validateParameters("saturation",arguments),this.color(e)._getSaturation()};var l=o.default;r.default=l},{"../core/constants":26,"../core/friendly_errors/fes_core":28,"../core/friendly_errors/file_errors":29,"../core/friendly_errors/validate_params":31,"../core/main":36,"./p5.Color":24}],24:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=l(e("../core/main")),o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants")),a=l(e("./color_conversion"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){return e&&e.__esModule?e:{default:e}}n.default.Color=function(e,t){if(this._storeModeAndMaxes(e._colorMode,e._colorMaxes),this.mode!==o.RGB&&this.mode!==o.HSL&&this.mode!==o.HSB)throw new Error("".concat(this.mode," is an invalid colorMode."));return this._array=n.default.Color._parseInputs.apply(this,t),this._calculateLevels(),this},n.default.Color.prototype.toString=function(e){var t=this.levels,r=this._array,i=r[3];switch(e){case"#rrggbb":return"#".concat(t[0]<16?"0".concat(t[0].toString(16)):t[0].toString(16),t[1]<16?"0".concat(t[1].toString(16)):t[1].toString(16),t[2]<16?"0".concat(t[2].toString(16)):t[2].toString(16));case"#rrggbbaa":return"#".concat(t[0]<16?"0".concat(t[0].toString(16)):t[0].toString(16),t[1]<16?"0".concat(t[1].toString(16)):t[1].toString(16),t[2]<16?"0".concat(t[2].toString(16)):t[2].toString(16),t[3]<16?"0".concat(t[2].toString(16)):t[3].toString(16));case"#rgb":return"#".concat(Math.round(15*r[0]).toString(16),Math.round(15*r[1]).toString(16),Math.round(15*r[2]).toString(16));case"#rgba":return"#".concat(Math.round(15*r[0]).toString(16),Math.round(15*r[1]).toString(16),Math.round(15*r[2]).toString(16),Math.round(15*r[3]).toString(16));case"rgb":return"rgb(".concat(t[0],", ",t[1],", ",t[2],")");case"rgb%":return"rgb(".concat((100*r[0]).toPrecision(3),"%, ",(100*r[1]).toPrecision(3),"%, ",(100*r[2]).toPrecision(3),"%)");case"rgba%":return"rgba(".concat((100*r[0]).toPrecision(3),"%, ",(100*r[1]).toPrecision(3),"%, ",(100*r[2]).toPrecision(3),"%, ",(100*r[3]).toPrecision(3),"%)");case"hsb":case"hsv":return this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),"hsb(".concat(this.hsba[0]*this.maxes[o.HSB][0],", ",this.hsba[1]*this.maxes[o.HSB][1],", ",this.hsba[2]*this.maxes[o.HSB][2],")");case"hsb%":case"hsv%":return this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),"hsb(".concat((100*this.hsba[0]).toPrecision(3),"%, ",(100*this.hsba[1]).toPrecision(3),"%, ",(100*this.hsba[2]).toPrecision(3),"%)");case"hsba":case"hsva":return this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),"hsba(".concat(this.hsba[0]*this.maxes[o.HSB][0],", ",this.hsba[1]*this.maxes[o.HSB][1],", ",this.hsba[2]*this.maxes[o.HSB][2],", ",i,")");case"hsba%":case"hsva%":return this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),"hsba(".concat((100*this.hsba[0]).toPrecision(3),"%, ",(100*this.hsba[1]).toPrecision(3),"%, ",(100*this.hsba[2]).toPrecision(3),"%, ",(100*i).toPrecision(3),"%)");case"hsl":return this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),"hsl(".concat(this.hsla[0]*this.maxes[o.HSL][0],", ",this.hsla[1]*this.maxes[o.HSL][1],", ",this.hsla[2]*this.maxes[o.HSL][2],")");case"hsl%":return this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),"hsl(".concat((100*this.hsla[0]).toPrecision(3),"%, ",(100*this.hsla[1]).toPrecision(3),"%, ",(100*this.hsla[2]).toPrecision(3),"%)");case"hsla":return this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),"hsla(".concat(this.hsla[0]*this.maxes[o.HSL][0],", ",this.hsla[1]*this.maxes[o.HSL][1],", ",this.hsla[2]*this.maxes[o.HSL][2],", ",i,")");case"hsla%":return this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),"hsl(".concat((100*this.hsla[0]).toPrecision(3),"%, ",(100*this.hsla[1]).toPrecision(3),"%, ",(100*this.hsla[2]).toPrecision(3),"%, ",(100*i).toPrecision(3),"%)");case"rgba":default:return"rgba(".concat(t[0],",",t[1],",",t[2],",",i,")")}},n.default.Color.prototype.setRed=function(e){this._array[0]=e/this.maxes[o.RGB][0],this._calculateLevels()},n.default.Color.prototype.setGreen=function(e){this._array[1]=e/this.maxes[o.RGB][1],this._calculateLevels()},n.default.Color.prototype.setBlue=function(e){this._array[2]=e/this.maxes[o.RGB][2],this._calculateLevels()},n.default.Color.prototype.setAlpha=function(e){this._array[3]=e/this.maxes[this.mode][3],this._calculateLevels()},n.default.Color.prototype._calculateLevels=function(){for(var e=this._array,t=this.levels=new Array(e.length),r=e.length-1;0<=r;--r)t[r]=Math.round(255*e[r])},n.default.Color.prototype._getAlpha=function(){return this._array[3]*this.maxes[this.mode][3]},n.default.Color.prototype._storeModeAndMaxes=function(e,t){this.mode=e,this.maxes=t},n.default.Color.prototype._getMode=function(){return this.mode},n.default.Color.prototype._getMaxes=function(){return this.maxes},n.default.Color.prototype._getBlue=function(){return this._array[2]*this.maxes[o.RGB][2]},n.default.Color.prototype._getBrightness=function(){return this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),this.hsba[2]*this.maxes[o.HSB][2]},n.default.Color.prototype._getGreen=function(){return this._array[1]*this.maxes[o.RGB][1]},n.default.Color.prototype._getHue=function(){return this.mode===o.HSB?(this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),this.hsba[0]*this.maxes[o.HSB][0]):(this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),this.hsla[0]*this.maxes[o.HSL][0])},n.default.Color.prototype._getLightness=function(){return this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),this.hsla[2]*this.maxes[o.HSL][2]},n.default.Color.prototype._getRed=function(){return this._array[0]*this.maxes[o.RGB][0]},n.default.Color.prototype._getSaturation=function(){return this.mode===o.HSB?(this.hsba||(this.hsba=a.default._rgbaToHSBA(this._array)),this.hsba[1]*this.maxes[o.HSB][1]):(this.hsla||(this.hsla=a.default._rgbaToHSLA(this._array)),this.hsla[1]*this.maxes[o.HSL][1])};var u={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},h=/\s*/,c=/(\d{1,3})/,d=/((?:\d+(?:\.\d+)?)|(?:\.\d+))/,f=new RegExp("".concat(d.source,"%")),p={HEX3:/^#([a-f0-9])([a-f0-9])([a-f0-9])$/i,HEX4:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])$/i,HEX6:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i,HEX8:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i,RGB:new RegExp(["^rgb\\(",c.source,",",c.source,",",c.source,"\\)$"].join(h.source),"i"),RGB_PERCENT:new RegExp(["^rgb\\(",f.source,",",f.source,",",f.source,"\\)$"].join(h.source),"i"),RGBA:new RegExp(["^rgba\\(",c.source,",",c.source,",",c.source,",",d.source,"\\)$"].join(h.source),"i"),RGBA_PERCENT:new RegExp(["^rgba\\(",f.source,",",f.source,",",f.source,",",d.source,"\\)$"].join(h.source),"i"),HSL:new RegExp(["^hsl\\(",c.source,",",f.source,",",f.source,"\\)$"].join(h.source),"i"),HSLA:new RegExp(["^hsla\\(",c.source,",",f.source,",",f.source,",",d.source,"\\)$"].join(h.source),"i"),HSB:new RegExp(["^hsb\\(",c.source,",",f.source,",",f.source,"\\)$"].join(h.source),"i"),HSBA:new RegExp(["^hsba\\(",c.source,",",f.source,",",f.source,",",d.source,"\\)$"].join(h.source),"i")};n.default.Color._parseInputs=function(e,t,r,i){var s,l=arguments.length,h=this.mode,c=this.maxes[h],d=[];if(3<=l){for(d[0]=e/c[0],d[1]=t/c[1],d[2]=r/c[2],d[3]="number"==typeof i?i/c[3]:1,s=d.length-1;0<=s;--s){var f=d[s];f<0?d[s]=0:1<f&&(d[s]=1)}return h===o.HSL?a.default._hslaToRGBA(d):h===o.HSB?a.default._hsbaToRGBA(d):d}if(1===l&&"string"==typeof e){var m=e.trim().toLowerCase();if(u[m])return n.default.Color._parseInputs.call(this,u[m]);if(p.HEX3.test(m))return(d=p.HEX3.exec(m).slice(1).map((function(e){return parseInt(e+e,16)/255})))[3]=1,d;if(p.HEX6.test(m))return(d=p.HEX6.exec(m).slice(1).map((function(e){return parseInt(e,16)/255})))[3]=1,d;if(p.HEX4.test(m))return p.HEX4.exec(m).slice(1).map((function(e){return parseInt(e+e,16)/255}));if(p.HEX8.test(m))return p.HEX8.exec(m).slice(1).map((function(e){return parseInt(e,16)/255}));if(p.RGB.test(m))return(d=p.RGB.exec(m).slice(1).map((function(e){return e/255})))[3]=1,d;if(p.RGB_PERCENT.test(m))return(d=p.RGB_PERCENT.exec(m).slice(1).map((function(e){return parseFloat(e)/100})))[3]=1,d;if(p.RGBA.test(m))return p.RGBA.exec(m).slice(1).map((function(e,t){return 3===t?parseFloat(e):e/255}));if(p.RGBA_PERCENT.test(m))return p.RGBA_PERCENT.exec(m).slice(1).map((function(e,t){return 3===t?parseFloat(e):parseFloat(e)/100}));if(p.HSL.test(m)?(d=p.HSL.exec(m).slice(1).map((function(e,t){return 0===t?parseInt(e,10)/360:parseInt(e,10)/100})))[3]=1:p.HSLA.test(m)&&(d=p.HSLA.exec(m).slice(1).map((function(e,t){return 0===t?parseInt(e,10)/360:3===t?parseFloat(e):parseInt(e,10)/100}))),(d=d.map((function(e){return Math.max(Math.min(e,1),0)}))).length)return a.default._hslaToRGBA(d);if(p.HSB.test(m)?(d=p.HSB.exec(m).slice(1).map((function(e,t){return 0===t?parseInt(e,10)/360:parseInt(e,10)/100})))[3]=1:p.HSBA.test(m)&&(d=p.HSBA.exec(m).slice(1).map((function(e,t){return 0===t?parseInt(e,10)/360:3===t?parseFloat(e):parseInt(e,10)/100}))),d.length){for(s=d.length-1;0<=s;--s)d[s]=Math.max(Math.min(d[s],1),0);return a.default._hsbaToRGBA(d)}d=[1,1,1,1]}else{if(1!==l&&2!==l||"number"!=typeof e)throw new Error("".concat(arguments,"is not a valid color representation."));d[0]=e/c[2],d[1]=e/c[2],d[2]=e/c[2],d[3]="number"==typeof t?t/c[3]:1,d=d.map((function(e){return Math.max(Math.min(e,1),0)}))}return d};var m=n.default.Color;r.default=m},{"../core/constants":26,"../core/main":36,"./color_conversion":22}],25:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}e("./p5.Color"),o.default.prototype.background=function(){var e;return(e=this._renderer).background.apply(e,arguments),this},o.default.prototype.clear=function(){return this._renderer.clear(),this},o.default.prototype.colorMode=function(e,t,r,i,n){if(o.default._validateParameters("colorMode",arguments),e===a.RGB||e===a.HSB||e===a.HSL){this._colorMode=e;var s=this._colorMaxes[e];2===arguments.length?(s[0]=t,s[1]=t,s[2]=t,s[3]=t):4===arguments.length?(s[0]=t,s[1]=r,s[2]=i):5===arguments.length&&(s[0]=t,s[1]=r,s[2]=i,s[3]=n)}return this},o.default.prototype.fill=function(){var e;return this._renderer._setProperty("_fillSet",!0),this._renderer._setProperty("_doFill",!0),(e=this._renderer).fill.apply(e,arguments),this},o.default.prototype.noFill=function(){return this._renderer._setProperty("_doFill",!1),this},o.default.prototype.noStroke=function(){return this._renderer._setProperty("_doStroke",!1),this},o.default.prototype.stroke=function(){var e;return this._renderer._setProperty("_strokeSet",!0),this._renderer._setProperty("_doStroke",!0),(e=this._renderer).stroke.apply(e,arguments),this},o.default.prototype.erase=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:255,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:255;return this._renderer.erase(e,t),this},o.default.prototype.noErase=function(){return this._renderer.noErase(),this};var l=o.default;r.default=l},{"../core/constants":26,"../core/main":36,"./p5.Color":24}],26:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.FILL=r.STROKE=r.CURVE=r.BEZIER=r.QUADRATIC=r.LINEAR=r._CTX_MIDDLE=r._DEFAULT_LEADMULT=r._DEFAULT_TEXT_FILL=r.BOLDITALIC=r.BOLD=r.ITALIC=r.NORMAL=r.BLUR=r.ERODE=r.DILATE=r.POSTERIZE=r.INVERT=r.OPAQUE=r.GRAY=r.THRESHOLD=r.BURN=r.DODGE=r.SOFT_LIGHT=r.HARD_LIGHT=r.OVERLAY=r.REPLACE=r.SCREEN=r.MULTIPLY=r.EXCLUSION=r.SUBTRACT=r.DIFFERENCE=r.LIGHTEST=r.DARKEST=r.ADD=r.REMOVE=r.BLEND=r.UP_ARROW=r.TAB=r.SHIFT=r.RIGHT_ARROW=r.RETURN=r.OPTION=r.LEFT_ARROW=r.ESCAPE=r.ENTER=r.DOWN_ARROW=r.DELETE=r.CONTROL=r.BACKSPACE=r.ALT=r.AUTO=r.HSL=r.HSB=r.RGB=r.MITER=r.BEVEL=r.ROUND=r.SQUARE=r.PROJECT=r.PIE=r.CHORD=r.OPEN=r.CLOSE=r.TESS=r.QUAD_STRIP=r.QUADS=r.TRIANGLE_STRIP=r.TRIANGLE_FAN=r.TRIANGLES=r.LINE_LOOP=r.LINE_STRIP=r.LINES=r.POINTS=r.BASELINE=r.BOTTOM=r.TOP=r.CENTER=r.LEFT=r.RIGHT=r.RADIUS=r.CORNERS=r.CORNER=r.RAD_TO_DEG=r.DEG_TO_RAD=r.RADIANS=r.DEGREES=r.TWO_PI=r.TAU=r.QUARTER_PI=r.PI=r.HALF_PI=r.WAIT=r.TEXT=r.MOVE=r.HAND=r.CROSS=r.ARROW=r.WEBGL=r.P2D=void 0,r.FALLBACK=r.LABEL=r.AXES=r.GRID=r._DEFAULT_FILL=r._DEFAULT_STROKE=r.PORTRAIT=r.LANDSCAPE=r.MIRROR=r.CLAMP=r.REPEAT=r.NEAREST=r.IMAGE=r.IMMEDIATE=r.TEXTURE=void 0;var i=Math.PI;r.P2D="p2d",r.WEBGL="webgl",r.ARROW="default",r.CROSS="crosshair",r.HAND="pointer",r.MOVE="move",r.TEXT="text",r.WAIT="wait";var n=i/2;r.HALF_PI=n;var o=i;r.PI=o;var a=i/4;r.QUARTER_PI=a;var s=2*i;r.TAU=s;var l=2*i;r.TWO_PI=l,r.DEGREES="degrees",r.RADIANS="radians";var u=i/180;r.DEG_TO_RAD=u;var h=180/i;r.RAD_TO_DEG=h,r.CORNER="corner",r.CORNERS="corners",r.RADIUS="radius",r.RIGHT="right",r.LEFT="left",r.CENTER="center",r.TOP="top",r.BOTTOM="bottom",r.BASELINE="alphabetic",r.POINTS=0,r.LINES=1,r.LINE_STRIP=3,r.LINE_LOOP=2,r.TRIANGLES=4,r.TRIANGLE_FAN=6,r.TRIANGLE_STRIP=5,r.QUADS="quads",r.QUAD_STRIP="quad_strip",r.TESS="tess",r.CLOSE="close",r.OPEN="open",r.CHORD="chord",r.PIE="pie",r.PROJECT="square",r.SQUARE="butt",r.ROUND="round",r.BEVEL="bevel",r.MITER="miter",r.RGB="rgb",r.HSB="hsb",r.HSL="hsl",r.AUTO="auto",r.ALT=18,r.BACKSPACE=8,r.CONTROL=17,r.DELETE=46,r.DOWN_ARROW=40,r.ENTER=13,r.ESCAPE=27,r.LEFT_ARROW=37,r.OPTION=18,r.RETURN=13,r.RIGHT_ARROW=39,r.SHIFT=16,r.TAB=9,r.UP_ARROW=38,r.BLEND="source-over",r.REMOVE="destination-out",r.ADD="lighter",r.DARKEST="darken",r.LIGHTEST="lighten",r.DIFFERENCE="difference",r.SUBTRACT="subtract",r.EXCLUSION="exclusion",r.MULTIPLY="multiply",r.SCREEN="screen",r.REPLACE="copy",r.OVERLAY="overlay",r.HARD_LIGHT="hard-light",r.SOFT_LIGHT="soft-light",r.DODGE="color-dodge",r.BURN="color-burn",r.THRESHOLD="threshold",r.GRAY="gray",r.OPAQUE="opaque",r.INVERT="invert",r.POSTERIZE="posterize",r.DILATE="dilate",r.ERODE="erode",r.BLUR="blur",r.NORMAL="normal",r.ITALIC="italic",r.BOLD="bold",r.BOLDITALIC="bold italic",r._DEFAULT_TEXT_FILL="#000000",r._DEFAULT_LEADMULT=1.25,r._CTX_MIDDLE="middle",r.LINEAR="linear",r.QUADRATIC="quadratic",r.BEZIER="bezier",r.CURVE="curve",r.STROKE="stroke",r.FILL="fill",r.TEXTURE="texture",r.IMMEDIATE="immediate",r.IMAGE="image",r.NEAREST="nearest",r.REPEAT="repeat",r.CLAMP="clamp",r.MIRROR="mirror",r.LANDSCAPE="landscape",r.PORTRAIT="portrait",r._DEFAULT_STROKE="#000000",r._DEFAULT_FILL="#FFFFFF",r.GRID="grid",r.AXES="axes",r.LABEL="label",r.FALLBACK="fallback"},{}],27:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("./main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("./constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}var l=[a.ARROW,a.CROSS,a.HAND,a.MOVE,a.TEXT,a.WAIT];o.default.prototype._frameRate=0,o.default.prototype._lastFrameTime=window.performance.now(),o.default.prototype._targetFrameRate=60;var u=window.print;function h(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth||0}function c(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight||0}o.default.prototype.print=function(){var e;arguments.length?(e=console).log.apply(e,arguments):u()},o.default.prototype.frameCount=0,o.default.prototype.deltaTime=0,o.default.prototype.focused=document.hasFocus(),o.default.prototype.cursor=function(e,t,r){var i="auto",n=this._curElement.elt;if(l.includes(e))i=e;else if("string"==typeof e){var o="";t&&r&&"number"==typeof t&&"number"==typeof r&&(o="".concat(t," ").concat(r)),i="http://"===e.substring(0,7)||"https://"===e.substring(0,8)||/\.(cur|jpg|jpeg|gif|png|CUR|JPG|JPEG|GIF|PNG)$/.test(e)?"url(".concat(e,") ").concat(o,", auto"):e}n.style.cursor=i},o.default.prototype.frameRate=function(e){return o.default._validateParameters("frameRate",arguments),"number"!=typeof e||e<0?this._frameRate:(this._setProperty("_targetFrameRate",e),0===e&&this._setProperty("_frameRate",e),this)},o.default.prototype.getFrameRate=function(){return this.frameRate()},o.default.prototype.setFrameRate=function(e){return this.frameRate(e)},o.default.prototype.noCursor=function(){this._curElement.elt.style.cursor="none"},o.default.prototype.displayWidth=screen.width,o.default.prototype.displayHeight=screen.height,o.default.prototype.windowWidth=h(),o.default.prototype.windowHeight=c(),o.default.prototype._onresize=function(e){this._setProperty("windowWidth",h()),this._setProperty("windowHeight",c());var t,r=this._isGlobal?window:this;"function"==typeof r.windowResized&&(void 0===(t=r.windowResized(e))||t||e.preventDefault())},o.default.prototype.width=0,o.default.prototype.height=0,o.default.prototype.fullscreen=function(e){if(o.default._validateParameters("fullscreen",arguments),void 0===e)return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;e?function(e){if(!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled))throw new Error("Fullscreen not enabled in this browser.");e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()}(document.documentElement):document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen()},o.default.prototype.pixelDensity=function(e){var t;return o.default._validateParameters("pixelDensity",arguments),"number"==typeof e?(e!==this._pixelDensity&&(this._pixelDensity=e),(t=this).resizeCanvas(this.width,this.height,!0)):t=this._pixelDensity,t},o.default.prototype.displayDensity=function(){return window.devicePixelRatio},o.default.prototype.getURL=function(){return location.href},o.default.prototype.getURLPath=function(){return location.pathname.split("/").filter((function(e){return""!==e}))},o.default.prototype.getURLParams=function(){for(var e,t=/[?&]([^&=]+)(?:[&=])([^&=]+)/gim,r={};null!=(e=t.exec(location.search));)e.index===t.lastIndex&&t.lastIndex++,r[e[1]]=e[2];return r};var d=o.default;r.default=d},{"./constants":26,"./main":36}],28:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../main"))&&i.__esModule?i:{default:i};e("../internationalization");var o=null,a=null;n.default._friendlyError=n.default._checkForUserDefinedFunctions=n.default._fesErrorMonitor=function(){},o=null;function s(e,t){t=t||console.log.bind(console),o||a(),o.some((function(r){if(e.message&&null!==e.message.match("\\W?".concat(r.name,"\\W"))){var i="function"===r.type?"".concat(r.name,"()"):r.name;return t("Did you just try to use p5.js's ".concat(i," ").concat(r.type,"? If so, you may want to move it into your sketch's setup() function.\n\nFor more details, see: ").concat("https://github.com/processing/p5.js/wiki/p5.js-overview#why-cant-i-assign-variables-using-p5-functions-and-variables-before-setup")),!0}}))}a=function(){function t(e){return Object.getOwnPropertyNames(e).filter((function(e){return"_"!==e[0]&&!(e in r)&&(r[e]=!0)})).map((function(t){var r;return r="function"==typeof e[t]?"function":t===t.toUpperCase()?"constant":"variable",{name:t,type:r}}))}var r={};(o=[].concat(t(n.default.prototype),t(e("../constants")))).sort((function(e,t){return t.name.length-e.name.length}))},n.default.prototype._helpForMisusedAtTopLevelCode=s,"complete"!==document.readyState&&(window.addEventListener("error",s,!1),window.addEventListener("load",(function(){window.removeEventListener("error",s,!1)})));var l=n.default;r.default=l},{"../constants":26,"../internationalization":34,"../main":36,"./browser_errors":void 0}],29:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../main"))&&i.__esModule?i:{default:i};e("../internationalization"),n.default._friendlyFileLoadError=function(){};var o=n.default;r.default=o},{"../internationalization":34,"../main":36}],30:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../main"))&&i.__esModule?i:{default:i};function o(){var e=/(^|@)\S+:\d+/,t=/^\s*at .*(\S+:\d+|\(native\))/m,r=/^(eval@)?(\[native code])?$/;return{parse:function(e){return void 0!==e.stacktrace||void 0!==e["opera#sourceloc"]?this.parseOpera(e):e.stack&&e.stack.match(t)?this.parseV8OrIE(e):e.stack?this.parseFFOrSafari(e):void 0},extractLocation:function(e){if(-1===e.indexOf(":"))return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,""));return[t[1],t[2]||void 0,t[3]||void 0]},parseV8OrIE:function(e){return e.stack.split("\n").filter((function(e){return!!e.match(t)}),this).map((function(e){-1<e.indexOf("(eval ")&&(e=e.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var t=e.replace(/^\s+/,"").replace(/\(eval code/g,"("),r=t.match(/ (\((.+):(\d+):(\d+)\)$)/),i=(t=r?t.replace(r[0],""):t).split(/\s+/).slice(1),n=this.extractLocation(r?r[1]:i.pop());return{functionName:i.join(" ")||void 0,fileName:-1<["eval","<anonymous>"].indexOf(n[0])?void 0:n[0],lineNumber:n[1],columnNumber:n[2],source:e}}),this)},parseFFOrSafari:function(e){return e.stack.split("\n").filter((function(e){return!e.match(r)}),this).map((function(e){if(-1<e.indexOf(" > eval")&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===e.indexOf("@")&&-1===e.indexOf(":"))return{functionName:e};var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,r=e.match(t),i=r&&r[1]?r[1]:void 0,n=this.extractLocation(e.replace(t,""));return{functionName:i,fileName:n[0],lineNumber:n[1],columnNumber:n[2],source:e}}),this)},parseOpera:function(e){return!e.stacktrace||-1<e.message.indexOf("\n")&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var t=/Line (\d+).*script (?:in )?(\S+)/i,r=e.message.split("\n"),i=[],n=2,o=r.length;n<o;n+=2){var a=t.exec(r[n]);a&&i.push({fileName:a[2],lineNumber:a[1],source:r[n]})}return i},parseOpera10:function(e){for(var t=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,r=e.stacktrace.split("\n"),i=[],n=0,o=r.length;n<o;n+=2){var a=t.exec(r[n]);a&&i.push({functionName:a[3]||void 0,fileName:a[2],lineNumber:a[1],source:r[n]})}return i},parseOpera11:function(t){return t.stack.split("\n").filter((function(t){return!!t.match(e)&&!t.match(/^Error created at/)}),this).map((function(e){var t,r=e.split("@"),i=this.extractLocation(r.pop()),n=r.shift()||"",o=n.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;return n.match(/\(([^)]*)\)/)&&(t=n.replace(/^[^(]+\(([^)]*)\)$/,"$1")),{functionName:o,args:void 0===t||"[arguments not available]"===t?void 0:t.split(","),fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:e}}),this)}}}n.default._getErrorStackParser=function(){return new o};var a=n.default;r.default=a},{"../main":36}],31:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../main"))&&i.__esModule?i:{default:i};function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e){return(a="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})(e)}(function(e){if(!(e&&e.__esModule||null===e||"object"!==a(e)&&"function"!=typeof e)){var t=o();if(t&&t.has(e))return t.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var s=i?Object.getOwnPropertyDescriptor(e,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=e[n]}r.default=e,t&&t.set(e,r)}})(e("../constants")),e("../internationalization"),n.default._validateParameters=n.default._clearValidateParamsCache=function(){};var s=n.default;r.default=s},{"../../../docs/parameterData.json":void 0,"../constants":26,"../internationalization":34,"../main":36}],32:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var s=n?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}(e("./constants"));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}var a={modeAdjust:function(e,t,r,i,o){return o===n.CORNER?{x:e,y:t,w:r,h:i}:o===n.CORNERS?{x:e,y:t,w:r-e,h:i-t}:o===n.RADIUS?{x:e-r,y:t-i,w:2*r,h:2*i}:o===n.CENTER?{x:e-.5*r,y:t-.5*i,w:r,h:i}:void 0}};r.default=a},{"./constants":26}],33:[function(e,t,r){"use strict";var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};e("./internationalization");var o=Promise.resolve();Promise.all([new Promise((function(e,t){"complete"===document.readyState?e():window.addEventListener("load",e,!1)})),o]).then((function(){void 0===window._setupDone?window.mocha||(window.setup&&"function"==typeof window.setup||window.draw&&"function"==typeof window.draw)&&!n.default.instance&&new n.default:console.warn("p5.js seems to have been imported multiple times. Please remove the duplicate import")}))},{"../core/main":36,"./internationalization":34}],34:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.initialize=r.translator=void 0;var i,n=a(e("i18next")),o=a(e("i18next-browser-languagedetector"));function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var l=function(){function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.init(t,r)}var t,r;return t=e,(r=[{key:"fetchWithTimeout",value:function(e,t,r){var i=2<arguments.length&&void 0!==r?r:2e3;return Promise.race([fetch(e,t),new Promise((function(e,t){return setTimeout((function(){return t(new Error("timeout"))}),i)}))])}},{key:"init",value:function(e,t){var r=1<arguments.length&&void 0!==t?t:{};this.services=e,this.options=r}},{key:"read",value:function(e,t,r){var n=this.options.loadPath;if(e===this.options.fallback)r(null,i[e][t]);else if(undefined.includes(e)){var o=this.services.interpolator.interpolate(n,{lng:e,ns:t});this.loadUrl(o,r)}else r("Not found",!1)}},{key:"loadUrl",value:function(e,t){this.fetchWithTimeout(e).then((function(t){if(!t.ok)throw new Error("failed loading ".concat(e));return t.json()}),(function(){throw new Error("failed loading ".concat(e))})).then((function(e){return t(null,e)})).catch(t)}}])&&s(t.prototype,r),e}();l.type="backend";var u=function(e,t){console.debug("p5.js translator called before translations were loaded"),n.default.t(e,t)};r.translator=u,r.initialize=function(){return n.default.use(o.default).use(l).init({fallbackLng:"en",nestingPrefix:"$tr(",nestingSuffix:")",defaultNS:"translation",returnEmptyString:!1,interpolation:{escapeValue:!1},detection:{checkWhitelist:!1,order:["querystring","navigator","htmlTag","path","subdomain"],caches:[]},backend:{fallback:"en",loadPath:"https://cdn.jsdelivr.net/npm/p5/translations/{{lng}}/{{ns}}.json"},partialBundledLanguages:!0,resources:i}).then((function(e){r.translator=u=e}),(function(e){return console.debug("Translations failed to load (".concat(e,")"))}))}},{"../../translations":void 0,"../../translations/dev":void 0,i18next:3,"i18next-browser-languagedetector":3}],35:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("./main"))&&i.__esModule?i:{default:i};n.default.prototype.pushStyle=function(){throw new Error("pushStyle() not used, see push()")},n.default.prototype.popStyle=function(){throw new Error("popStyle() not used, see pop()")},n.default.prototype.popMatrix=function(){throw new Error("popMatrix() not used, see pop()")},n.default.prototype.pushMatrix=function(){throw new Error("pushMatrix() not used, see push()")};var o=n.default;r.default=o},{"./main":36}],36:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,e("./shim");var n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var s=n?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}(e("./constants"));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function a(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var s=function(){function e(t,r,i){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._accessibleOutputs={text:!1,grid:!1,textLabel:!1,gridLabel:!1},this._setupDone=!1,this._pixelDensity=Math.ceil(window.devicePixelRatio)||1,this._userNode=r,this._curElement=null,this._elements=[],this._glAttributes=null,this._requestAnimId=0,this._preloadCount=0,this._isGlobal=!1,this._loop=!0,this._initializeInstanceVariables(),this._defaultCanvasSize={width:100,height:100},this._events={mousemove:null,mousedown:null,mouseup:null,dragend:null,dragover:null,click:null,dblclick:null,mouseover:null,mouseout:null,keydown:null,keyup:null,keypress:null,touchstart:null,touchmove:null,touchend:null,resize:null,blur:null},this._millisStart=-1,this._lcg_random_state=null,this._gaussian_previous=!1,this._events.wheel=null,this._loadingScreenId="p5_loading",this._registeredMethods={};var o=Object.getOwnPropertyNames(e.prototype._registeredMethods),a=!0,s=!1,l=void 0;try{for(var u,h=o[Symbol.iterator]();!(a=(u=h.next()).done);a=!0){var c=u.value;this._registeredMethods[c]=e.prototype._registeredMethods[c].slice()}}catch(t){s=!0,l=t}finally{try{a||null==h.return||h.return()}finally{if(s)throw l}}window.DeviceOrientationEvent&&(this._events.deviceorientation=null),window.DeviceMotionEvent&&!window._isNodeWebkit&&(this._events.devicemotion=null),this._start=function(){n._userNode&&"string"==typeof n._userNode&&(n._userNode=document.getElementById(n._userNode));var t=n._isGlobal?window:n;if(t.preload){var r=document.getElementById(n._loadingScreenId);r||((r=document.createElement("div")).innerHTML="Loading...",r.style.position="absolute",r.id=n._loadingScreenId,(n._userNode||document.body).appendChild(r));var i=n._preloadMethods;for(var o in i){i[o]=i[o]||e;var a=i[o];a!==e.prototype&&a!==e||(n._isGlobal&&(window[o]=n._wrapPreload(n,o)),a=n),n._registeredPreloadMethods[o]=a[o],a[o]=n._wrapPreload(a,o)}t.preload(),n._runIfPreloadsAreDone()}else n._setup(),n._draw()},this._runIfPreloadsAreDone=function(){var e=this._isGlobal?window:this;if(0===e._preloadCount){var t=document.getElementById(e._loadingScreenId);t&&t.parentNode.removeChild(t),this._setupDone||(this._lastFrameTime=window.performance.now(),e._setup(),e._draw())}},this._decrementPreload=function(){var e=this._isGlobal?window:this;"function"==typeof e.preload&&(e._setProperty("_preloadCount",e._preloadCount-1),e._runIfPreloadsAreDone())},this._wrapPreload=function(e,t){var r=this;return function(){r._incrementPreload();for(var i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];return r._registeredPreloadMethods[t].apply(e,n)}},this._incrementPreload=function(){var e=this._isGlobal?window:this;e._setProperty("_preloadCount",e._preloadCount+1)},this._setup=function(){n.createCanvas(n._defaultCanvasSize.width,n._defaultCanvasSize.height,"p2d");var e=n._isGlobal?window:n;if("function"==typeof e.preload)for(var t in n._preloadMethods)e[t]=n._preloadMethods[t][t],e[t]&&n&&(e[t]=e[t].bind(n));n._millisStart=window.performance.now(),"function"==typeof e.setup&&e.setup();var r=document.getElementsByTagName("canvas"),i=!0,o=!1,a=void 0;try{for(var s,l=r[Symbol.iterator]();!(i=(s=l.next()).done);i=!0){var u=s.value;"true"===u.dataset.hidden&&(u.style.visibility="",delete u.dataset.hidden)}}catch(e){o=!0,a=e}finally{try{i||null==l.return||l.return()}finally{if(o)throw a}}n._lastFrameTime=window.performance.now(),n._setupDone=!0,(n._accessibleOutputs.grid||n._accessibleOutputs.text)&&n._updateAccsOutput()},this._draw=function(){var e=window.performance.now(),t=e-n._lastFrameTime,r=1e3/n._targetFrameRate;(!n._loop||r-5<=t)&&(n.redraw(),n._frameRate=1e3/(e-n._lastFrameTime),n.deltaTime=e-n._lastFrameTime,n._setProperty("deltaTime",n.deltaTime),n._lastFrameTime=e,void 0!==n._updateMouseCoords&&(n._updateMouseCoords(),n._setProperty("movedX",0),n._setProperty("movedY",0))),n._loop&&(n._requestAnimId=window.requestAnimationFrame(n._draw))},this._setProperty=function(e,t){n[e]=t,n._isGlobal&&(window[e]=t)},this.remove=function(){var t=document.getElementById(n._loadingScreenId);if(t&&(t.parentNode.removeChild(t),n._incrementPreload()),n._curElement){for(var r in n._loop=!1,n._requestAnimId&&window.cancelAnimationFrame(n._requestAnimId),n._events)window.removeEventListener(r,n._events[r]);var i=!0,o=!1,a=void 0;try{for(var s,l=n._elements[Symbol.iterator]();!(i=(s=l.next()).done);i=!0){var u=s.value;for(var h in u.elt&&u.elt.parentNode&&u.elt.parentNode.removeChild(u.elt),u._events)u.elt.removeEventListener(h,u._events[h])}}catch(t){o=!0,a=t}finally{try{i||null==l.return||l.return()}finally{if(o)throw a}}var c=n;n._registeredMethods.remove.forEach((function(e){void 0!==e&&e.call(c)}))}if(n._isGlobal){for(var d in e.prototype)try{delete window[d]}catch(t){window[d]=void 0}for(var f in n)if(n.hasOwnProperty(f))try{delete window[f]}catch(t){window[f]=void 0}e.instance=null}},this._registeredMethods.init.forEach((function(e){void 0!==e&&e.call(this)}),this),this._setupPromisePreloads();var d=this._createFriendlyGlobalFunctionBinder();if(t)t(this),e._checkForUserDefinedFunctions(this);else{for(var f in this._isGlobal=!0,e.instance=this,e.prototype)if("function"==typeof e.prototype[f]){var p=f.substring(2);this._events.hasOwnProperty(p)||(Math.hasOwnProperty(f)&&Math[f]===e.prototype[f]?d(f,e.prototype[f]):d(f,e.prototype[f].bind(this)))}else d(f,e.prototype[f]);for(var m in this)this.hasOwnProperty(m)&&d(m,this[m])}for(var y in this._events){var v=this["_on".concat(y)];if(v){var g=v.bind(this);window.addEventListener(y,g,{passive:!1}),this._events[y]=g}}function b(){n._setProperty("focused",!0)}function _(){n._setProperty("focused",!1)}window.addEventListener("focus",b),window.addEventListener("blur",_),this.registerMethod("remove",(function(){window.removeEventListener("focus",b),window.removeEventListener("blur",_)})),"complete"===document.readyState?this._start():window.addEventListener("load",this._start.bind(this),!1)}var t,r;return t=e,(r=[{key:"_initializeInstanceVariables",value:function(){this._styles=[],this._bezierDetail=20,this._curveDetail=20,this._colorMode=n.RGB,this._colorMaxes={rgb:[255,255,255,255],hsb:[360,100,100,1],hsl:[360,100,100,1]},this._downKeys={}}},{key:"registerPreloadMethod",value:function(t,r){e.prototype._preloadMethods.hasOwnProperty(t)||(e.prototype._preloadMethods[t]=r)}},{key:"registerMethod",value:function(t,r){var i=this||e.prototype;i._registeredMethods.hasOwnProperty(t)||(i._registeredMethods[t]=[]),i._registeredMethods[t].push(r)}},{key:"_createFriendlyGlobalFunctionBinder",value:function(e){var t=0<arguments.length&&void 0!==e?e:{},r=t.globalObject||window;return t.log||console.log.bind(console),function(e,t){r[e]=t}}}])&&a(t.prototype,r),e}();for(var l in s.instance=null,s.disableFriendlyErrors=!1,n)s.prototype[l]=n[l];s.prototype._preloadMethods={loadJSON:s.prototype,loadImage:s.prototype,loadStrings:s.prototype,loadXML:s.prototype,loadBytes:s.prototype,loadTable:s.prototype,loadFont:s.prototype,loadModel:s.prototype,loadShader:s.prototype},s.prototype._registeredMethods={init:[],pre:[],post:[],remove:[]},s.prototype._registeredPreloadMethods={};var u=s;r.default=u},{"./constants":26,"./shim":47}],37:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("./main"))&&i.__esModule?i:{default:i};n.default.Element=function(e,t){this.elt=e,this._pInst=this._pixelsState=t,this._events={},this.width=this.elt.offsetWidth,this.height=this.elt.offsetHeight},n.default.Element.prototype.parent=function(e){return void 0===e?this.elt.parentNode:("string"==typeof e?("#"===e[0]&&(e=e.substring(1)),e=document.getElementById(e)):e instanceof n.default.Element&&(e=e.elt),e.appendChild(this.elt),this)},n.default.Element.prototype.id=function(e){return void 0===e?this.elt.id:(this.elt.id=e,this.width=this.elt.offsetWidth,this.height=this.elt.offsetHeight,this)},n.default.Element.prototype.class=function(e){return void 0===e?this.elt.className:(this.elt.className=e,this)},n.default.Element.prototype.mousePressed=function(e){return n.default.Element._adjustListener("mousedown",(function(t){return this._pInst._setProperty("mouseIsPressed",!0),this._pInst._setMouseButton(t),e.call(this)}),this),this},n.default.Element.prototype.doubleClicked=function(e){return n.default.Element._adjustListener("dblclick",e,this),this},n.default.Element.prototype.mouseWheel=function(e){return n.default.Element._adjustListener("wheel",e,this),this},n.default.Element.prototype.mouseReleased=function(e){return n.default.Element._adjustListener("mouseup",e,this),this},n.default.Element.prototype.mouseClicked=function(e){return n.default.Element._adjustListener("click",e,this),this},n.default.Element.prototype.mouseMoved=function(e){return n.default.Element._adjustListener("mousemove",e,this),this},n.default.Element.prototype.mouseOver=function(e){return n.default.Element._adjustListener("mouseover",e,this),this},n.default.Element.prototype.mouseOut=function(e){return n.default.Element._adjustListener("mouseout",e,this),this},n.default.Element.prototype.touchStarted=function(e){return n.default.Element._adjustListener("touchstart",e,this),this},n.default.Element.prototype.touchMoved=function(e){return n.default.Element._adjustListener("touchmove",e,this),this},n.default.Element.prototype.touchEnded=function(e){return n.default.Element._adjustListener("touchend",e,this),this},n.default.Element.prototype.dragOver=function(e){return n.default.Element._adjustListener("dragover",e,this),this},n.default.Element.prototype.dragLeave=function(e){return n.default.Element._adjustListener("dragleave",e,this),this},n.default.Element._adjustListener=function(e,t,r){return!1===t?n.default.Element._detachListener(e,r):n.default.Element._attachListener(e,t,r),this},n.default.Element._attachListener=function(e,t,r){r._events[e]&&n.default.Element._detachListener(e,r);var i=t.bind(r);r.elt.addEventListener(e,i,!1),r._events[e]=i},n.default.Element._detachListener=function(e,t){var r=t._events[e];t.elt.removeEventListener(e,r,!1),t._events[e]=null},n.default.Element.prototype._setProperty=function(e,t){this[e]=t};var o=n.default.Element;r.default=o},{"./main":36}],38:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("./main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("./constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.Graphics=function(e,t,r,i){var n=r||a.P2D;this.canvas=document.createElement("canvas");var s=i._userNode||document.body;for(var l in s.appendChild(this.canvas),o.default.Element.call(this,this.canvas,i),o.default.prototype)this[l]||("function"==typeof o.default.prototype[l]?this[l]=o.default.prototype[l].bind(this):this[l]=o.default.prototype[l]);return o.default.prototype._initializeInstanceVariables.apply(this),this.width=e,this.height=t,this._pixelDensity=i._pixelDensity,n===a.WEBGL?this._renderer=new o.default.RendererGL(this.canvas,this,!1):this._renderer=new o.default.Renderer2D(this.canvas,this,!1),i._elements.push(this),Object.defineProperty(this,"deltaTime",{get:function(){return this._pInst.deltaTime}}),this._renderer.resize(e,t),this._renderer._applyDefaults(),this},o.default.Graphics.prototype=Object.create(o.default.Element.prototype),o.default.Graphics.prototype.reset=function(){this._renderer.resetMatrix(),this._renderer.isP3D&&this._renderer._update()},o.default.Graphics.prototype.remove=function(){this.elt.parentNode&&this.elt.parentNode.removeChild(this.elt);var e=this._pInst._elements.indexOf(this);for(var t in-1!==e&&this._pInst._elements.splice(e,1),this._events)this.elt.removeEventListener(t,this._events[t])};var l=o.default.Graphics;r.default=l},{"./constants":26,"./main":36}],39:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("./main"))&&i.__esModule?i:{default:i},o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var o=i?Object.getOwnPropertyDescriptor(e,n):null;o&&(o.get||o.set)?Object.defineProperty(r,n,o):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function s(e){return(s="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})(e)}function l(e){var t=0,r=0;if(e.offsetParent)for(;t+=e.offsetLeft,r+=e.offsetTop,e=e.offsetParent;);else t+=e.offsetLeft,r+=e.offsetTop;return[t,r]}n.default.Renderer=function(e,t,r){n.default.Element.call(this,e,t),this.canvas=e,this._pixelsState=t,r?(this._isMainCanvas=!0,this._pInst._setProperty("_curElement",this),this._pInst._setProperty("canvas",this.canvas),this._pInst._setProperty("width",this.width),this._pInst._setProperty("height",this.height)):(this.canvas.style.display="none",this._styles=[]),this._textSize=12,this._textLeading=15,this._textFont="sans-serif",this._textStyle=o.NORMAL,this._textAscent=null,this._textDescent=null,this._textAlign=o.LEFT,this._textBaseline=o.BASELINE,this._rectMode=o.CORNER,this._ellipseMode=o.CENTER,this._curveTightness=0,this._imageMode=o.CORNER,this._tint=null,this._doStroke=!0,this._doFill=!0,this._strokeSet=!1,this._fillSet=!1},n.default.Renderer.prototype=Object.create(n.default.Element.prototype),n.default.Renderer.prototype.push=function(){return{properties:{_doStroke:this._doStroke,_strokeSet:this._strokeSet,_doFill:this._doFill,_fillSet:this._fillSet,_tint:this._tint,_imageMode:this._imageMode,_rectMode:this._rectMode,_ellipseMode:this._ellipseMode,_textFont:this._textFont,_textLeading:this._textLeading,_textSize:this._textSize,_textAlign:this._textAlign,_textBaseline:this._textBaseline,_textStyle:this._textStyle}}},n.default.Renderer.prototype.pop=function(e){e.properties&&Object.assign(this,e.properties)},n.default.Renderer.prototype.resize=function(e,t){this.width=e,this.height=t,this.elt.width=e*this._pInst._pixelDensity,this.elt.height=t*this._pInst._pixelDensity,this.elt.style.width="".concat(e,"px"),this.elt.style.height="".concat(t,"px"),this._isMainCanvas&&(this._pInst._setProperty("width",this.width),this._pInst._setProperty("height",this.height))},n.default.Renderer.prototype.get=function(e,t,r,i){var o=this._pixelsState,a=o._pixelDensity,s=this.canvas;if(void 0===e&&void 0===t)e=t=0,r=o.width,i=o.height;else if(e*=a,t*=a,void 0===r&&void 0===i)return e<0||t<0||e>=s.width||t>=s.height?[0,0,0,0]:this._getPixel(e,t);var l=new n.default.Image(r,i);return l.canvas.getContext("2d").drawImage(s,e,t,r*a,i*a,0,0,r,i),l},n.default.Renderer.prototype.textLeading=function(e){return"number"==typeof e?(this._setProperty("_textLeading",e),this._pInst):this._textLeading},n.default.Renderer.prototype.textSize=function(e){return"number"==typeof e?(this._setProperty("_textSize",e),this._setProperty("_textLeading",e*o._DEFAULT_LEADMULT),this._applyTextProperties()):this._textSize},n.default.Renderer.prototype.textStyle=function(e){return e?(e!==o.NORMAL&&e!==o.ITALIC&&e!==o.BOLD&&e!==o.BOLDITALIC||this._setProperty("_textStyle",e),this._applyTextProperties()):this._textStyle},n.default.Renderer.prototype.textAscent=function(){return null===this._textAscent&&this._updateTextMetrics(),this._textAscent},n.default.Renderer.prototype.textDescent=function(){return null===this._textDescent&&this._updateTextMetrics(),this._textDescent},n.default.Renderer.prototype.textAlign=function(e,t){return void 0!==e?(this._setProperty("_textAlign",e),void 0!==t&&this._setProperty("_textBaseline",t),this._applyTextProperties()):{horizontal:this._textAlign,vertical:this._textBaseline}},n.default.Renderer.prototype.text=function(e,t,r,i,n){var a,s,l,u,h,c,d,f,p,m=this._pInst,y=Number.MAX_VALUE;if((this._doFill||this._doStroke)&&void 0!==e){if("string"!=typeof e&&(e=e.toString()),a=(e=e.replace(/(\t)/g," ")).split("\n"),void 0!==i){for(l=f=0;l<a.length;l++){for(h="",d=a[l].split(" "),s=0;s<d.length;s++)if(c="".concat(h+d[s]," "),i<this.textWidth(c)){for(var v=d[s],g=0;g<v.length;g++)c="".concat(h+v[g]),i<this.textWidth(c)&&0<h.length?(h="".concat(v[g]),f+=m.textLeading()):h=c;h="".concat(h," ")}else h=c;l<a.length-1&&(f+=m.textLeading())}switch(this._rectMode===o.CENTER&&(t-=i/2,r-=n/2),this._textAlign){case o.CENTER:t+=i/2;break;case o.RIGHT:t+=i}var b=!1;if(void 0!==n){switch(this._textBaseline){case o.BOTTOM:p=r+(n-f),r=Math.max(p,r);break;case o.CENTER:p=r+(n-f)/2,r=Math.max(p,r);break;case o.BASELINE:b=!0,this._textBaseline=o.TOP}y=r+n-m.textAscent()}for(l=0;l<a.length;l++){for(h="",d=a[l].split(" "),s=0;s<d.length;s++)if(c="".concat(h+d[s]," "),i<this.textWidth(c)){for(var _=d[s],x=0;x<_.length;x++)if(c="".concat(h+_[x]),i<this.textWidth(c)&&0<h.length){var w=h.slice(-1),S="\n"!==w&&" "!==w;h="".concat(h).concat(S?"-":""),this._renderText(m,h,t,r,y),r+=m.textLeading(),h="".concat(_[x])}else h=c;h="".concat(h," ")}else h=c;this._renderText(m,h,t,r,y),r+=m.textLeading(),b&&(this._textBaseline=o.BASELINE)}}else{var M=0,E=m.textAlign().vertical;for(E===o.CENTER?M=(a.length-1)*m.textLeading()/2:E===o.BOTTOM&&(M=(a.length-1)*m.textLeading()),u=0;u<a.length;u++)this._renderText(m,a[u],t,r-M,y),r+=m.textLeading()}return m}},n.default.Renderer.prototype._applyDefaults=function(){return this},n.default.Renderer.prototype._isOpenType=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this._textFont;return"object"===s(e)&&e.font&&e.font.supported},n.default.Renderer.prototype._updateTextMetrics=function(){if(this._isOpenType())return this._setProperty("_textAscent",this._textFont._textAscent()),this._setProperty("_textDescent",this._textFont._textDescent()),this;var e=document.createElement("span");e.style.fontFamily=this._textFont,e.style.fontSize="".concat(this._textSize,"px"),e.innerHTML="ABCjgq|";var t=document.createElement("div");t.style.display="inline-block",t.style.width="1px",t.style.height="0px";var r=document.createElement("div");r.appendChild(e),r.appendChild(t),r.style.height="0px",r.style.overflow="hidden",document.body.appendChild(r),t.style.verticalAlign="baseline";var i=l(t),n=l(e),o=i[1]-n[1];t.style.verticalAlign="bottom",i=l(t),n=l(e);var a=i[1]-n[1]-o;return document.body.removeChild(r),this._setProperty("_textAscent",o),this._setProperty("_textDescent",a),this};var u=n.default.Renderer;r.default=u},{"../core/constants":26,"./main":36}],40:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=l(e("./main")),o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("./constants")),a=l(e("../image/filters"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){return e&&e.__esModule?e:{default:e}}e("./p5.Renderer");var u="rgba(0,0,0,0)";n.default.Renderer2D=function(e,t,r){return n.default.Renderer.call(this,e,t,r),this.drawingContext=this.canvas.getContext("2d"),this._pInst._setProperty("drawingContext",this.drawingContext),this},n.default.Renderer2D.prototype=Object.create(n.default.Renderer.prototype),n.default.Renderer2D.prototype._applyDefaults=function(){this._cachedFillStyle=this._cachedStrokeStyle=void 0,this._cachedBlendMode=o.BLEND,this._setFill(o._DEFAULT_FILL),this._setStroke(o._DEFAULT_STROKE),this.drawingContext.lineCap=o.ROUND,this.drawingContext.font="normal 12px sans-serif"},n.default.Renderer2D.prototype.resize=function(e,t){n.default.Renderer.prototype.resize.call(this,e,t),this.drawingContext.scale(this._pInst._pixelDensity,this._pInst._pixelDensity)},n.default.Renderer2D.prototype.background=function(){if(this.drawingContext.save(),this.resetMatrix(),(arguments.length<=0?void 0:arguments[0])instanceof n.default.Image)this._pInst.image(arguments.length<=0?void 0:arguments[0],0,0,this.width,this.height);else{var e,t=this._getFill(),r=(e=this._pInst).color.apply(e,arguments);this._pInst._addAccsOutput()&&this._pInst._accsBackground(r.levels);var i=r.toString();this._setFill(i),this._isErasing&&this.blendMode(this._cachedBlendMode),this.drawingContext.fillRect(0,0,this.width,this.height),this._setFill(t),this._isErasing&&this._pInst.erase()}this.drawingContext.restore()},n.default.Renderer2D.prototype.clear=function(){this.drawingContext.save(),this.resetMatrix(),this.drawingContext.clearRect(0,0,this.width,this.height),this.drawingContext.restore()},n.default.Renderer2D.prototype.fill=function(){var e,t=(e=this._pInst).color.apply(e,arguments);this._setFill(t.toString()),this._pInst._addAccsOutput()&&this._pInst._accsCanvasColors("fill",t.levels)},n.default.Renderer2D.prototype.stroke=function(){var e,t=(e=this._pInst).color.apply(e,arguments);this._setStroke(t.toString()),this._pInst._addAccsOutput()&&this._pInst._accsCanvasColors("stroke",t.levels)},n.default.Renderer2D.prototype.erase=function(e,t){if(!this._isErasing){this._cachedFillStyle=this.drawingContext.fillStyle;var r=this._pInst.color(255,e).toString();this.drawingContext.fillStyle=r,this._cachedStrokeStyle=this.drawingContext.strokeStyle;var i=this._pInst.color(255,t).toString();this.drawingContext.strokeStyle=i;var n=this._cachedBlendMode;this.blendMode(o.REMOVE),this._cachedBlendMode=n,this._isErasing=!0}},n.default.Renderer2D.prototype.noErase=function(){this._isErasing&&(this.drawingContext.fillStyle=this._cachedFillStyle,this.drawingContext.strokeStyle=this._cachedStrokeStyle,this.blendMode(this._cachedBlendMode),this._isErasing=!1)},n.default.Renderer2D.prototype.image=function(e,t,r,i,o,a,s,l,u){var h;e.gifProperties&&e._animateGif(this._pInst);try{this._tint&&(n.default.MediaElement&&e instanceof n.default.MediaElement&&e.loadPixels(),e.canvas&&(h=this._getTintedImageCanvas(e))),h=h||e.canvas||e.elt;var c=1;e.width&&0<e.width&&(c=h.width/e.width),this._isErasing&&this.blendMode(this._cachedBlendMode),this.drawingContext.drawImage(h,c*t,c*r,c*i,c*o,a,s,l,u),this._isErasing&&this._pInst.erase()}catch(e){if("NS_ERROR_NOT_AVAILABLE"!==e.name)throw e}},n.default.Renderer2D.prototype._getTintedImageCanvas=function(e){if(!e.canvas)return e;var t=a.default._toPixels(e.canvas),r=document.createElement("canvas");r.width=e.canvas.width,r.height=e.canvas.height;for(var i=r.getContext("2d"),n=i.createImageData(e.canvas.width,e.canvas.height),o=n.data,s=0;s<t.length;s+=4){var l=t[s],u=t[s+1],h=t[s+2],c=t[s+3];o[s]=l*this._tint[0]/255,o[s+1]=u*this._tint[1]/255,o[s+2]=h*this._tint[2]/255,o[s+3]=c*this._tint[3]/255}return i.putImageData(n,0,0),r},n.default.Renderer2D.prototype.blendMode=function(e){if(e===o.SUBTRACT)console.warn("blendMode(SUBTRACT) only works in WEBGL mode.");else{if(e!==o.BLEND&&e!==o.REMOVE&&e!==o.DARKEST&&e!==o.LIGHTEST&&e!==o.DIFFERENCE&&e!==o.MULTIPLY&&e!==o.EXCLUSION&&e!==o.SCREEN&&e!==o.REPLACE&&e!==o.OVERLAY&&e!==o.HARD_LIGHT&&e!==o.SOFT_LIGHT&&e!==o.DODGE&&e!==o.BURN&&e!==o.ADD)throw new Error("Mode ".concat(e," not recognized."));this._cachedBlendMode=e,this.drawingContext.globalCompositeOperation=e}},n.default.Renderer2D.prototype.blend=function(){for(var e=this.drawingContext.globalCompositeOperation,t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];var o=r[r.length-1],a=Array.prototype.slice.call(r,0,r.length-1);this.drawingContext.globalCompositeOperation=o,n.default.prototype.copy.apply(this,a),this.drawingContext.globalCompositeOperation=e},n.default.Renderer2D.prototype._getPixel=function(e,t){var r;return[(r=this.drawingContext.getImageData(e,t,1,1).data)[0],r[1],r[2],r[3]]},n.default.Renderer2D.prototype.loadPixels=function(){var e=this._pixelsState,t=e._pixelDensity,r=this.width*t,i=this.height*t,n=this.drawingContext.getImageData(0,0,r,i);e._setProperty("imageData",n),e._setProperty("pixels",n.data)},n.default.Renderer2D.prototype.set=function(e,t,r){e=Math.floor(e),t=Math.floor(t);var i=this._pixelsState;if(r instanceof n.default.Image)this.drawingContext.save(),this.drawingContext.setTransform(1,0,0,1,0,0),this.drawingContext.scale(i._pixelDensity,i._pixelDensity),this.drawingContext.clearRect(e,t,r.width,r.height),this.drawingContext.drawImage(r.canvas,e,t),this.drawingContext.restore();else{var o=0,a=0,s=0,l=0,u=4*(t*i._pixelDensity*(this.width*i._pixelDensity)+e*i._pixelDensity);if(i.imageData||i.loadPixels.call(i),"number"==typeof r)u<i.pixels.length&&(s=a=o=r,l=255);else if(r instanceof Array){if(r.length<4)throw new Error("pixel array must be of the form [R, G, B, A]");u<i.pixels.length&&(o=r[0],a=r[1],s=r[2],l=r[3])}else r instanceof n.default.Color&&u<i.pixels.length&&(o=r.levels[0],a=r.levels[1],s=r.levels[2],l=r.levels[3]);for(var h=0;h<i._pixelDensity;h++)for(var c=0;c<i._pixelDensity;c++)u=4*((t*i._pixelDensity+c)*this.width*i._pixelDensity+(e*i._pixelDensity+h)),i.pixels[u]=o,i.pixels[u+1]=a,i.pixels[u+2]=s,i.pixels[u+3]=l}},n.default.Renderer2D.prototype.updatePixels=function(e,t,r,i){var n=this._pixelsState,o=n._pixelDensity;void 0===e&&void 0===t&&void 0===r&&void 0===i&&(t=e=0,r=this.width,i=this.height),e*=o,t*=o,r*=o,i*=o,this.gifProperties&&(this.gifProperties.frames[this.gifProperties.displayIndex].image=n.imageData),this.drawingContext.putImageData(n.imageData,e,t,0,0,r,i)},n.default.Renderer2D.prototype._acuteArcToBezier=function(e,t){var r=t/2,i=Math.cos(r),n=Math.sin(r),o=1/Math.tan(r),a=e+r,s=Math.cos(a),l=Math.sin(a),u=(4-i)/3,h=n+(i-u)*o;return{ax:Math.cos(e).toFixed(7),ay:Math.sin(e).toFixed(7),bx:(u*s+h*l).toFixed(7),by:(u*l-h*s).toFixed(7),cx:(u*s-h*l).toFixed(7),cy:(u*l+h*s).toFixed(7),dx:Math.cos(e+t).toFixed(7),dy:Math.sin(e+t).toFixed(7)}},n.default.Renderer2D.prototype.arc=function(e,t,r,i,n,a,s){var l=this.drawingContext,u=r/2,h=i/2,c=0,d=[];for(e+=u,t+=h;1e-5<=a-n;)c=Math.min(a-n,o.HALF_PI),d.push(this._acuteArcToBezier(n,c)),n+=c;return this._doFill&&(l.beginPath(),d.forEach((function(r,i){0===i&&l.moveTo(e+r.ax*u,t+r.ay*h),l.bezierCurveTo(e+r.bx*u,t+r.by*h,e+r.cx*u,t+r.cy*h,e+r.dx*u,t+r.dy*h)})),s!==o.PIE&&null!=s||l.lineTo(e,t),l.closePath(),l.fill()),this._doStroke&&(l.beginPath(),d.forEach((function(r,i){0===i&&l.moveTo(e+r.ax*u,t+r.ay*h),l.bezierCurveTo(e+r.bx*u,t+r.by*h,e+r.cx*u,t+r.cy*h,e+r.dx*u,t+r.dy*h)})),s===o.PIE?(l.lineTo(e,t),l.closePath()):s===o.CHORD&&l.closePath(),l.stroke()),this},n.default.Renderer2D.prototype.ellipse=function(e){var t=this.drawingContext,r=this._doFill,i=this._doStroke,n=parseFloat(e[0]),o=parseFloat(e[1]),a=parseFloat(e[2]),s=parseFloat(e[3]);if(r&&!i){if(this._getFill()===u)return this}else if(!r&&i&&this._getStroke()===u)return this;var l=a/2*.5522847498,h=s/2*.5522847498,c=n+a,d=o+s,f=n+a/2,p=o+s/2;t.beginPath(),t.moveTo(n,p),t.bezierCurveTo(n,p-h,f-l,o,f,o),t.bezierCurveTo(f+l,o,c,p-h,c,p),t.bezierCurveTo(c,p+h,f+l,d,f,d),t.bezierCurveTo(f-l,d,n,p+h,n,p),r&&t.fill(),i&&t.stroke()},n.default.Renderer2D.prototype.line=function(e,t,r,i){var n=this.drawingContext;return this._doStroke&&(this._getStroke()===u||(n.beginPath(),n.moveTo(e,t),n.lineTo(r,i),n.stroke())),this},n.default.Renderer2D.prototype.point=function(e,t){var r=this.drawingContext;if(!this._doStroke)return this;if(this._getStroke()===u)return this;var i=this._getStroke(),n=this._getFill();e=Math.round(e),t=Math.round(t),this._setFill(i),1<r.lineWidth?(r.beginPath(),r.arc(e,t,r.lineWidth/2,0,o.TWO_PI,!1),r.fill()):r.fillRect(e,t,1,1),this._setFill(n)},n.default.Renderer2D.prototype.quad=function(e,t,r,i,n,o,a,s){var l=this.drawingContext,h=this._doFill,c=this._doStroke;if(h&&!c){if(this._getFill()===u)return this}else if(!h&&c&&this._getStroke()===u)return this;return l.beginPath(),l.moveTo(e,t),l.lineTo(r,i),l.lineTo(n,o),l.lineTo(a,s),l.closePath(),h&&l.fill(),c&&l.stroke(),this},n.default.Renderer2D.prototype.rect=function(e){var t=e[0],r=e[1],i=e[2],n=e[3],o=e[4],a=e[5],s=e[6],l=e[7],h=this.drawingContext,c=this._doFill,d=this._doStroke;if(c&&!d){if(this._getFill()===u)return this}else if(!c&&d&&this._getStroke()===u)return this;if(h.beginPath(),void 0===o)h.rect(t,r,i,n);else{void 0===a&&(a=o),void 0===s&&(s=a),void 0===l&&(l=s);var f=Math.abs(i),p=Math.abs(n),m=f/2,y=p/2;f<2*o&&(o=m),p<2*o&&(o=y),f<2*a&&(a=m),p<2*a&&(a=y),f<2*s&&(s=m),p<2*s&&(s=y),f<2*l&&(l=m),p<2*l&&(l=y),h.beginPath(),h.moveTo(t+o,r),h.arcTo(t+i,r,t+i,r+n,a),h.arcTo(t+i,r+n,t,r+n,s),h.arcTo(t,r+n,t,r,l),h.arcTo(t,r,t+i,r,o),h.closePath()}return this._doFill&&h.fill(),this._doStroke&&h.stroke(),this},n.default.Renderer2D.prototype.triangle=function(e){var t=this.drawingContext,r=this._doFill,i=this._doStroke,n=e[0],o=e[1],a=e[2],s=e[3],l=e[4],h=e[5];if(r&&!i){if(this._getFill()===u)return this}else if(!r&&i&&this._getStroke()===u)return this;t.beginPath(),t.moveTo(n,o),t.lineTo(a,s),t.lineTo(l,h),t.closePath(),r&&t.fill(),i&&t.stroke()},n.default.Renderer2D.prototype.endShape=function(e,t,r,i,n,a,s){if(0===t.length)return this;if(!this._doStroke&&!this._doFill)return this;var l,u,h,c=e===o.CLOSE;c&&!a&&t.push(t[0]);var d=t.length;if(!r||s!==o.POLYGON&&null!==s)if(!i||s!==o.POLYGON&&null!==s)if(!n||s!==o.POLYGON&&null!==s)if(s===o.POINTS)for(u=0;u<d;u++)l=t[u],this._doStroke&&this._pInst.stroke(l[6]),this._pInst.point(l[0],l[1]);else if(s===o.LINES)for(u=0;u+1<d;u+=2)l=t[u],this._doStroke&&this._pInst.stroke(t[u+1][6]),this._pInst.line(l[0],l[1],t[u+1][0],t[u+1][1]);else if(s===o.TRIANGLES)for(u=0;u+2<d;u+=3)l=t[u],this.drawingContext.beginPath(),this.drawingContext.moveTo(l[0],l[1]),this.drawingContext.lineTo(t[u+1][0],t[u+1][1]),this.drawingContext.lineTo(t[u+2][0],t[u+2][1]),this.drawingContext.closePath(),this._doFill&&(this._pInst.fill(t[u+2][5]),this.drawingContext.fill()),this._doStroke&&(this._pInst.stroke(t[u+2][6]),this.drawingContext.stroke());else if(s===o.TRIANGLE_STRIP)for(u=0;u+1<d;u++)l=t[u],this.drawingContext.beginPath(),this.drawingContext.moveTo(t[u+1][0],t[u+1][1]),this.drawingContext.lineTo(l[0],l[1]),this._doStroke&&this._pInst.stroke(t[u+1][6]),this._doFill&&this._pInst.fill(t[u+1][5]),u+2<d&&(this.drawingContext.lineTo(t[u+2][0],t[u+2][1]),this._doStroke&&this._pInst.stroke(t[u+2][6]),this._doFill&&this._pInst.fill(t[u+2][5])),this._doFillStrokeClose(c);else if(s===o.TRIANGLE_FAN){if(2<d){for(this.drawingContext.beginPath(),u=2;u<d;u++)l=t[u],this.drawingContext.moveTo(t[0][0],t[0][1]),this.drawingContext.lineTo(t[u-1][0],t[u-1][1]),this.drawingContext.lineTo(l[0],l[1]),this.drawingContext.lineTo(t[0][0],t[0][1]),u<d-1&&(this._doFill&&l[5]!==t[u+1][5]||this._doStroke&&l[6]!==t[u+1][6])&&(this._doFill&&(this._pInst.fill(l[5]),this.drawingContext.fill(),this._pInst.fill(t[u+1][5])),this._doStroke&&(this._pInst.stroke(l[6]),this.drawingContext.stroke(),this._pInst.stroke(t[u+1][6])),this.drawingContext.closePath(),this.drawingContext.beginPath());this._doFillStrokeClose(c)}}else if(s===o.QUADS)for(u=0;u+3<d;u+=4){for(l=t[u],this.drawingContext.beginPath(),this.drawingContext.moveTo(l[0],l[1]),h=1;h<4;h++)this.drawingContext.lineTo(t[u+h][0],t[u+h][1]);this.drawingContext.lineTo(l[0],l[1]),this._doFill&&this._pInst.fill(t[u+3][5]),this._doStroke&&this._pInst.stroke(t[u+3][6]),this._doFillStrokeClose(c)}else if(s===o.QUAD_STRIP){if(3<d)for(u=0;u+1<d;u+=2)l=t[u],this.drawingContext.beginPath(),u+3<d?(this.drawingContext.moveTo(t[u+2][0],t[u+2][1]),this.drawingContext.lineTo(l[0],l[1]),this.drawingContext.lineTo(t[u+1][0],t[u+1][1]),this.drawingContext.lineTo(t[u+3][0],t[u+3][1]),this._doFill&&this._pInst.fill(t[u+3][5]),this._doStroke&&this._pInst.stroke(t[u+3][6])):(this.drawingContext.moveTo(l[0],l[1]),this.drawingContext.lineTo(t[u+1][0],t[u+1][1])),this._doFillStrokeClose(c)}else{for(this.drawingContext.beginPath(),this.drawingContext.moveTo(t[0][0],t[0][1]),u=1;u<d;u++)(l=t[u]).isVert&&(l.moveTo?this.drawingContext.moveTo(l[0],l[1]):this.drawingContext.lineTo(l[0],l[1]));this._doFillStrokeClose(c)}else{for(this.drawingContext.beginPath(),u=0;u<d;u++)t[u].isVert?t[u].moveTo?this.drawingContext.moveTo(t[u][0],t[u][1]):this.drawingContext.lineTo(t[u][0],t[u][1]):this.drawingContext.quadraticCurveTo(t[u][0],t[u][1],t[u][2],t[u][3]);this._doFillStrokeClose(c)}else{for(this.drawingContext.beginPath(),u=0;u<d;u++)t[u].isVert?t[u].moveTo?this.drawingContext.moveTo(t[u][0],t[u][1]):this.drawingContext.lineTo(t[u][0],t[u][1]):this.drawingContext.bezierCurveTo(t[u][0],t[u][1],t[u][2],t[u][3],t[u][4],t[u][5]);this._doFillStrokeClose(c)}else if(3<d){var f=[],p=1-this._curveTightness;for(this.drawingContext.beginPath(),this.drawingContext.moveTo(t[1][0],t[1][1]),u=1;u+2<d;u++)l=t[u],f[0]=[l[0],l[1]],f[1]=[l[0]+(p*t[u+1][0]-p*t[u-1][0])/6,l[1]+(p*t[u+1][1]-p*t[u-1][1])/6],f[2]=[t[u+1][0]+(p*t[u][0]-p*t[u+2][0])/6,t[u+1][1]+(p*t[u][1]-p*t[u+2][1])/6],f[3]=[t[u+1][0],t[u+1][1]],this.drawingContext.bezierCurveTo(f[1][0],f[1][1],f[2][0],f[2][1],f[3][0],f[3][1]);c&&this.drawingContext.lineTo(t[u+1][0],t[u+1][1]),this._doFillStrokeClose(c)}return a=n=i=r=!1,c&&t.pop(),this},n.default.Renderer2D.prototype.strokeCap=function(e){return e!==o.ROUND&&e!==o.SQUARE&&e!==o.PROJECT||(this.drawingContext.lineCap=e),this},n.default.Renderer2D.prototype.strokeJoin=function(e){return e!==o.ROUND&&e!==o.BEVEL&&e!==o.MITER||(this.drawingContext.lineJoin=e),this},n.default.Renderer2D.prototype.strokeWeight=function(e){return this.drawingContext.lineWidth=void 0===e||0===e?1e-4:e,this},n.default.Renderer2D.prototype._getFill=function(){return this._cachedFillStyle||(this._cachedFillStyle=this.drawingContext.fillStyle),this._cachedFillStyle},n.default.Renderer2D.prototype._setFill=function(e){e!==this._cachedFillStyle&&(this.drawingContext.fillStyle=e,this._cachedFillStyle=e)},n.default.Renderer2D.prototype._getStroke=function(){return this._cachedStrokeStyle||(this._cachedStrokeStyle=this.drawingContext.strokeStyle),this._cachedStrokeStyle},n.default.Renderer2D.prototype._setStroke=function(e){e!==this._cachedStrokeStyle&&(this.drawingContext.strokeStyle=e,this._cachedStrokeStyle=e)},n.default.Renderer2D.prototype.bezier=function(e,t,r,i,n,o,a,s){return this._pInst.beginShape(),this._pInst.vertex(e,t),this._pInst.bezierVertex(r,i,n,o,a,s),this._pInst.endShape(),this},n.default.Renderer2D.prototype.curve=function(e,t,r,i,n,o,a,s){return this._pInst.beginShape(),this._pInst.curveVertex(e,t),this._pInst.curveVertex(r,i),this._pInst.curveVertex(n,o),this._pInst.curveVertex(a,s),this._pInst.endShape(),this},n.default.Renderer2D.prototype._doFillStrokeClose=function(e){e&&this.drawingContext.closePath(),this._doFill&&this.drawingContext.fill(),this._doStroke&&this.drawingContext.stroke()},n.default.Renderer2D.prototype.applyMatrix=function(e,t,r,i,n,o){this.drawingContext.transform(e,t,r,i,n,o)},n.default.Renderer2D.prototype.resetMatrix=function(){return this.drawingContext.setTransform(1,0,0,1,0,0),this.drawingContext.scale(this._pInst._pixelDensity,this._pInst._pixelDensity),this},n.default.Renderer2D.prototype.rotate=function(e){this.drawingContext.rotate(e)},n.default.Renderer2D.prototype.scale=function(e,t){return this.drawingContext.scale(e,t),this},n.default.Renderer2D.prototype.translate=function(e,t){return e instanceof n.default.Vector&&(t=e.y,e=e.x),this.drawingContext.translate(e,t),this},n.default.Renderer2D.prototype.text=function(e,t,r,i,a){var s;void 0!==i&&this.drawingContext.textBaseline===o.BASELINE&&(s=!0,this.drawingContext.textBaseline=o.TOP);var l=n.default.Renderer.prototype.text.apply(this,arguments);return s&&(this.drawingContext.textBaseline=o.BASELINE),l},n.default.Renderer2D.prototype._renderText=function(e,t,r,i,n){if(!(n<=i))return e.push(),this._isOpenType()?this._textFont._renderPath(t,r,i,{renderer:this}):(this._doStroke&&this._strokeSet&&this.drawingContext.strokeText(t,r,i),this._doFill&&(this._fillSet||this._setFill(o._DEFAULT_TEXT_FILL),this.drawingContext.fillText(t,r,i))),e.pop(),e},n.default.Renderer2D.prototype.textWidth=function(e){return this._isOpenType()?this._textFont._textWidth(e,this._textSize):this.drawingContext.measureText(e).width},n.default.Renderer2D.prototype._applyTextProperties=function(){var e,t=this._pInst;return this._setProperty("_textAscent",null),this._setProperty("_textDescent",null),e=this._textFont,this._isOpenType()&&(e=this._textFont.font.familyName,this._setProperty("_textStyle",this._textFont.font.styleName)),this.drawingContext.font="".concat(this._textStyle||"normal"," ").concat(this._textSize||12,"px ").concat(e||"sans-serif"),this.drawingContext.textAlign=this._textAlign,this._textBaseline===o.CENTER?this.drawingContext.textBaseline=o._CTX_MIDDLE:this.drawingContext.textBaseline=this._textBaseline,t},n.default.Renderer2D.prototype.push=function(){return this.drawingContext.save(),n.default.Renderer.prototype.push.apply(this)},n.default.Renderer2D.prototype.pop=function(e){this.drawingContext.restore(),this._cachedFillStyle=this.drawingContext.fillStyle,this._cachedStrokeStyle=this.drawingContext.strokeStyle,n.default.Renderer.prototype.pop.call(this,e)};var h=n.default.Renderer2D;r.default=h},{"../image/filters":57,"./constants":26,"./main":36,"./p5.Renderer":39}],41:[function(e,t,r){"use strict";var i,n=(i=e("./main"))&&i.__esModule?i:{default:i};n.default.prototype._promisePreloads=[];var o=!(n.default.prototype.registerPromisePreload=function(e){n.default.prototype._promisePreloads.push(e)});function a(){return{}}n.default.prototype._setupPromisePreloads=function(){var e=!0,t=!1,r=void 0;try{for(var i,a=this._promisePreloads[Symbol.iterator]();!(e=(i=a.next()).done);e=!0){var s=i.value,l=this,u=s.method,h=s.addCallbacks,c=s.legacyPreloadSetup,d=s.target||this,f=d[u].bind(d);if(d===n.default.prototype){if(o)continue;l=null,f=d[u]}d[u]=this._wrapPromisePreload(l,f,h),c&&(d[c.method]=this._legacyPreloadGenerator(l,c,d[u]))}}catch(e){t=!0,r=e}finally{try{e||null==a.return||a.return()}finally{if(t)throw r}}o=!0},n.default.prototype._wrapPromisePreload=function(e,t,r){var i=function(){var e=this;this._incrementPreload();for(var i=null,n=null,o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];if(r)for(var l=a.length-1;0<=l&&!n&&"function"==typeof a[l];l--)n=i,i=a.pop();var u=Promise.resolve(t.apply(this,a));return i&&u.then(i),n&&u.catch(n),u.then((function(){return e._decrementPreload()})),u};return e&&(i=i.bind(e)),i},n.default.prototype._legacyPreloadGenerator=function(e,t,r){var i=t.createBaseObject||a,n=function(){var e=this;this._incrementPreload();var t=i.apply(this,arguments);return r.apply(this,arguments).then((function(r){Object.assign(t,r),e._decrementPreload()})),t};return e&&(n=n.bind(e)),n}},{"./main":36}],42:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("./main"))&&i.__esModule?i:{default:i},o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var o=i?Object.getOwnPropertyDescriptor(e,n):null;o&&(o.get||o.set)?Object.defineProperty(r,n,o):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}(e("./constants"));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function s(e){return(s="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})(e)}e("./p5.Graphics"),e("./p5.Renderer2D"),e("../webgl/p5.RendererGL");var l="defaultCanvas0";n.default.prototype.createCanvas=function(e,t,r){n.default._validateParameters("createCanvas",arguments);var i,a=r||o.P2D;if(a===o.WEBGL){if(i=document.getElementById(l)){i.parentNode.removeChild(i);var s=this._renderer;this._elements=this._elements.filter((function(e){return e!==s}))}(i=document.createElement("canvas")).id=l,i.classList.add("p5Canvas")}else if(this._defaultGraphicsCreated)i=this.canvas;else{i=document.createElement("canvas");for(var u=0;document.getElementById("defaultCanvas".concat(u));)u++;l="defaultCanvas".concat(u),i.id=l,i.classList.add("p5Canvas")}if(this._setupDone||(i.dataset.hidden=!0,i.style.visibility="hidden"),this._userNode)this._userNode.appendChild(i);else{if(0===document.getElementsByTagName("main").length){var h=document.createElement("main");document.body.appendChild(h)}document.getElementsByTagName("main")[0].appendChild(i)}return a===o.WEBGL?(this._setProperty("_renderer",new n.default.RendererGL(i,this,!0)),this._elements.push(this._renderer)):this._defaultGraphicsCreated||(this._setProperty("_renderer",new n.default.Renderer2D(i,this,!0)),this._defaultGraphicsCreated=!0,this._elements.push(this._renderer)),this._renderer.resize(e,t),this._renderer._applyDefaults(),this._renderer},n.default.prototype.resizeCanvas=function(e,t,r){if(n.default._validateParameters("resizeCanvas",arguments),this._renderer){var i={};for(var o in this.drawingContext){var a=this.drawingContext[o];"object"!==s(a)&&"function"!=typeof a&&(i[o]=a)}for(var l in this._renderer.resize(e,t),this.width=e,this.height=t,i)try{this.drawingContext[l]=i[l]}catch(e){}r||this.redraw()}this._addAccsOutput()&&this._updateAccsOutput()},n.default.prototype.noCanvas=function(){this.canvas&&this.canvas.parentNode.removeChild(this.canvas)},n.default.prototype.createGraphics=function(e,t,r){return n.default._validateParameters("createGraphics",arguments),new n.default.Graphics(e,t,r,this)},n.default.prototype.blendMode=function(e){n.default._validateParameters("blendMode",arguments),e===o.NORMAL&&(console.warn("NORMAL has been deprecated for use in blendMode. defaulting to BLEND instead."),e=o.BLEND),this._renderer.blendMode(e)};var u=n.default;r.default=u},{"../webgl/p5.RendererGL":90,"./constants":26,"./main":36,"./p5.Graphics":38,"./p5.Renderer2D":40}],43:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=l(e("../main")),o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../constants")),a=l(e("../helpers"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){return e&&e.__esModule?e:{default:e}}e("../friendly_errors/fes_core"),e("../friendly_errors/file_errors"),e("../friendly_errors/validate_params"),n.default.prototype._normalizeArcAngles=function(e,t,r,i,n){var a;return e-=o.TWO_PI*Math.floor(e/o.TWO_PI),t-=o.TWO_PI*Math.floor(t/o.TWO_PI),a=Math.min(Math.abs(e-t),o.TWO_PI-Math.abs(e-t)),n&&(e=e<=o.HALF_PI?Math.atan(r/i*Math.tan(e)):e>o.HALF_PI&&e<=3*o.HALF_PI?Math.atan(r/i*Math.tan(e))+o.PI:Math.atan(r/i*Math.tan(e))+o.TWO_PI,t=t<=o.HALF_PI?Math.atan(r/i*Math.tan(t)):t>o.HALF_PI&&t<=3*o.HALF_PI?Math.atan(r/i*Math.tan(t))+o.PI:Math.atan(r/i*Math.tan(t))+o.TWO_PI),t<e&&(t+=o.TWO_PI),{start:e,stop:t,correspondToSamePoint:a<1e-5}},n.default.prototype.arc=function(e,t,r,i,o,s,l,u){if(n.default._validateParameters("arc",arguments),!this._renderer._doStroke&&!this._renderer._doFill)return this;if(o===s)return this;o=this._toRadians(o),s=this._toRadians(s),r=Math.abs(r),i=Math.abs(i);var h=a.default.modeAdjust(e,t,r,i,this._renderer._ellipseMode),c=this._normalizeArcAngles(o,s,h.w,h.h,!0);return c.correspondToSamePoint?this._renderer.ellipse([h.x,h.y,h.w,h.h,u]):(this._renderer.arc(h.x,h.y,h.w,h.h,c.start,c.stop,l,u),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("arc",[h.x,h.y,h.w,h.h,c.start,c.stop,l])),this},n.default.prototype.ellipse=function(e,t,r,i,o){return n.default._validateParameters("ellipse",arguments),this._renderEllipse.apply(this,arguments)},n.default.prototype.circle=function(){n.default._validateParameters("circle",arguments);var e=Array.prototype.slice.call(arguments,0,2);return e.push(arguments[2]),e.push(arguments[2]),this._renderEllipse.apply(this,e)},n.default.prototype._renderEllipse=function(e,t,r,i,n){if(!this._renderer._doStroke&&!this._renderer._doFill)return this;r<0&&(r=Math.abs(r)),void 0===i?i=r:i<0&&(i=Math.abs(i));var o=a.default.modeAdjust(e,t,r,i,this._renderer._ellipseMode);return this._renderer.ellipse([o.x,o.y,o.w,o.h,n]),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("ellipse",[o.x,o.y,o.w,o.h]),this},n.default.prototype.line=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i;return n.default._validateParameters("line",t),this._renderer._doStroke&&(i=this._renderer).line.apply(i,t),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("line",t),this},n.default.prototype.point=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i;return n.default._validateParameters("point",t),this._renderer._doStroke&&(1===t.length&&t[0]instanceof n.default.Vector?this._renderer.point.call(this._renderer,t[0].x,t[0].y,t[0].z):((i=this._renderer).point.apply(i,t),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("point",t))),this},n.default.prototype.quad=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i;return n.default._validateParameters("quad",t),(this._renderer._doStroke||this._renderer._doFill)&&(this._renderer.isP3D&&12!==t.length?this._renderer.quad.call(this._renderer,t[0],t[1],0,t[2],t[3],0,t[4],t[5],0,t[6],t[7],0):((i=this._renderer).quad.apply(i,t),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("quadrilateral",t))),this},n.default.prototype.rect=function(){return n.default._validateParameters("rect",arguments),this._renderRect.apply(this,arguments)},n.default.prototype.square=function(e,t,r,i,o,a,s){return n.default._validateParameters("square",arguments),this._renderRect.call(this,e,t,r,r,i,o,a,s)},n.default.prototype._renderRect=function(){if(this._renderer._doStroke||this._renderer._doFill){3===arguments.length&&(arguments[3]=arguments[2]);for(var e=a.default.modeAdjust(arguments[0],arguments[1],arguments[2],arguments[3],this._renderer._rectMode),t=[e.x,e.y,e.w,e.h],r=4;r<arguments.length;r++)t[r]=arguments[r];this._renderer.rect(t),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("rectangle",[e.x,e.y,e.w,e.h])}return this},n.default.prototype.triangle=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return n.default._validateParameters("triangle",t),(this._renderer._doStroke||this._renderer._doFill)&&this._renderer.triangle(t),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._accsOutput("triangle",t),this};var u=n.default;r.default=u},{"../constants":26,"../friendly_errors/fes_core":28,"../friendly_errors/file_errors":29,"../friendly_errors/validate_params":31,"../helpers":32,"../main":36}],44:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.prototype.ellipseMode=function(e){return o.default._validateParameters("ellipseMode",arguments),e!==a.CORNER&&e!==a.CORNERS&&e!==a.RADIUS&&e!==a.CENTER||(this._renderer._ellipseMode=e),this},o.default.prototype.noSmooth=function(){return this.setAttributes("antialias",!1),this._renderer.isP3D||"imageSmoothingEnabled"in this.drawingContext&&(this.drawingContext.imageSmoothingEnabled=!1),this},o.default.prototype.rectMode=function(e){return o.default._validateParameters("rectMode",arguments),e!==a.CORNER&&e!==a.CORNERS&&e!==a.RADIUS&&e!==a.CENTER||(this._renderer._rectMode=e),this},o.default.prototype.smooth=function(){return this.setAttributes("antialias",!0),this._renderer.isP3D||"imageSmoothingEnabled"in this.drawingContext&&(this.drawingContext.imageSmoothingEnabled=!0),this},o.default.prototype.strokeCap=function(e){return o.default._validateParameters("strokeCap",arguments),e!==a.ROUND&&e!==a.SQUARE&&e!==a.PROJECT||this._renderer.strokeCap(e),this},o.default.prototype.strokeJoin=function(e){return o.default._validateParameters("strokeJoin",arguments),e!==a.ROUND&&e!==a.BEVEL&&e!==a.MITER||this._renderer.strokeJoin(e),this},o.default.prototype.strokeWeight=function(e){return o.default._validateParameters("strokeWeight",arguments),this._renderer.strokeWeight(e),this};var l=o.default;r.default=l},{"../constants":26,"../main":36}],45:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../main"))&&i.__esModule?i:{default:i};e("../friendly_errors/fes_core"),e("../friendly_errors/file_errors"),e("../friendly_errors/validate_params"),n.default.prototype.bezier=function(){for(var e,t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return n.default._validateParameters("bezier",r),(this._renderer._doStroke||this._renderer._doFill)&&(e=this._renderer).bezier.apply(e,r),this},n.default.prototype.bezierDetail=function(e){return n.default._validateParameters("bezierDetail",arguments),this._bezierDetail=e,this},n.default.prototype.bezierPoint=function(e,t,r,i,o){n.default._validateParameters("bezierPoint",arguments);var a=1-o;return Math.pow(a,3)*e+3*Math.pow(a,2)*o*t+3*a*Math.pow(o,2)*r+Math.pow(o,3)*i},n.default.prototype.bezierTangent=function(e,t,r,i,o){n.default._validateParameters("bezierTangent",arguments);var a=1-o;return 3*i*Math.pow(o,2)-3*r*Math.pow(o,2)+6*r*a*o-6*t*a*o+3*t*Math.pow(a,2)-3*e*Math.pow(a,2)},n.default.prototype.curve=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i;return n.default._validateParameters("curve",t),this._renderer._doStroke&&(i=this._renderer).curve.apply(i,t),this},n.default.prototype.curveDetail=function(e){return n.default._validateParameters("curveDetail",arguments),this._curveDetail=e<3?3:e,this},n.default.prototype.curveTightness=function(e){return n.default._validateParameters("curveTightness",arguments),this._renderer._curveTightness=e,this},n.default.prototype.curvePoint=function(e,t,r,i,o){n.default._validateParameters("curvePoint",arguments);var a=o*o*o,s=o*o;return e*(-.5*a+s-.5*o)+t*(1.5*a-2.5*s+1)+r*(-1.5*a+2*s+.5*o)+i*(.5*a-.5*s)},n.default.prototype.curveTangent=function(e,t,r,i,o){n.default._validateParameters("curveTangent",arguments);var a=o*o;return e*(-3*a/2+2*o-.5)+t*(9*a/2-5*o)+r*(-9*a/2+4*o+.5)+i*(3*a/2-o)};var o=n.default;r.default=o},{"../friendly_errors/fes_core":28,"../friendly_errors/file_errors":29,"../friendly_errors/validate_params":31,"../main":36}],46:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}var l=null,u=[],h=[],c=!1,d=!1,f=!1,p=!1,m=!0;o.default.prototype.beginContour=function(){return h=[],p=!0,this},o.default.prototype.beginShape=function(e){var t;return o.default._validateParameters("beginShape",arguments),this._renderer.isP3D?(t=this._renderer).beginShape.apply(t,arguments):(l=e===a.POINTS||e===a.LINES||e===a.TRIANGLES||e===a.TRIANGLE_FAN||e===a.TRIANGLE_STRIP||e===a.QUADS||e===a.QUAD_STRIP?e:null,u=[],h=[]),this},o.default.prototype.bezierVertex=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i;if(o.default._validateParameters("bezierVertex",t),this._renderer.isP3D)(i=this._renderer).bezierVertex.apply(i,t);else if(0===u.length)o.default._friendlyError("vertex() must be used once before calling bezierVertex()","bezierVertex");else{c=!0;for(var n=[],a=0;a<t.length;a++)n[a]=t[a];n.isVert=!1,p?h.push(n):u.push(n)}return this},o.default.prototype.curveVertex=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i;return o.default._validateParameters("curveVertex",t),this._renderer.isP3D?(i=this._renderer).curveVertex.apply(i,t):(d=!0,this.vertex(t[0],t[1])),this},o.default.prototype.endContour=function(){var e=h[0].slice();e.isVert=h[0].isVert,e.moveTo=!1,h.push(e),m&&(u.push(u[0]),m=!1);for(var t=0;t<h.length;t++)u.push(h[t]);return this},o.default.prototype.endShape=function(e){if(o.default._validateParameters("endShape",arguments),this._renderer.isP3D)this._renderer.endShape(e,d,c,f,p,l);else{if(0===u.length)return this;if(!this._renderer._doStroke&&!this._renderer._doFill)return this;var t=e===a.CLOSE;t&&!p&&u.push(u[0]),this._renderer.endShape(e,u,d,c,f,p,l),m=!(p=f=c=d=!1),t&&u.pop()}return this},o.default.prototype.quadraticVertex=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(o.default._validateParameters("quadraticVertex",t),this._renderer.isP3D){var i;(i=this._renderer).quadraticVertex.apply(i,t)}else{if(this._contourInited){var n={};return n.x=t[0],n.y=t[1],n.x3=t[2],n.y3=t[3],n.type=a.QUADRATIC,this._contourVertices.push(n),this}if(0<u.length){f=!0;for(var s=[],l=0;l<t.length;l++)s[l]=t[l];s.isVert=!1,p?h.push(s):u.push(s)}else o.default._friendlyError("vertex() must be used once before calling quadraticVertex()","quadraticVertex")}return this},o.default.prototype.vertex=function(e,t,r,i,n){if(this._renderer.isP3D){var o;(o=this._renderer).vertex.apply(o,arguments)}else{var a=[];a.isVert=!0,a[0]=e,a[1]=t,a[2]=0,a[3]=0,a[4]=0,a[5]=this._renderer._getFill(),a[6]=this._renderer._getStroke(),r&&(a.moveTo=r),p?(0===h.length&&(a.moveTo=!0),h.push(a)):u.push(a)}return this};var y=o.default;r.default=y},{"../constants":26,"../main":36}],47:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e,t){window.setTimeout(e,1e3/60)},"undefined"==typeof Uint8ClampedArray||Uint8ClampedArray.prototype.slice||Object.defineProperty(Uint8ClampedArray.prototype,"slice",{value:Array.prototype.slice,writable:!0,configurable:!0,enumerable:!1}),function(){if(!Object.assign){var e=Object.keys,t=Object.defineProperty,r="function"==typeof Symbol&&"symbol"===i(Symbol()),n=Object.prototype.propertyIsEnumerable,o=function(e){return function(t){return n.call(e,t)}};t(Object,"assign",{value:function(t,i){if(null==t)throw new TypeError("target must be an object");var n,a,s,l,u=Object(t);for(n=1;n<arguments.length;++n)for(a=Object(arguments[n]),l=e(a),r&&Object.getOwnPropertySymbols&&l.push.apply(l,Object.getOwnPropertySymbols(a).filter(o(a))),s=0;s<l.length;++s)u[l[s]]=a[l[s]];return u},configurable:!0,enumerable:!1,writable:!0})}}()},{}],48:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("./main"))&&i.__esModule?i:{default:i};n.default.prototype.noLoop=function(){this._loop=!1},n.default.prototype.loop=function(){this._loop||(this._loop=!0,this._setupDone&&this._draw())},n.default.prototype.isLooping=function(){return this._loop},n.default.prototype.push=function(){this._styles.push({props:{_colorMode:this._colorMode},renderer:this._renderer.push()})},n.default.prototype.pop=function(){var e=this._styles.pop();e?(this._renderer.pop(e.renderer),Object.assign(this,e.props)):console.warn("pop() was called without matching push()")},n.default.prototype.redraw=function(e){if(!this._inUserDraw&&this._setupDone){var t=parseInt(e);(isNaN(t)||t<1)&&(t=1);var r=this._isGlobal?window:this;if("function"==typeof r.draw){void 0===r.setup&&r.scale(r._pixelDensity,r._pixelDensity);for(var i=function(e){e.call(r)},n=0;n<t;n++){r.resetMatrix(),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&&this._updateAccsOutput(),r._renderer.isP3D&&r._renderer._update(),r._setProperty("frameCount",r.frameCount+1),r._registeredMethods.pre.forEach(i),this._inUserDraw=!0;try{r.draw()}finally{this._inUserDraw=!1}r._registeredMethods.post.forEach(i)}}}};var o=n.default;r.default=o},{"./main":36}],49:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("./main"))&&i.__esModule?i:{default:i};n.default.prototype.applyMatrix=function(e,t,r,i,n,o){var a;return(a=this._renderer).applyMatrix.apply(a,arguments),this},n.default.prototype.resetMatrix=function(){return this._renderer.resetMatrix(),this},n.default.prototype.rotate=function(e,t){return n.default._validateParameters("rotate",arguments),this._renderer.rotate(this._toRadians(e),t),this},n.default.prototype.rotateX=function(e){return this._assert3d("rotateX"),n.default._validateParameters("rotateX",arguments),this._renderer.rotateX(this._toRadians(e)),this},n.default.prototype.rotateY=function(e){return this._assert3d("rotateY"),n.default._validateParameters("rotateY",arguments),this._renderer.rotateY(this._toRadians(e)),this},n.default.prototype.rotateZ=function(e){return this._assert3d("rotateZ"),n.default._validateParameters("rotateZ",arguments),this._renderer.rotateZ(this._toRadians(e)),this},n.default.prototype.scale=function(e,t,r){if(n.default._validateParameters("scale",arguments),e instanceof n.default.Vector){var i=e;e=i.x,t=i.y,r=i.z}else if(e instanceof Array){var o=e;e=o[0],t=o[1],r=o[2]||1}return isNaN(t)?t=r=e:isNaN(r)&&(r=1),this._renderer.scale.call(this._renderer,e,t,r),this},n.default.prototype.shearX=function(e){n.default._validateParameters("shearX",arguments);var t=this._toRadians(e);return this._renderer.applyMatrix(1,0,Math.tan(t),1,0,0),this},n.default.prototype.shearY=function(e){n.default._validateParameters("shearY",arguments);var t=this._toRadians(e);return this._renderer.applyMatrix(1,Math.tan(t),0,1,0,0),this},n.default.prototype.translate=function(e,t,r){return n.default._validateParameters("translate",arguments),this._renderer.isP3D?this._renderer.translate(e,t,r):this._renderer.translate(e,t),this};var o=n.default;r.default=o},{"./main":36}],50:[function(e,t,r){"use strict";var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function a(e){return(a="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})(e)}n.default.prototype.storeItem=function(e,t){"string"!=typeof e&&console.log("The argument that you passed to storeItem() - ".concat(e," is not a string.")),e.endsWith("p5TypeID")&&console.log("The argument that you passed to storeItem() - ".concat(e," must not end with 'p5TypeID'.")),void 0===t&&console.log("You cannot store undefined variables using storeItem().");var r=a(t);switch(r){case"number":case"boolean":t=t.toString();break;case"object":t instanceof n.default.Color?r="p5.Color":t instanceof n.default.Vector&&(r="p5.Vector",t=[t.x,t.y,t.z]),t=JSON.stringify(t)}localStorage.setItem(e,t);var i="".concat(e,"p5TypeID");localStorage.setItem(i,r)},n.default.prototype.getItem=function(e){var t=localStorage.getItem(e),r=localStorage.getItem("".concat(e,"p5TypeID"));if(void 0===r)console.log("Unable to determine type of item stored under ".concat(e,"in local storage. Did you save the item with something other than setItem()?"));else if(null!==t)switch(r){case"number":t=parseFloat(t);break;case"boolean":t="true"===t;break;case"object":t=JSON.parse(t);break;case"p5.Color":t=JSON.parse(t),t=this.color.apply(this,o(t.levels));break;case"p5.Vector":t=JSON.parse(t),t=this.createVector.apply(this,o(t))}return t},n.default.prototype.clearStorage=function(){localStorage.clear()},n.default.prototype.removeItem=function(e){"string"!=typeof e&&console.log("The argument that you passed to removeItem() - ".concat(e," is not a string.")),localStorage.removeItem(e),localStorage.removeItem("".concat(e,"p5TypeID"))}},{"../core/main":36}],51:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.createStringDict=function(e,t){return n.default._validateParameters("createStringDict",arguments),new n.default.StringDict(e,t)},n.default.prototype.createNumberDict=function(e,t){return n.default._validateParameters("createNumberDict",arguments),new n.default.NumberDict(e,t)},n.default.TypedDict=function(e,t){return e instanceof Object?this.data=e:(this.data={},this.data[e]=t),this},n.default.TypedDict.prototype.size=function(){return Object.keys(this.data).length},n.default.TypedDict.prototype.hasKey=function(e){return this.data.hasOwnProperty(e)},n.default.TypedDict.prototype.get=function(e){if(this.data.hasOwnProperty(e))return this.data[e];console.log("".concat(e," does not exist in this Dictionary"))},n.default.TypedDict.prototype.set=function(e,t){this._validate(t)?this.data[e]=t:console.log("Those values dont work for this dictionary type.")},n.default.TypedDict.prototype._addObj=function(e){for(var t in e)this.set(t,e[t])},n.default.TypedDict.prototype.create=function(e,t){e instanceof Object&&void 0===t?this._addObj(e):void 0!==e?this.set(e,t):console.log("In order to create a new Dictionary entry you must pass an object or a key, value pair")},n.default.TypedDict.prototype.clear=function(){this.data={}},n.default.TypedDict.prototype.remove=function(e){if(!this.data.hasOwnProperty(e))throw new Error("".concat(e," does not exist in this Dictionary"));delete this.data[e]},n.default.TypedDict.prototype.print=function(){for(var e in this.data)console.log("key:".concat(e," value:").concat(this.data[e]))},n.default.TypedDict.prototype.saveTable=function(e){var t="";for(var r in this.data)t+="".concat(r,",").concat(this.data[r],"\n");var i=new Blob([t],{type:"text/csv"});n.default.prototype.downloadFile(i,e||"mycsv","csv")},n.default.TypedDict.prototype.saveJSON=function(e,t){n.default.prototype.saveJSON(this.data,e,t)},n.default.TypedDict.prototype._validate=function(e){return!0},n.default.StringDict=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];n.default.TypedDict.apply(this,t)},n.default.StringDict.prototype=Object.create(n.default.TypedDict.prototype),n.default.StringDict.prototype._validate=function(e){return"string"==typeof e},n.default.NumberDict=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];n.default.TypedDict.apply(this,t)},n.default.NumberDict.prototype=Object.create(n.default.TypedDict.prototype),n.default.NumberDict.prototype._validate=function(e){return"number"==typeof e},n.default.NumberDict.prototype.add=function(e,t){this.data.hasOwnProperty(e)?this.data[e]+=t:console.log("The key - ".concat(e," does not exist in this dictionary."))},n.default.NumberDict.prototype.sub=function(e,t){this.add(e,-t)},n.default.NumberDict.prototype.mult=function(e,t){this.data.hasOwnProperty(e)?this.data[e]*=t:console.log("The key - ".concat(e," does not exist in this dictionary."))},n.default.NumberDict.prototype.div=function(e,t){this.data.hasOwnProperty(e)?this.data[e]/=t:console.log("The key - ".concat(e," does not exist in this dictionary."))},n.default.NumberDict.prototype._valueTest=function(e){if(0===Object.keys(this.data).length)throw new Error("Unable to search for a minimum or maximum value on an empty NumberDict");if(1===Object.keys(this.data).length)return this.data[Object.keys(this.data)[0]];var t=this.data[Object.keys(this.data)[0]];for(var r in this.data)this.data[r]*e<t*e&&(t=this.data[r]);return t},n.default.NumberDict.prototype.minValue=function(){return this._valueTest(1)},n.default.NumberDict.prototype.maxValue=function(){return this._valueTest(-1)},n.default.NumberDict.prototype._keyTest=function(e){if(0===Object.keys(this.data).length)throw new Error("Unable to use minValue on an empty NumberDict");if(1===Object.keys(this.data).length)return Object.keys(this.data)[0];for(var t=Object.keys(this.data)[0],r=1;r<Object.keys(this.data).length;r++)Object.keys(this.data)[r]*e<t*e&&(t=Object.keys(this.data)[r]);return t},n.default.NumberDict.prototype.minKey=function(){return this._keyTest(1)},n.default.NumberDict.prototype.maxKey=function(){return this._keyTest(-1)};var o=n.default.TypedDict;r.default=o},{"../core/main":36}],52:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e){return(o="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})(e)}function a(e,t,r){(t._userNode?t._userNode:document.body).appendChild(e);var i=r?new n.default.MediaElement(e,t):new n.default.Element(e,t);return t._elements.push(i),i}function s(e,t,r,i){var n=document.createElement(t);"string"==typeof(r=r||"")&&(r=[r]);var o=!0,s=!1,l=void 0;try{for(var u,h=r[Symbol.iterator]();!(o=(u=h.next()).done);o=!0){var c=u.value,d=document.createElement("source");d.setAttribute("src",c),n.appendChild(d)}}catch(e){s=!0,l=e}finally{try{o||null==h.return||h.return()}finally{if(s)throw l}}"function"==typeof i&&n.addEventListener("canplaythrough",(function e(){i(),n.removeEventListener("canplaythrough",e)}));var f=a(n,e,!0);return f.loadedmetadata=!1,n.addEventListener("loadedmetadata",(function(){f.width=n.videoWidth,f.height=n.videoHeight,0===f.elt.width&&(f.elt.width=n.videoWidth),0===f.elt.height&&(f.elt.height=n.videoHeight),f.presetPlaybackRate&&(f.elt.playbackRate=f.presetPlaybackRate,delete f.presetPlaybackRate),f.loadedmetadata=!0})),f}function l(e,t,r,i){this.callback=e,this.time=t,this.id=r,this.val=i}n.default.prototype.select=function(e,t){n.default._validateParameters("select",arguments);var r=this._getContainer(t).querySelector(e);return r?this._wrapElement(r):null},n.default.prototype.selectAll=function(e,t){n.default._validateParameters("selectAll",arguments);var r=[],i=this._getContainer(t).querySelectorAll(e);if(i)for(var o=0;o<i.length;o++){var a=this._wrapElement(i[o]);r.push(a)}return r},n.default.prototype._getContainer=function(e){var t=document;return"string"==typeof e?t=document.querySelector(e)||document:e instanceof n.default.Element?t=e.elt:e instanceof HTMLElement&&(t=e),t},n.default.prototype._wrapElement=function(e){var t=Array.prototype.slice.call(e.children);if("INPUT"!==e.tagName||"checkbox"!==e.type)return"VIDEO"===e.tagName||"AUDIO"===e.tagName?new n.default.MediaElement(e,this):"SELECT"===e.tagName?this.createSelect(new n.default.Element(e,this)):0<t.length&&t.every((function(e){return"INPUT"===e.tagName||"LABEL"===e.tagName}))?this.createRadio(new n.default.Element(e,this)):new n.default.Element(e,this);var r=new n.default.Element(e,this);return r.checked=function(){return 0===arguments.length?this.elt.checked:(this.elt.checked=!!arguments[0],this)},r},n.default.prototype.removeElements=function(e){n.default._validateParameters("removeElements",arguments),this._elements.filter((function(e){return!(e.elt instanceof HTMLCanvasElement)})).map((function(e){return e.remove()}))},n.default.Element.prototype.changed=function(e){return n.default.Element._adjustListener("change",e,this),this},n.default.Element.prototype.input=function(e){return n.default.Element._adjustListener("input",e,this),this},n.default.prototype.createDiv=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",t=document.createElement("div");return t.innerHTML=e,a(t,this)},n.default.prototype.createP=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",t=document.createElement("p");return t.innerHTML=e,a(t,this)},n.default.prototype.createSpan=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",t=document.createElement("span");return t.innerHTML=e,a(t,this)},n.default.prototype.createImg=function(){n.default._validateParameters("createImg",arguments);var e,t=document.createElement("img"),r=arguments;return 1<r.length&&"string"==typeof r[1]&&(t.alt=r[1]),2<r.length&&"string"==typeof r[2]&&(t.crossOrigin=r[2]),t.src=r[0],e=a(t,this),t.addEventListener("load",(function(){e.width=t.offsetWidth||t.width,e.height=t.offsetHeight||t.height;var i=r[r.length-1];"function"==typeof i&&i(e)})),e},n.default.prototype.createA=function(e,t,r){n.default._validateParameters("createA",arguments);var i=document.createElement("a");return i.href=e,i.innerHTML=t,r&&(i.target=r),a(i,this)},n.default.prototype.createSlider=function(e,t,r,i){n.default._validateParameters("createSlider",arguments);var o=document.createElement("input");return o.type="range",o.min=e,o.max=t,0===i?o.step=1e-18:i&&(o.step=i),"number"==typeof r&&(o.value=r),a(o,this)},n.default.prototype.createButton=function(e,t){n.default._validateParameters("createButton",arguments);var r=document.createElement("button");return r.innerHTML=e,t&&(r.value=t),a(r,this)},n.default.prototype.createCheckbox=function(){n.default._validateParameters("createCheckbox",arguments);var e=document.createElement("div"),t=document.createElement("input");t.type="checkbox",e.appendChild(t);var r=a(e,this);if(r.checked=function(){var e=r.elt.getElementsByTagName("input")[0];if(e){if(0===arguments.length)return e.checked;e.checked=!!arguments[0]}return r},this.value=function(e){return r.value=e,this},arguments[0]){var i=Math.random().toString(36).slice(2),o=document.createElement("label");t.setAttribute("id",i),o.htmlFor=i,r.value(arguments[0]),o.appendChild(document.createTextNode(arguments[0])),e.appendChild(o)}return arguments[1]&&(t.checked=!0),r},n.default.prototype.createSelect=function(){var e;n.default._validateParameters("createSelect",arguments);var t=arguments[0];if(t instanceof n.default.Element&&t.elt instanceof HTMLSelectElement)e=t,this.elt=t.elt;else if(t instanceof HTMLSelectElement)e=a(t,this),this.elt=t;else{var r=document.createElement("select");t&&"boolean"==typeof t&&r.setAttribute("multiple","true"),e=a(r,this),this.elt=r}return e.option=function(e,t){var r;if(void 0!==e){for(var i=0;i<this.elt.length;i+=1)if(this.elt[i].innerHTML===e){r=i;break}if(void 0!==r)!1===t?this.elt.remove(r):this.elt[r].value=t;else{var n=document.createElement("option");n.innerHTML=e,n.value=void 0===t?e:t,this.elt.appendChild(n),this._pInst._elements.push(n)}}},e.selected=function(e){if(void 0!==e){for(var t=0;t<this.elt.length;t+=1)this.elt[t].value.toString()===e.toString()&&(this.elt.selectedIndex=t);return this}if(this.elt.getAttribute("multiple")){var r=[],i=!0,n=!1,o=void 0;try{for(var a,s=this.elt.selectedOptions[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var l=a.value;r.push(l.value)}}catch(e){n=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(n)throw o}}return r}return this.elt.value},e.disable=function(e){if("string"==typeof e)for(var t=0;t<this.elt.length;t++)this.elt[t].value.toString()===e&&(this.elt[t].disabled=!0,this.elt[t].selected=!1);else this.elt.disabled=!0;return this},e},n.default.prototype.createRadio=function(){var e,t,r=arguments[0];r instanceof HTMLDivElement||r instanceof HTMLSpanElement?(e=r,"string"==typeof arguments[1]&&(t=arguments[1])):("string"==typeof r&&(t=r),e=document.createElement("div"));var i=a(this.elt=e,this);function n(e){return e instanceof HTMLInputElement&&"radio"===e.type}function o(e){return e.nextElementSibling instanceof HTMLLabelElement}return i._name=t||"radioOption",i._getOptionsArray=function(){return Array.from(this.elt.children).filter(n)},i.option=function(e,t){var r,n,a=!0,s=!1,l=void 0;try{for(var u,h=i._getOptionsArray()[Symbol.iterator]();!(a=(u=h.next()).done);a=!0){var c=u.value;if(c.value===e){r=c;break}}}catch(e){s=!0,l=e}finally{try{a||null==h.return||h.return()}finally{if(s)throw l}}return void 0===r&&((r=document.createElement("input")).setAttribute("type","radio"),r.setAttribute("value",e),this.elt.appendChild(r)),o(r)?n=r.nextElementSibling:(n=document.createElement("label"),r.insertAdjacentElement("afterend",n)),n.innerHTML=void 0===t?e:t,r.setAttribute("name",i._name),r},i.remove=function(e){var t=!0,r=!1,n=void 0;try{for(var a,s=i._getOptionsArray()[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var l=a.value;if(l.value===e)return o(l)&&l.nextElementSibling.remove(),void l.remove()}}catch(e){r=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(r)throw n}}},i.value=function(){var e="",t=!0,r=!1,n=void 0;try{for(var o,a=i._getOptionsArray()[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var s=o.value;if(s.checked){e=s.value;break}}}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}return e},i.selected=function(e){var t=null;if(void 0===e){var r=!0,n=!1,o=void 0;try{for(var a,s=i._getOptionsArray()[Symbol.iterator]();!(r=(a=s.next()).done);r=!0){var l=a.value;if(l.checked){t=l;break}}}catch(e){n=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(n)throw o}}}else{var u=!0,h=!1,c=void 0;try{for(var d,f=i._getOptionsArray()[Symbol.iterator]();!(u=(d=f.next()).done);u=!0){var p=d.value;p.value===e&&(p.setAttribute("checked",!0),t=p)}}catch(e){h=!0,c=e}finally{try{u||null==f.return||f.return()}finally{if(h)throw c}}}return t},i.disable=function(){var e=!(0<arguments.length&&void 0!==arguments[0])||arguments[0],t=!0,r=!1,n=void 0;try{for(var o,a=i._getOptionsArray()[Symbol.iterator]();!(t=(o=a.next()).done);t=!0)o.value.setAttribute("disabled",e)}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}},i},n.default.prototype.createColorPicker=function(e){n.default._validateParameters("createColorPicker",arguments);var t,r=document.createElement("input");return r.type="color",e?e instanceof n.default.Color?r.value=e.toString("#rrggbb"):(n.default.prototype._colorMode="rgb",n.default.prototype._colorMaxes={rgb:[255,255,255,255],hsb:[360,100,100,1],hsl:[360,100,100,1]},r.value=n.default.prototype.color(e).toString("#rrggbb")):r.value="#000000",(t=a(r,this)).color=function(){return e&&(e.mode&&(n.default.prototype._colorMode=e.mode),e.maxes&&(n.default.prototype._colorMaxes=e.maxes)),n.default.prototype.color(this.elt.value)},t},n.default.prototype.createInput=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"text";n.default._validateParameters("createInput",arguments);var r=document.createElement("input");return r.setAttribute("value",e),r.setAttribute("type",t),a(r,this)},n.default.prototype.createFileInput=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];if(n.default._validateParameters("createFileInput",arguments),window.File&&window.FileReader&&window.FileList&&window.Blob){var r=document.createElement("input");return r.setAttribute("type","file"),t&&r.setAttribute("multiple",!0),r.addEventListener("change",(function(t){var r=!0,i=!1,o=void 0;try{for(var a,s=t.target.files[Symbol.iterator]();!(r=(a=s.next()).done);r=!0){var l=a.value;n.default.File._load(l,e)}}catch(t){i=!0,o=t}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}}),!1),a(r,this)}console.log("The File APIs are not fully supported in this browser. Cannot create element.")},n.default.prototype.createVideo=function(e,t){return n.default._validateParameters("createVideo",arguments),s(this,"video",e,t)},n.default.prototype.createAudio=function(e,t){return n.default._validateParameters("createAudio",arguments),s(this,"audio",e,t)},n.default.prototype.VIDEO="video",n.default.prototype.AUDIO="audio",void 0===navigator.mediaDevices&&(navigator.mediaDevices={}),void 0===navigator.mediaDevices.getUserMedia&&(navigator.mediaDevices.getUserMedia=function(e){var t=navigator.webkitGetUserMedia||navigator.mozGetUserMedia;return t?new Promise((function(r,i){t.call(navigator,e,r,i)})):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}),n.default.prototype.createCapture=function(){if(n.default._validateParameters("createCapture",arguments),!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new DOMException("getUserMedia not supported in this browser");var e,t,r=!0,i=!0,s=!0,l=!1,u=void 0;try{for(var h,c=arguments[Symbol.iterator]();!(s=(h=c.next()).done);s=!0){var d=h.value;d===n.default.prototype.VIDEO?i=!1:d===n.default.prototype.AUDIO?r=!1:"object"===o(d)?e=d:"function"==typeof d&&(t=d)}}catch(e){l=!0,u=e}finally{try{s||null==c.return||c.return()}finally{if(l)throw u}}e=e||{video:r,audio:i};var f=document.createElement("video");f.setAttribute("playsinline",""),navigator.mediaDevices.getUserMedia(e).then((function(e){try{"srcObject"in f?f.srcObject=e:f.src=window.URL.createObjectURL(e)}catch(t){f.src=e}}),console.log);var p=a(f,this,!0);return p.loadedmetadata=!1,f.addEventListener("loadedmetadata",(function(){f.play(),f.width?(p.width=f.width,p.height=f.height):(p.width=p.elt.width=f.videoWidth,p.height=p.elt.height=f.videoHeight),p.loadedmetadata=!0,t&&t(f.srcObject)})),p},n.default.prototype.createElement=function(e,t){n.default._validateParameters("createElement",arguments);var r=document.createElement(e);return void 0!==t&&(r.innerHTML=t),a(r,this)},n.default.Element.prototype.addClass=function(e){return this.elt.className?this.hasClass(e)||(this.elt.className=this.elt.className+" "+e):this.elt.className=e,this},n.default.Element.prototype.removeClass=function(e){return this.elt.classList.remove(e),this},n.default.Element.prototype.hasClass=function(e){return this.elt.classList.contains(e)},n.default.Element.prototype.toggleClass=function(e){return this.elt.classList.contains(e)?this.elt.classList.remove(e):this.elt.classList.add(e),this},n.default.Element.prototype.child=function(e){return void 0===e?this.elt.childNodes:("string"==typeof e?("#"===e[0]&&(e=e.substring(1)),e=document.getElementById(e)):e instanceof n.default.Element&&(e=e.elt),e instanceof HTMLElement&&this.elt.appendChild(e),this)},n.default.Element.prototype.center=function(e){var t=this.elt.style.display,r="none"===this.elt.style.display,i="none"===this.parent().style.display,n={x:this.elt.offsetLeft,y:this.elt.offsetTop};r&&this.show(),i&&this.parent().show(),this.elt.style.display="block",this.position(0,0);var o=Math.abs(this.parent().offsetWidth-this.elt.offsetWidth),a=Math.abs(this.parent().offsetHeight-this.elt.offsetHeight);return"both"===e||void 0===e?this.position(o/2+this.parent().offsetLeft,a/2+this.parent().offsetTop):"horizontal"===e?this.position(o/2+this.parent().offsetLeft,n.y):"vertical"===e&&this.position(n.x,a/2+this.parent().offsetTop),this.style("display",t),r&&this.hide(),i&&this.parent().hide(),this},n.default.Element.prototype.html=function(){return 0===arguments.length?this.elt.innerHTML:(arguments[1]?this.elt.insertAdjacentHTML("beforeend",arguments[0]):this.elt.innerHTML=arguments[0],this)},n.default.Element.prototype.position=function(){if(0===arguments.length)return{x:this.elt.offsetLeft,y:this.elt.offsetTop};var e="absolute";return"static"!==arguments[2]&&"fixed"!==arguments[2]&&"relative"!==arguments[2]&&"sticky"!==arguments[2]&&"initial"!==arguments[2]&&"inherit"!==arguments[2]||(e=arguments[2]),this.elt.style.position=e,this.elt.style.left=arguments[0]+"px",this.elt.style.top=arguments[1]+"px",this.x=arguments[0],this.y=arguments[1],this},n.default.Element.prototype._translate=function(){this.elt.style.position="absolute";var e="";return this.elt.style.transform&&(e=(e=this.elt.style.transform.replace(/translate3d\(.*\)/g,"")).replace(/translate[X-Z]?\(.*\)/g,"")),2===arguments.length?this.elt.style.transform="translate("+arguments[0]+"px, "+arguments[1]+"px)":2<arguments.length&&(this.elt.style.transform="translate3d("+arguments[0]+"px,"+arguments[1]+"px,"+arguments[2]+"px)",this.elt.parentElement.style.perspective=3===arguments.length?"1000px":arguments[3]+"px"),this.elt.style.transform+=e,this},n.default.Element.prototype._rotate=function(){var e="";return this.elt.style.transform&&(e=(e=this.elt.style.transform.replace(/rotate3d\(.*\)/g,"")).replace(/rotate[X-Z]?\(.*\)/g,"")),1===arguments.length?this.elt.style.transform="rotate("+arguments[0]+"deg)":2===arguments.length?this.elt.style.transform="rotate("+arguments[0]+"deg, "+arguments[1]+"deg)":3===arguments.length&&(this.elt.style.transform="rotateX("+arguments[0]+"deg)",this.elt.style.transform+="rotateY("+arguments[1]+"deg)",this.elt.style.transform+="rotateZ("+arguments[2]+"deg)"),this.elt.style.transform+=e,this},n.default.Element.prototype.style=function(e,t){if(t instanceof n.default.Color&&(t="rgba("+t.levels[0]+","+t.levels[1]+","+t.levels[2]+","+t.levels[3]/255+")"),void 0===t){if(-1===e.indexOf(":"))return window.getComputedStyle(this.elt).getPropertyValue(e);for(var r=e.split(";"),i=0;i<r.length;i++){var o=r[i].split(":");o[0]&&o[1]&&(this.elt.style[o[0].trim()]=o[1].trim())}}else if(this.elt.style[e]=t,"width"===e||"height"===e||"left"===e||"top"===e){var a=window.getComputedStyle(this.elt).getPropertyValue(e).replace(/\D+/g,"");this[e]=parseInt(a,10)}return this},n.default.Element.prototype.attribute=function(e,t){if(null==this.elt.firstChild||"checkbox"!==this.elt.firstChild.type&&"radio"!==this.elt.firstChild.type)return void 0===t?this.elt.getAttribute(e):(this.elt.setAttribute(e,t),this);if(void 0===t)return this.elt.firstChild.getAttribute(e);for(var r=0;r<this.elt.childNodes.length;r++)this.elt.childNodes[r].setAttribute(e,t)},n.default.Element.prototype.removeAttribute=function(e){if(null!=this.elt.firstChild&&("checkbox"===this.elt.firstChild.type||"radio"===this.elt.firstChild.type))for(var t=0;t<this.elt.childNodes.length;t++)this.elt.childNodes[t].removeAttribute(e);return this.elt.removeAttribute(e),this},n.default.Element.prototype.value=function(){return 0<arguments.length?(this.elt.value=arguments[0],this):"range"===this.elt.type?parseFloat(this.elt.value):this.elt.value},n.default.Element.prototype.show=function(){return this.elt.style.display="block",this},n.default.Element.prototype.hide=function(){return this.elt.style.display="none",this},n.default.Element.prototype.size=function(e,t){if(0===arguments.length)return{width:this.elt.offsetWidth,height:this.elt.offsetHeight};var r=e,i=t,o=n.default.prototype.AUTO;if(r!==o||i!==o){if(r===o?r=t*this.width/this.height:i===o&&(i=e*this.height/this.width),this.elt instanceof HTMLCanvasElement){var a,s={},l=this.elt.getContext("2d");for(a in l)s[a]=l[a];for(a in this.elt.setAttribute("width",r*this._pInst._pixelDensity),this.elt.setAttribute("height",i*this._pInst._pixelDensity),this.elt.style.width=r+"px",this.elt.style.height=i+"px",this._pInst.scale(this._pInst._pixelDensity,this._pInst._pixelDensity),s)this.elt.getContext("2d")[a]=s[a]}else this.elt.style.width=r+"px",this.elt.style.height=i+"px",this.elt.width=r,this.elt.height=i;this.width=this.elt.offsetWidth,this.height=this.elt.offsetHeight,this._pInst&&this._pInst._curElement&&this._pInst._curElement.elt===this.elt&&(this._pInst._setProperty("width",this.elt.offsetWidth),this._pInst._setProperty("height",this.elt.offsetHeight))}return this},n.default.Element.prototype.remove=function(){if(this instanceof n.default.MediaElement){this.stop();var e=this.elt.srcObject;null!==e&&e.getTracks().forEach((function(e){e.stop()}))}var t=this._pInst._elements.indexOf(this);for(var r in-1!==t&&this._pInst._elements.splice(t,1),this._events)this.elt.removeEventListener(r,this._events[r]);this.elt&&this.elt.parentNode&&this.elt.parentNode.removeChild(this.elt)},n.default.Element.prototype.drop=function(e,t){if(window.File&&window.FileReader&&window.FileList&&window.Blob){if(!this._dragDisabled){this._dragDisabled=!0;var r=function(e){e.preventDefault()};this.elt.addEventListener("dragover",r),this.elt.addEventListener("dragleave",r)}n.default.Element._attachListener("drop",(function(r){r.preventDefault(),"function"==typeof t&&t.call(this,r);for(var i=r.dataTransfer.files,o=0;o<i.length;o++){var a=i[o];n.default.File._load(a,e)}}),this)}else console.log("The File APIs are not fully supported in this browser.");return this},n.default.MediaElement=function(e,t){n.default.Element.call(this,e,t);var r=this;this.elt.crossOrigin="anonymous",this._prevTime=0,this._cueIDCounter=0,this._cues=[],(this._pixelsState=this)._pixelDensity=1,this._modified=!1,Object.defineProperty(r,"src",{get:function(){var e=r.elt.children[0].src,t=r.elt.src===window.location.href?"":r.elt.src;return e===window.location.href?t:e},set:function(t){for(var i=0;i<r.elt.children.length;i++)r.elt.removeChild(r.elt.children[i]);var n=document.createElement("source");n.src=t,e.appendChild(n),r.elt.src=t,r.modified=!0}}),r._onended=function(){},r.elt.onended=function(){r._onended(r)}},n.default.MediaElement.prototype=Object.create(n.default.Element.prototype),n.default.MediaElement.prototype.play=function(){var e,t=this;return this.elt.currentTime===this.elt.duration&&(this.elt.currentTime=0),1<this.elt.readyState||this.elt.load(),(e=this.elt.play())&&e.catch&&e.catch((function(e){"NotAllowedError"===e.name?n.default._friendlyAutoplayError(t.src):console.error("Media play method encountered an unexpected error",e)})),this},n.default.MediaElement.prototype.stop=function(){return this.elt.pause(),this.elt.currentTime=0,this},n.default.MediaElement.prototype.pause=function(){return this.elt.pause(),this},n.default.MediaElement.prototype.loop=function(){return this.elt.setAttribute("loop",!0),this.play(),this},n.default.MediaElement.prototype.noLoop=function(){return this.elt.removeAttribute("loop"),this},n.default.MediaElement.prototype._setupAutoplayFailDetection=function(){var e=this,t=setTimeout((function(){return n.default._friendlyAutoplayError(e.src)}),500);this.elt.addEventListener("play",(function(){return clearTimeout(t)}),{passive:!0,once:!0})},n.default.MediaElement.prototype.autoplay=function(e){var t=this,r=this.elt.getAttribute("autoplay");if(this.elt.setAttribute("autoplay",e),e&&!r){var i=function(){return t._setupAutoplayFailDetection()};4===this.elt.readyState?i():this.elt.addEventListener("canplay",i,{passive:!0,once:!0})}return this},n.default.MediaElement.prototype.volume=function(e){if(void 0===e)return this.elt.volume;this.elt.volume=e},n.default.MediaElement.prototype.speed=function(e){if(void 0===e)return this.presetPlaybackRate||this.elt.playbackRate;this.loadedmetadata?this.elt.playbackRate=e:this.presetPlaybackRate=e},n.default.MediaElement.prototype.time=function(e){return void 0===e?this.elt.currentTime:(this.elt.currentTime=e,this)},n.default.MediaElement.prototype.duration=function(){return this.elt.duration},n.default.MediaElement.prototype.pixels=[],n.default.MediaElement.prototype._ensureCanvas=function(){this.canvas||(this.canvas=document.createElement("canvas"),this.drawingContext=this.canvas.getContext("2d"),this.setModified(!0)),this.loadedmetadata&&(this.canvas.width!==this.elt.width&&(this.canvas.width=this.elt.width,this.canvas.height=this.elt.height,this.width=this.canvas.width,this.height=this.canvas.height),this.drawingContext.drawImage(this.elt,0,0,this.canvas.width,this.canvas.height),this.setModified(!0))},n.default.MediaElement.prototype.loadPixels=function(){return this._ensureCanvas(),n.default.Renderer2D.prototype.loadPixels.apply(this,arguments)},n.default.MediaElement.prototype.updatePixels=function(e,t,r,i){return this.loadedmetadata&&(this._ensureCanvas(),n.default.Renderer2D.prototype.updatePixels.call(this,e,t,r,i)),this.setModified(!0),this},n.default.MediaElement.prototype.get=function(){return this._ensureCanvas(),n.default.Renderer2D.prototype.get.apply(this,arguments)},n.default.MediaElement.prototype._getPixel=function(){return this.loadPixels(),n.default.Renderer2D.prototype._getPixel.apply(this,arguments)},n.default.MediaElement.prototype.set=function(e,t,r){this.loadedmetadata&&(this._ensureCanvas(),n.default.Renderer2D.prototype.set.call(this,e,t,r),this.setModified(!0))},n.default.MediaElement.prototype.copy=function(){this._ensureCanvas(),n.default.prototype.copy.apply(this,arguments)},n.default.MediaElement.prototype.mask=function(){this.loadPixels(),this.setModified(!0),n.default.Image.prototype.mask.apply(this,arguments)},n.default.MediaElement.prototype.isModified=function(){return this._modified},n.default.MediaElement.prototype.setModified=function(e){this._modified=e},n.default.MediaElement.prototype.onended=function(e){return this._onended=e,this},n.default.MediaElement.prototype.connect=function(e){var t,r;if("function"==typeof n.default.prototype.getAudioContext)t=n.default.prototype.getAudioContext(),r=n.default.soundOut.input;else try{r=(t=e.context).destination}catch(e){throw"connect() is meant to be used with Web Audio API or p5.sound.js"}this.audioSourceNode||(this.audioSourceNode=t.createMediaElementSource(this.elt),this.audioSourceNode.connect(r)),e?e.input?this.audioSourceNode.connect(e.input):this.audioSourceNode.connect(e):this.audioSourceNode.connect(r)},n.default.MediaElement.prototype.disconnect=function(){if(!this.audioSourceNode)throw"nothing to disconnect";this.audioSourceNode.disconnect()},n.default.MediaElement.prototype.showControls=function(){this.elt.style["text-align"]="inherit",this.elt.controls=!0},n.default.MediaElement.prototype.hideControls=function(){this.elt.controls=!1},n.default.MediaElement.prototype.addCue=function(e,t,r){var i=this._cueIDCounter++,n=new l(t,e,i,r);return this._cues.push(n),this.elt.ontimeupdate||(this.elt.ontimeupdate=this._onTimeUpdate.bind(this)),i},n.default.MediaElement.prototype.removeCue=function(e){for(var t=0;t<this._cues.length;t++)this._cues[t].id===e&&(console.log(e),this._cues.splice(t,1));0===this._cues.length&&(this.elt.ontimeupdate=null)},n.default.MediaElement.prototype.clearCues=function(){this._cues=[],this.elt.ontimeupdate=null},n.default.MediaElement.prototype._onTimeUpdate=function(){for(var e=this.time(),t=0;t<this._cues.length;t++){var r=this._cues[t].time,i=this._cues[t].val;this._prevTime<r&&r<=e&&this._cues[t].callback(i)}this._prevTime=e},n.default.File=function(e,t){this.file=e,this._pInst=t;var r=e.type.split("/");this.type=r[0],this.subtype=r[1],this.name=e.name,this.size=e.size,this.data=void 0},n.default.File._createLoader=function(e,t){var r=new FileReader;return r.onload=function(r){var i=new n.default.File(e);if("application/json"===i.file.type)i.data=JSON.parse(r.target.result);else if("text/xml"===i.file.type){var o=(new DOMParser).parseFromString(r.target.result,"text/xml");i.data=new n.default.XML(o.documentElement)}else i.data=r.target.result;t(i)},r},n.default.File._load=function(e,t){if(/^text\//.test(e.type)||"application/json"===e.type)n.default.File._createLoader(e,t).readAsText(e);else if(/^(video|audio)\//.test(e.type)){var r=new n.default.File(e);r.data=URL.createObjectURL(e),t(r)}else n.default.File._createLoader(e,t).readAsDataURL(e)};var u=n.default;r.default=u},{"../core/main":36}],53:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.prototype.deviceOrientation=1<window.innerWidth/window.innerHeight?"landscape":"portrait",o.default.prototype.accelerationX=0,o.default.prototype.accelerationY=0,o.default.prototype.accelerationZ=0,o.default.prototype.pAccelerationX=0,o.default.prototype.pAccelerationY=0,o.default.prototype.pAccelerationZ=0,o.default.prototype._updatePAccelerations=function(){this._setProperty("pAccelerationX",this.accelerationX),this._setProperty("pAccelerationY",this.accelerationY),this._setProperty("pAccelerationZ",this.accelerationZ)},o.default.prototype.rotationX=0,o.default.prototype.rotationY=0,o.default.prototype.rotationZ=0,o.default.prototype.pRotationX=0,o.default.prototype.pRotationY=0;var l=o.default.prototype.pRotationZ=0,u=0,h=0,c="clockwise",d="clockwise",f="clockwise";o.default.prototype.pRotateDirectionX=void 0,o.default.prototype.pRotateDirectionY=void 0,o.default.prototype.pRotateDirectionZ=void 0,o.default.prototype._updatePRotations=function(){this._setProperty("pRotationX",this.rotationX),this._setProperty("pRotationY",this.rotationY),this._setProperty("pRotationZ",this.rotationZ)},o.default.prototype.turnAxis=void 0;var p=.5,m=30;o.default.prototype.setMoveThreshold=function(e){o.default._validateParameters("setMoveThreshold",arguments),p=e},o.default.prototype.setShakeThreshold=function(e){o.default._validateParameters("setShakeThreshold",arguments),m=e},o.default.prototype._ondeviceorientation=function(e){this._updatePRotations(),this._angleMode===a.radians&&(e.beta=e.beta*(_PI/180),e.gamma=e.gamma*(_PI/180),e.alpha=e.alpha*(_PI/180)),this._setProperty("rotationX",e.beta),this._setProperty("rotationY",e.gamma),this._setProperty("rotationZ",e.alpha),this._handleMotion()},o.default.prototype._ondevicemotion=function(e){this._updatePAccelerations(),this._setProperty("accelerationX",2*e.acceleration.x),this._setProperty("accelerationY",2*e.acceleration.y),this._setProperty("accelerationZ",2*e.acceleration.z),this._handleMotion()},o.default.prototype._handleMotion=function(){90===window.orientation||-90===window.orientation?this._setProperty("deviceOrientation","landscape"):0===window.orientation?this._setProperty("deviceOrientation","portrait"):void 0===window.orientation&&this._setProperty("deviceOrientation","undefined");var e,t,r=this._isGlobal?window:this;if("function"==typeof r.deviceMoved&&(Math.abs(this.accelerationX-this.pAccelerationX)>p||Math.abs(this.accelerationY-this.pAccelerationY)>p||Math.abs(this.accelerationZ-this.pAccelerationZ)>p)&&r.deviceMoved(),"function"==typeof r.deviceTurned){var i=this.rotationX+180,n=this.pRotationX+180,o=l+180;0<i-n&&i-n<270||i-n<-270?c="clockwise":(i-n<0||270<i-n)&&(c="counter-clockwise"),c!==this.pRotateDirectionX&&(o=i),90<Math.abs(i-o)&&Math.abs(i-o)<270&&(o=i,this._setProperty("turnAxis","X"),r.deviceTurned()),this.pRotateDirectionX=c,l=o-180;var a=this.rotationY+180,s=this.pRotationY+180,y=u+180;0<a-s&&a-s<270||a-s<-270?d="clockwise":(a-s<0||270<a-this.pRotationY)&&(d="counter-clockwise"),d!==this.pRotateDirectionY&&(y=a),90<Math.abs(a-y)&&Math.abs(a-y)<270&&(y=a,this._setProperty("turnAxis","Y"),r.deviceTurned()),this.pRotateDirectionY=d,u=y-180,0<this.rotationZ-this.pRotationZ&&this.rotationZ-this.pRotationZ<270||this.rotationZ-this.pRotationZ<-270?f="clockwise":(this.rotationZ-this.pRotationZ<0||270<this.rotationZ-this.pRotationZ)&&(f="counter-clockwise"),f!==this.pRotateDirectionZ&&(h=this.rotationZ),90<Math.abs(this.rotationZ-h)&&Math.abs(this.rotationZ-h)<270&&(h=this.rotationZ,this._setProperty("turnAxis","Z"),r.deviceTurned()),this.pRotateDirectionZ=f,this._setProperty("turnAxis",void 0)}"function"==typeof r.deviceShaken&&(null!==this.pAccelerationX&&(e=Math.abs(this.accelerationX-this.pAccelerationX),t=Math.abs(this.accelerationY-this.pAccelerationY)),m<e+t&&r.deviceShaken())};var y=o.default;r.default=y},{"../core/constants":26,"../core/main":36}],54:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.isKeyPressed=!1,n.default.prototype.keyIsPressed=!1,n.default.prototype.key="",n.default.prototype.keyCode=0,n.default.prototype._onkeydown=function(e){if(!this._downKeys[e.which]){this._setProperty("isKeyPressed",!0),this._setProperty("keyIsPressed",!0),this._setProperty("keyCode",e.which),this._downKeys[e.which]=!0,this._setProperty("key",e.key||String.fromCharCode(e.which)||e.which);var t=this._isGlobal?window:this;"function"!=typeof t.keyPressed||e.charCode||!1===t.keyPressed(e)&&e.preventDefault()}},n.default.prototype._onkeyup=function(e){this._downKeys[e.which]=!1,this._areDownKeys()||(this._setProperty("isKeyPressed",!1),this._setProperty("keyIsPressed",!1)),this._setProperty("_lastKeyCodeTyped",null),this._setProperty("key",e.key||String.fromCharCode(e.which)||e.which),this._setProperty("keyCode",e.which);var t=this._isGlobal?window:this;"function"==typeof t.keyReleased&&!1===t.keyReleased(e)&&e.preventDefault()},n.default.prototype._onkeypress=function(e){if(e.which!==this._lastKeyCodeTyped){this._setProperty("_lastKeyCodeTyped",e.which),this._setProperty("key",e.key||String.fromCharCode(e.which)||e.which);var t=this._isGlobal?window:this;"function"==typeof t.keyTyped&&!1===t.keyTyped(e)&&e.preventDefault()}},n.default.prototype._onblur=function(e){this._downKeys={}},n.default.prototype.keyIsDown=function(e){return n.default._validateParameters("keyIsDown",arguments),this._downKeys[e]||!1},n.default.prototype._areDownKeys=function(){for(var e in this._downKeys)if(this._downKeys.hasOwnProperty(e)&&!0===this._downKeys[e])return!0;return!1};var o=n.default;r.default=o},{"../core/main":36}],55:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.prototype.movedX=0,o.default.prototype.movedY=0,o.default.prototype._hasMouseInteracted=!1,o.default.prototype.mouseX=0,o.default.prototype.mouseY=0,o.default.prototype.pmouseX=0,o.default.prototype.pmouseY=0,o.default.prototype.winMouseX=0,o.default.prototype.winMouseY=0,o.default.prototype.pwinMouseX=0,o.default.prototype.pwinMouseY=0,o.default.prototype.mouseButton=0,o.default.prototype.mouseIsPressed=!1,o.default.prototype._updateNextMouseCoords=function(e){if(null!==this._curElement&&(!e.touches||0<e.touches.length)){var t=function(e,t,r,i){i&&!i.clientX&&(i.touches?i=i.touches[0]:i.changedTouches&&(i=i.changedTouches[0]));var n=e.getBoundingClientRect(),o=e.scrollWidth/t||1,a=e.scrollHeight/r||1;return{x:(i.clientX-n.left)/o,y:(i.clientY-n.top)/a,winX:i.clientX,winY:i.clientY,id:i.identifier}}(this._curElement.elt,this.width,this.height,e);this._setProperty("movedX",e.movementX),this._setProperty("movedY",e.movementY),this._setProperty("mouseX",t.x),this._setProperty("mouseY",t.y),this._setProperty("winMouseX",t.winX),this._setProperty("winMouseY",t.winY)}this._hasMouseInteracted||(this._updateMouseCoords(),this._setProperty("_hasMouseInteracted",!0))},o.default.prototype._updateMouseCoords=function(){this._setProperty("pmouseX",this.mouseX),this._setProperty("pmouseY",this.mouseY),this._setProperty("pwinMouseX",this.winMouseX),this._setProperty("pwinMouseY",this.winMouseY),this._setProperty("_pmouseWheelDeltaY",this._mouseWheelDeltaY)},o.default.prototype._setMouseButton=function(e){1===e.button?this._setProperty("mouseButton",a.CENTER):2===e.button?this._setProperty("mouseButton",a.RIGHT):this._setProperty("mouseButton",a.LEFT)},o.default.prototype._onmousemove=function(e){var t=this._isGlobal?window:this;this._updateNextMouseCoords(e),this.mouseIsPressed?"function"==typeof t.mouseDragged?!1===t.mouseDragged(e)&&e.preventDefault():"function"==typeof t.touchMoved&&!1===t.touchMoved(e)&&e.preventDefault():"function"==typeof t.mouseMoved&&!1===t.mouseMoved(e)&&e.preventDefault()},o.default.prototype._onmousedown=function(e){var t=this._isGlobal?window:this;this._setProperty("mouseIsPressed",!0),this._setMouseButton(e),this._updateNextMouseCoords(e),"function"==typeof t.mousePressed?!1===t.mousePressed(e)&&e.preventDefault():navigator.userAgent.toLowerCase().includes("safari")&&"function"==typeof t.touchStarted&&!1===t.touchStarted(e)&&e.preventDefault()},o.default.prototype._onmouseup=function(e){var t=this._isGlobal?window:this;this._setProperty("mouseIsPressed",!1),"function"==typeof t.mouseReleased?!1===t.mouseReleased(e)&&e.preventDefault():"function"==typeof t.touchEnded&&!1===t.touchEnded(e)&&e.preventDefault()},o.default.prototype._ondragend=o.default.prototype._onmouseup,o.default.prototype._ondragover=o.default.prototype._onmousemove,o.default.prototype._onclick=function(e){var t=this._isGlobal?window:this;"function"==typeof t.mouseClicked&&!1===t.mouseClicked(e)&&e.preventDefault()},o.default.prototype._ondblclick=function(e){var t=this._isGlobal?window:this;"function"==typeof t.doubleClicked&&!1===t.doubleClicked(e)&&e.preventDefault()},o.default.prototype._mouseWheelDeltaY=0,o.default.prototype._pmouseWheelDeltaY=0,o.default.prototype._onwheel=function(e){var t=this._isGlobal?window:this;this._setProperty("_mouseWheelDeltaY",e.deltaY),"function"==typeof t.mouseWheel&&(e.delta=e.deltaY,!1===t.mouseWheel(e)&&e.preventDefault())},o.default.prototype.requestPointerLock=function(){var e=this._curElement.elt;return e.requestPointerLock=e.requestPointerLock||e.mozRequestPointerLock,e.requestPointerLock?(e.requestPointerLock(),!0):(console.log("requestPointerLock is not implemented in this browser"),!1)},o.default.prototype.exitPointerLock=function(){document.exitPointerLock()};var l=o.default;r.default=l},{"../core/constants":26,"../core/main":36}],56:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e,t,r,i,n){var o=4<arguments.length&&void 0!==n?n:0,a=e.getBoundingClientRect(),s=e.scrollWidth/t||1,l=e.scrollHeight/r||1,u=i.touches[o]||i.changedTouches[o];return{x:(u.clientX-a.left)/s,y:(u.clientY-a.top)/l,winX:u.clientX,winY:u.clientY,id:u.identifier}}n.default.prototype.touches=[],n.default.prototype._updateTouchCoords=function(e){if(null!==this._curElement){for(var t=[],r=0;r<e.touches.length;r++)t[r]=o(this._curElement.elt,this.width,this.height,e,r);this._setProperty("touches",t)}},n.default.prototype._ontouchstart=function(e){var t=this._isGlobal?window:this;this._setProperty("mouseIsPressed",!0),this._updateTouchCoords(e),this._updateNextMouseCoords(e),this._updateMouseCoords(),"function"==typeof t.touchStarted?!1===t.touchStarted(e)&&e.preventDefault():navigator.userAgent.toLowerCase().includes("safari")&&"function"==typeof t.mousePressed&&!1===t.mousePressed(e)&&e.preventDefault()},n.default.prototype._ontouchmove=function(e){var t=this._isGlobal?window:this;this._updateTouchCoords(e),this._updateNextMouseCoords(e),"function"==typeof t.touchMoved?!1===t.touchMoved(e)&&e.preventDefault():"function"==typeof t.mouseDragged&&!1===t.mouseDragged(e)&&e.preventDefault()},n.default.prototype._ontouchend=function(e){this._setProperty("mouseIsPressed",!1),this._updateTouchCoords(e),this._updateNextMouseCoords(e);var t=this._isGlobal?window:this;"function"==typeof t.touchEnded?!1===t.touchEnded(e)&&e.preventDefault():"function"==typeof t.mouseReleased&&!1===t.mouseReleased(e)&&e.preventDefault()};var a=n.default;r.default=a},{"../core/main":36}],57:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n,o,a,s={};s._toPixels=function(e){return e instanceof ImageData?e.data:e.getContext("2d").getImageData(0,0,e.width,e.height).data},s._getARGB=function(e,t){var r=4*t;return e[3+r]<<24&4278190080|e[r]<<16&16711680|e[1+r]<<8&65280|255&e[2+r]},s._setPixels=function(e,t){for(var r=0,i=0,n=e.length;i<n;i++)e[0+(r=4*i)]=(16711680&t[i])>>>16,e[r+1]=(65280&t[i])>>>8,e[r+2]=255&t[i],e[r+3]=(4278190080&t[i])>>>24},s._toImageData=function(e){return e instanceof ImageData?e:e.getContext("2d").getImageData(0,0,e.width,e.height)},s._createImageData=function(e,t){return s._tmpCanvas=document.createElement("canvas"),s._tmpCtx=s._tmpCanvas.getContext("2d"),this._tmpCtx.createImageData(e,t)},s.apply=function(e,t,r){var i=e.getContext("2d"),n=i.getImageData(0,0,e.width,e.height),o=t(n,r);o instanceof ImageData?i.putImageData(o,0,0,0,0,e.width,e.height):i.putImageData(n,0,0,0,0,e.width,e.height)},s.threshold=function(e,t){var r=s._toPixels(e);void 0===t&&(t=.5);for(var i=Math.floor(255*t),n=0;n<r.length;n+=4){var o;o=i<=.2126*r[n]+.7152*r[n+1]+.0722*r[n+2]?255:0,r[n]=r[n+1]=r[n+2]=o}},s.gray=function(e){for(var t=s._toPixels(e),r=0;r<t.length;r+=4){var i=.2126*t[r]+.7152*t[r+1]+.0722*t[r+2];t[r]=t[r+1]=t[r+2]=i}},s.opaque=function(e){for(var t=s._toPixels(e),r=0;r<t.length;r+=4)t[r+3]=255;return t},s.invert=function(e){for(var t=s._toPixels(e),r=0;r<t.length;r+=4)t[r]=255-t[r],t[r+1]=255-t[r+1],t[r+2]=255-t[r+2]},s.posterize=function(e,t){var r=s._toPixels(e);if(t<2||255<t)throw new Error("Level must be greater than 2 and less than 255 for posterize");for(var i=t-1,n=0;n<r.length;n+=4){var o=r[n],a=r[n+1],l=r[n+2];r[n]=255*(o*t>>8)/i,r[n+1]=255*(a*t>>8)/i,r[n+2]=255*(l*t>>8)/i}},s.dilate=function(e){for(var t,r,i,n,o,a,l,u,h,c,d,f,p,m,y,v,g,b=s._toPixels(e),_=0,x=b.length?b.length/4:0,w=new Int32Array(x);_<x;)for(r=(t=_)+e.width;_<r;)i=n=s._getARGB(b,_),(l=_-1)<t&&(l=_),r<=(a=_+1)&&(a=_),(u=_-e.width)<0&&(u=0),x<=(h=_+e.width)&&(h=_),f=s._getARGB(b,u),d=s._getARGB(b,l),p=s._getARGB(b,h),(o=77*(i>>16&255)+151*(i>>8&255)+28*(255&i))<(y=77*(d>>16&255)+151*(d>>8&255)+28*(255&d))&&(n=d,o=y),o<(m=77*((c=s._getARGB(b,a))>>16&255)+151*(c>>8&255)+28*(255&c))&&(n=c,o=m),o<(v=77*(f>>16&255)+151*(f>>8&255)+28*(255&f))&&(n=f,o=v),o<(g=77*(p>>16&255)+151*(p>>8&255)+28*(255&p))&&(n=p,o=g),w[_++]=n;s._setPixels(b,w)},s.erode=function(e){for(var t,r,i,n,o,a,l,u,h,c,d,f,p,m,y,v,g,b=s._toPixels(e),_=0,x=b.length?b.length/4:0,w=new Int32Array(x);_<x;)for(r=(t=_)+e.width;_<r;)i=n=s._getARGB(b,_),(l=_-1)<t&&(l=_),r<=(a=_+1)&&(a=_),(u=_-e.width)<0&&(u=0),x<=(h=_+e.width)&&(h=_),f=s._getARGB(b,u),d=s._getARGB(b,l),p=s._getARGB(b,h),(y=77*(d>>16&255)+151*(d>>8&255)+28*(255&d))<(o=77*(i>>16&255)+151*(i>>8&255)+28*(255&i))&&(n=d,o=y),(m=77*((c=s._getARGB(b,a))>>16&255)+151*(c>>8&255)+28*(255&c))<o&&(n=c,o=m),(v=77*(f>>16&255)+151*(f>>8&255)+28*(255&f))<o&&(n=f,o=v),(g=77*(p>>16&255)+151*(p>>8&255)+28*(255&p))<o&&(n=p,o=g),w[_++]=n;s._setPixels(b,w)},s.blur=function(e,t){!function(e,t){for(var r,l,u,h,c,d,f,p,m,y,v=s._toPixels(e),g=e.width,b=e.height,_=g*b,x=new Int32Array(_),w=0;w<_;w++)x[w]=s._getARGB(v,w);var S,M,E,T,C=new Int32Array(_),O=new Int32Array(_),P=new Int32Array(_),L=new Int32Array(_),k=0;for(function(e){var t=3.5*e|0;if(i!==(t=t<1?1:t<248?t:248)){n=1+(i=t)<<1,o=new Int32Array(n),a=new Array(n);for(var r=0;r<n;r++)a[r]=new Int32Array(256);for(var s,l,u,h,c=1,d=t-1;c<t;c++){o[t+c]=o[d]=l=d*d,u=a[t+c],h=a[d--];for(var f=0;f<256;f++)u[f]=h[f]=l*f}s=o[t]=t*t,u=a[t];for(var p=0;p<256;p++)u[p]=s*p}}(t),M=0;M<b;M++){for(S=0;S<g;S++){if(h=u=l=c=r=0,(d=S-i)<0)y=-d,d=0;else{if(g<=d)break;y=0}for(E=y;E<n&&!(g<=d);E++){var A=x[d+k];c+=(T=a[E])[(-16777216&A)>>>24],l+=T[(16711680&A)>>16],u+=T[(65280&A)>>8],h+=T[255&A],r+=o[E],d++}C[f=k+S]=c/r,O[f]=l/r,P[f]=u/r,L[f]=h/r}k+=g}for(m=(p=-i)*g,M=k=0;M<b;M++){for(S=0;S<g;S++){if(h=u=l=c=r=0,p<0)y=f=-p,d=S;else{if(b<=p)break;y=0,f=p,d=S+m}for(E=y;E<n&&!(b<=f);E++)c+=(T=a[E])[C[d]],l+=T[O[d]],u+=T[P[d]],h+=T[L[d]],r+=o[E],f++,d+=g;x[S+k]=c/r<<24|l/r<<16|u/r<<8|h/r}k+=g,m+=g,p++}s._setPixels(v,x)}(e,t)};var l=s;r.default=l},{}],58:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=o(e("../core/main")),n=o(e("omggif"));function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}i.default.prototype.createImage=function(e,t){return i.default._validateParameters("createImage",arguments),new i.default.Image(e,t)},i.default.prototype.saveCanvas=function(){i.default._validateParameters("saveCanvas",arguments);var e,t,r,n,o=[].slice.call(arguments);switch(arguments[0]instanceof HTMLCanvasElement?(e=arguments[0],o.shift()):arguments[0]instanceof i.default.Element?(e=arguments[0].elt,o.shift()):e=this._curElement&&this._curElement.elt,1<=o.length&&(t=o[0]),2<=o.length&&(r=o[1]),r=r||i.default.prototype._checkFileExtension(t,r)[1]||"png"){default:n="image/png";break;case"jpeg":case"jpg":n="image/jpeg"}e.toBlob((function(e){i.default.prototype.downloadFile(e,t,r)}),n)},i.default.prototype.saveGif=function(e,t){var r=e.gifProperties,o=r.loopLimit;1===o?o=null:null===o&&(o=0);for(var s=new Uint8Array(e.width*e.height*r.numFrames),l=[],u={},h=0;h<r.numFrames;h++){for(var c=new Set,d=r.frames[h].image.data,f=d.length,p=new Uint32Array(e.width*e.height),m=0,y=0;m<f;m+=4,y++){var v=d[m+0]<<16|d[m+1]<<8|d[m+2]<<0;c.add(v),p[y]=v}var g=a(c).sort().toString();void 0===u[g]?u[g]={freq:1,frames:[h]}:(u[g].freq+=1,u[g].frames.push(h)),l.push(p)}var b=[],_=Object.keys(u).sort((function(e,t){return u[t].freq-u[e].freq})),x=_[0].split(",").map((function(e){return parseInt(e)}));b=b.concat(u[x].frames);for(var w=new Set(x),S=1;S<_.length;S++){var M=_[S].split(",").map((function(e){return parseInt(e)})).filter((function(e){return!w.has(e)}));if(x.length+M.length<=256){for(var E=0;E<M.length;E++)x.push(M[E]),w.add(M[E]);b=b.concat(u[_[S]].frames)}}b=new Set(b);for(var T={},C=0;C<x.length;C++)T[x[C]]||(T[x[C]]=C);for(var O=1;O<x.length;)O<<=1;x.length=O;for(var P={loop:o,palette:new Uint32Array(x)},L=new n.default.GifWriter(s,e.width,e.height,P),k={},A=function(t){for(var i=!b.has(t),n=i?[]:x,o=new Uint8Array(e.width*e.height),a={},s=new Set,u=0;u<l[t].length;u++){var h=l[t][u];i?(void 0===a[h]&&(a[h]=n.length,n.push(h)),o[u]=a[h]):o[u]=T[h],0<t&&l[t-1][u]!==h&&s.add(h)}var c={},d=n.filter((function(e){return!s.has(e)}));if(0<d.length){var f=d[0],p=i?a[f]:T[f];if(0<t){for(var m=0;m<l[t].length;m++)l[t-1][m]===l[t][m]&&(o[m]=p);c.transparent=p,k.frameOpts.disposal=1}}if(c.delay=r.frames[t].delay/10,i){for(var y=1;y<n.length;)y<<=1;n.length=y,c.palette=new Uint32Array(n)}0<t&&L.addFrame(0,0,e.width,e.height,k.pixelPaletteIndex,k.frameOpts),k={pixelPaletteIndex:o,frameOpts:c}},R=0;R<r.numFrames;R++)A(R);k.frameOpts.disposal=1,L.addFrame(0,0,e.width,e.height,k.pixelPaletteIndex,k.frameOpts);var D=new Blob([s.slice(0,L.end())],{type:"image/gif"});i.default.prototype.downloadFile(D,t,"gif")},i.default.prototype.saveFrames=function(e,t,r,n,o){i.default._validateParameters("saveFrames",arguments);var a=r||3;a=i.default.prototype.constrain(a,0,15),a*=1e3;var s=n||15;s=i.default.prototype.constrain(s,0,22);var l=0,u=i.default.prototype._makeFrame,h=this._curElement.elt,c=[],d=setInterval((function(){c.push(u(e+l,t,h)),l++}),1e3/s);setTimeout((function(){if(clearInterval(d),o)o(c);else{var e=!0,t=!1,r=void 0;try{for(var n,a=c[Symbol.iterator]();!(e=(n=a.next()).done);e=!0){var s=n.value;i.default.prototype.downloadFile(s.imageData,s.filename,s.ext)}}catch(e){t=!0,r=e}finally{try{e||null==a.return||a.return()}finally{if(t)throw r}}}c=[]}),a+.01)},i.default.prototype._makeFrame=function(e,t,r){var i,n;if(i=this?this._curElement.elt:r,t)switch(t.toLowerCase()){case"png":n="image/png";break;case"jpeg":case"jpg":n="image/jpeg";break;default:n="image/png"}else t="png",n="image/png";var o=i.toDataURL(n);o=o.replace(n,"image/octet-stream");var a={};return a.imageData=o,a.filename=e,a.ext=t,a};var s=i.default;r.default=s},{"../core/main":36,omggif:11}],59:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=h(e("../core/main")),o=h(e("./filters")),a=h(e("../core/helpers")),s=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants")),l=h(e("omggif"));function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function h(e){return e&&e.__esModule?e:{default:e}}function c(e,t){return 0<e&&e<t?e:t}e("../core/friendly_errors/validate_params"),e("../core/friendly_errors/file_errors"),e("../core/friendly_errors/fes_core"),n.default.prototype.loadImage=function(e,t,r){n.default._validateParameters("loadImage",arguments);var i=new n.default.Image(1,1,this),o=this,a=new Request(e,{method:"GET",mode:"cors"});return fetch(e,a).then((function(a){var s=a.headers.get("content-type");if(null===s&&console.warn("The image you loaded does not have a Content-Type header. If you are using the online editor consider reuploading the asset."),s&&s.includes("image/gif"))a.arrayBuffer().then((function(e){e&&function(e,t,r,i,o){var a=new l.default.GifReader(e);t.width=t.canvas.width=a.width,t.height=t.canvas.height=a.height;var s=[],u=a.numFrames(),h=new Uint8ClampedArray(t.width*t.height*4);if(1<u){for(var c=function(e,r){try{r.decodeAndBlitFrameRGBA(e,h)}catch(e){n.default._friendlyFileLoadError(8,t.src),"function"==typeof i?i(e):console.error(e)}},d=0;d<u;d++){var f=a.frameInfo(d);1===a.frameInfo(d).disposal&&0<d?t.drawingContext.putImageData(s[d-1].image,0,0):(t.drawingContext.clearRect(0,0,t.width,t.height),h=new Uint8ClampedArray(t.width*t.height*4)),c(d,a);var p=new ImageData(h,t.width,t.height);t.drawingContext.putImageData(p,0,0),s.push({image:t.drawingContext.getImageData(0,0,t.width,t.height),delay:10*f.delay})}var m=a.loopCount();null===m?m=1:0===m&&(m=null),t.drawingContext.putImageData(s[0].image,0,0),t.gifProperties={displayIndex:0,loopLimit:m,loopCount:0,frames:s,numFrames:u,playing:!0,timeDisplayed:0,lastChangeTime:0}}"function"==typeof r&&r(t),o()}(new Uint8Array(e),i,t,r,function(e){o._decrementPreload()}.bind(o))}),(function(e){"function"==typeof r?r(e):console.error(e)}));else{var u=new Image;u.onload=function(){i.width=i.canvas.width=u.width,i.height=i.canvas.height=u.height,i.drawingContext.drawImage(u,0,0),i.modified=!0,"function"==typeof t&&t(i),o._decrementPreload()},u.onerror=function(e){n.default._friendlyFileLoadError(0,u.src),"function"==typeof r?r(e):console.error(e)},0!==e.indexOf("data:image/")&&(u.crossOrigin="Anonymous"),u.src=e}i.modified=!0})),i},n.default.prototype.image=function(e,t,r,i,o,s,l,u,h){n.default._validateParameters("image",arguments);var d=e.width,f=e.height;e.elt&&e.elt.videoWidth&&!e.canvas&&(d=e.elt.videoWidth,f=e.elt.videoHeight);var p=t,m=r,y=i||d,v=o||f,g=s||0,b=l||0,_=u||d,x=h||f;_=c(_,d),x=c(x,f);var w=1;e.elt&&!e.canvas&&e.elt.style.width&&(w=e.elt.videoWidth&&!i?e.elt.videoWidth:e.elt.width,w/=parseInt(e.elt.style.width,10)),g*=w,b*=w,x*=w,_*=w;var S=a.default.modeAdjust(p,m,y,v,this._renderer._imageMode);this._renderer.image(e,g,b,_,x,S.x,S.y,S.w,S.h)},n.default.prototype.tint=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];n.default._validateParameters("tint",t);var i=this.color.apply(this,t);this._renderer._tint=i.levels},n.default.prototype.noTint=function(){this._renderer._tint=null},n.default.prototype._getTintedImageCanvas=function(e){if(!e.canvas)return e;var t=o.default._toPixels(e.canvas),r=document.createElement("canvas");r.width=e.canvas.width,r.height=e.canvas.height;for(var i=r.getContext("2d"),n=i.createImageData(e.canvas.width,e.canvas.height),a=n.data,s=0;s<t.length;s+=4){var l=t[s],u=t[s+1],h=t[s+2],c=t[s+3];a[s]=l*this._renderer._tint[0]/255,a[s+1]=u*this._renderer._tint[1]/255,a[s+2]=h*this._renderer._tint[2]/255,a[s+3]=c*this._renderer._tint[3]/255}return i.putImageData(n,0,0),r},n.default.prototype.imageMode=function(e){n.default._validateParameters("imageMode",arguments),e!==s.CORNER&&e!==s.CORNERS&&e!==s.CENTER||(this._renderer._imageMode=e)};var d=n.default;r.default=d},{"../core/constants":26,"../core/friendly_errors/fes_core":28,"../core/friendly_errors/file_errors":29,"../core/friendly_errors/validate_params":31,"../core/helpers":32,"../core/main":36,"./filters":57,omggif:11}],60:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=o(e("../core/main")),n=o(e("./filters"));function o(e){return e&&e.__esModule?e:{default:e}}i.default.Image=function(e,t){this.width=e,this.height=t,this.canvas=document.createElement("canvas"),this.canvas.width=this.width,this.canvas.height=this.height,this.drawingContext=this.canvas.getContext("2d"),(this._pixelsState=this)._pixelDensity=1,this.gifProperties=null,this._modified=!1,this.pixels=[]},i.default.Image.prototype._animateGif=function(e){var t=this.gifProperties,r=e._lastFrameTime+e.deltaTime;if(0===t.lastChangeTime&&(t.lastChangeTime=r),t.playing){t.timeDisplayed=r-t.lastChangeTime;var i=t.frames[t.displayIndex].delay;if(t.timeDisplayed>=i){var n=Math.floor(t.timeDisplayed/i);if(t.timeDisplayed=0,t.lastChangeTime=r,t.displayIndex+=n,t.loopCount=Math.floor(t.displayIndex/t.numFrames),null!==t.loopLimit&&t.loopCount>=t.loopLimit)t.playing=!1;else{var o=t.displayIndex%t.numFrames;this.drawingContext.putImageData(t.frames[o].image,0,0),t.displayIndex=o,this.setModified(!0)}}}},i.default.Image.prototype._setProperty=function(e,t){this[e]=t,this.setModified(!0)},i.default.Image.prototype.loadPixels=function(){i.default.Renderer2D.prototype.loadPixels.call(this),this.setModified(!0)},i.default.Image.prototype.updatePixels=function(e,t,r,n){i.default.Renderer2D.prototype.updatePixels.call(this,e,t,r,n),this.setModified(!0)},i.default.Image.prototype.get=function(e,t,r,n){return i.default._validateParameters("p5.Image.get",arguments),i.default.Renderer2D.prototype.get.apply(this,arguments)},i.default.Image.prototype._getPixel=i.default.Renderer2D.prototype._getPixel,i.default.Image.prototype.set=function(e,t,r){i.default.Renderer2D.prototype.set.call(this,e,t,r),this.setModified(!0)},i.default.Image.prototype.resize=function(e,t){0===e&&0===t?(e=this.canvas.width,t=this.canvas.height):0===e?e=this.canvas.width*t/this.canvas.height:0===t&&(t=this.canvas.height*e/this.canvas.width),e=Math.floor(e),t=Math.floor(t);var r=document.createElement("canvas");if(r.width=e,r.height=t,this.gifProperties)for(var i=this.gifProperties,n=function(e,t){for(var r=0,i=0;i<t.height;i++)for(var n=0;n<t.width;n++){var o=Math.floor(n*e.width/t.width),a=4*(Math.floor(i*e.height/t.height)*e.width+o);t.data[r++]=e.data[a++],t.data[r++]=e.data[a++],t.data[r++]=e.data[a++],t.data[r++]=e.data[a++]}},o=0;o<i.numFrames;o++){var a=this.drawingContext.createImageData(e,t);n(i.frames[o].image,a),i.frames[o].image=a}r.getContext("2d").drawImage(this.canvas,0,0,this.canvas.width,this.canvas.height,0,0,r.width,r.height),this.canvas.width=this.width=e,this.canvas.height=this.height=t,this.drawingContext.drawImage(r,0,0,e,t,0,0,e,t),0<this.pixels.length&&this.loadPixels(),this.setModified(!0)},i.default.Image.prototype.copy=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];i.default.prototype.copy.apply(this,t)},i.default.Image.prototype.mask=function(e){void 0===e&&(e=this);var t=this.drawingContext.globalCompositeOperation,r=1;e instanceof i.default.Renderer&&(r=e._pInst._pixelDensity);var n=[e,0,0,r*e.width,r*e.height,0,0,this.width,this.height];this.drawingContext.globalCompositeOperation="destination-in",i.default.Image.prototype.copy.apply(this,n),this.drawingContext.globalCompositeOperation=t,this.setModified(!0)},i.default.Image.prototype.filter=function(e,t){n.default.apply(this.canvas,n.default[e],t),this.setModified(!0)},i.default.Image.prototype.blend=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];i.default._validateParameters("p5.Image.blend",arguments),i.default.prototype.blend.apply(this,t),this.setModified(!0)},i.default.Image.prototype.setModified=function(e){this._modified=e},i.default.Image.prototype.isModified=function(){return this._modified},i.default.Image.prototype.save=function(e,t){this.gifProperties?i.default.prototype.saveGif(this,e):i.default.prototype.saveCanvas(this.canvas,e,t)},i.default.Image.prototype.reset=function(){if(this.gifProperties){var e=this.gifProperties;e.playing=!0,e.timeSinceStart=0,e.timeDisplayed=0,e.lastChangeTime=0,e.loopCount=0,e.displayIndex=0,this.drawingContext.putImageData(e.frames[0].image,0,0)}},i.default.Image.prototype.getCurrentFrame=function(){if(this.gifProperties){var e=this.gifProperties;return e.displayIndex%e.numFrames}},i.default.Image.prototype.setFrame=function(e){if(this.gifProperties){var t=this.gifProperties;e<t.numFrames&&0<=e?(t.timeDisplayed=0,t.lastChangeTime=0,t.displayIndex=e,this.drawingContext.putImageData(t.frames[e].image,0,0)):console.log("Cannot set GIF to a frame number that is higher than total number of frames or below zero.")}},i.default.Image.prototype.numFrames=function(){if(this.gifProperties)return this.gifProperties.numFrames},i.default.Image.prototype.play=function(){this.gifProperties&&(this.gifProperties.playing=!0)},i.default.Image.prototype.pause=function(){this.gifProperties&&(this.gifProperties.playing=!1)},i.default.Image.prototype.delay=function(e,t){if(this.gifProperties){var r=this.gifProperties;if(t<r.numFrames&&0<=t)r.frames[t].delay=e;else{var i=!0,n=!1,o=void 0;try{for(var a,s=r.frames[Symbol.iterator]();!(i=(a=s.next()).done);i=!0)a.value.delay=e}catch(e){n=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(n)throw o}}}}};var a=i.default.Image;r.default=a},{"../core/main":36,"./filters":57}],61:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=o(e("../core/main")),n=o(e("./filters"));function o(e){return e&&e.__esModule?e:{default:e}}e("../color/p5.Color"),i.default.prototype.pixels=[],i.default.prototype.blend=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n;i.default._validateParameters("blend",t),this._renderer?(n=this._renderer).blend.apply(n,t):i.default.Renderer2D.prototype.blend.apply(this,t)},i.default.prototype.copy=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,o,a,s,l,u,h,c,d;if(i.default._validateParameters("copy",t),9===t.length)n=t[0],o=t[1],a=t[2],s=t[3],l=t[4],u=t[5],h=t[6],c=t[7],d=t[8];else{if(8!==t.length)throw new Error("Signature not supported");n=this,o=t[0],a=t[1],s=t[2],l=t[3],u=t[4],h=t[5],c=t[6],d=t[7]}i.default.prototype._copyHelper(this,n,o,a,s,l,u,h,c,d)},i.default.prototype._copyHelper=function(e,t,r,n,o,a,s,l,u,h){t.loadPixels();var c=t.canvas.width/t.width,d=0,f=0;t._renderer&&t._renderer.isP3D&&(d=t.width/2,f=t.height/2),e._renderer&&e._renderer.isP3D?i.default.RendererGL.prototype.image.call(e._renderer,t,r+d,n+f,o,a,s,l,u,h):e.drawingContext.drawImage(t.canvas,c*(r+d),c*(n+f),c*o,c*a,s,l,u,h)},i.default.prototype.filter=function(e,t){i.default._validateParameters("filter",arguments),void 0!==this.canvas?n.default.apply(this.canvas,n.default[e],t):n.default.apply(this.elt,n.default[e],t)},i.default.prototype.get=function(e,t,r,n){var o;return i.default._validateParameters("get",arguments),(o=this._renderer).get.apply(o,arguments)},i.default.prototype.loadPixels=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];i.default._validateParameters("loadPixels",t),this._renderer.loadPixels()},i.default.prototype.set=function(e,t,r){this._renderer.set(e,t,r)},i.default.prototype.updatePixels=function(e,t,r,n){i.default._validateParameters("updatePixels",arguments),0!==this.pixels.length&&this._renderer.updatePixels(e,t,r,n)};var a=i.default;r.default=a},{"../color/p5.Color":24,"../core/main":36,"./filters":57}],62:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=a(e("../core/main"));e("whatwg-fetch"),e("es6-promise/auto");var n=a(e("fetch-jsonp")),o=a(e("file-saver"));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="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})(e)}function l(e,t){var r={};if(void 0===(t=t||[]))for(var i=0;i<e.length;i++)t[i.toString()]=i;for(var n=0;n<t.length;n++){var o=t[n],a=e[n];r[o]=a}return r}function u(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function h(e,t){t&&!0!==t&&"true"!==t||(t="");var r="";return(e=e||"untitled")&&e.includes(".")&&(r=e.split(".").pop()),t&&r!==t&&(r=t,e="".concat(e,".").concat(r)),[e,r]}e("../core/friendly_errors/validate_params"),e("../core/friendly_errors/file_errors"),e("../core/friendly_errors/fes_core"),i.default.prototype.loadJSON=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];i.default._validateParameters("loadJSON",t);for(var n,o,a,l=t[0],u={},h="json",c=1;c<t.length;c++){var d=t[c];"string"==typeof d?"jsonp"!==d&&"json"!==d||(h=d):"function"==typeof d?n?o=d:n=d:"object"===s(d)&&(d.hasOwnProperty("jsonpCallback")||d.hasOwnProperty("jsonpCallbackFunction"))&&(h="jsonp",a=d)}var f=this;return this.httpDo(l,"GET",a,h,(function(e){for(var t in e)u[t]=e[t];void 0!==n&&n(e),f._decrementPreload()}),(function(e){if(i.default._friendlyFileLoadError(5,l),!o)throw e;o(e)})),u},i.default.prototype.loadStrings=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];i.default._validateParameters("loadStrings",t);for(var n,o,a=[],s=1;s<t.length;s++){var l=t[s];"function"==typeof l&&(void 0===n?n=l:void 0===o&&(o=l))}var u=this;return i.default.prototype.httpDo.call(this,t[0],"GET","text",(function(e){for(var t=e.replace(/\r\n/g,"\r").replace(/\n/g,"\r").split(/\r/),r=0,i=t.length;r<i;r+=32768)Array.prototype.push.apply(a,t.slice(r,Math.min(r+32768,i)));void 0!==n&&n(a),u._decrementPreload()}),(function(e){if(i.default._friendlyFileLoadError(3,e),!o)throw e;o(e)})),a},i.default.prototype.loadTable=function(e){var t,r,n,o=[],a=!1,s=e.substring(e.lastIndexOf(".")+1,e.length);"csv"===s?n=",":"ssv"===s?n=";":"tsv"===s&&(n="\t");for(var u=1;u<arguments.length;u++)"function"==typeof arguments[u]?void 0===t?t=arguments[u]:void 0===r&&(r=arguments[u]):"string"==typeof arguments[u]&&(o.push(arguments[u]),"header"===arguments[u]&&(a=!0),"csv"===arguments[u]?n=",":"ssv"===arguments[u]?n=";":"tsv"===arguments[u]&&(n="\t"));var h=new i.default.Table,c=this;return this.httpDo(e,"GET","table",(function(e){for(var r,o,s={},u=[],d=0,f=null,p=function(){s.currentState=0,s.token=""},m=function(){f.push(s.token),p()},y=function(){s.currentState=4,u.push(f),f=null};;){if(null==(r=e[d++])){if(s.escaped)throw new Error("Unclosed quote in file.");if(f){m(),y();break}}if(null===f&&(s.escaped=!1,f=[],p()),0===s.currentState){if('"'===r){s.escaped=!0,s.currentState=1;continue}s.currentState=1}if(1===s.currentState&&s.escaped)if('"'===r)'"'===e[d]?(s.token+='"',d++):(s.escaped=!1,s.currentState=2);else{if("\r"===r)continue;s.token+=r}else"\r"===r?("\n"===e[d]&&d++,m(),y()):"\n"===r?(m(),y()):r===n?m():1===s.currentState&&(s.token+=r)}if(a)h.columns=u.shift();else for(var v=0;v<u[0].length;v++)h.columns[v]="null";for(var g=0;g<u.length;g++)(1!==u[g].length||"undefined"!==u[g][0]&&""!==u[g][0])&&((o=new i.default.TableRow).arr=u[g],o.obj=l(u[g],h.columns),h.addRow(o));"function"==typeof t&&t(h),c._decrementPreload()}),(function(t){i.default._friendlyFileLoadError(2,e),r?r(t):console.error(t)})),h},i.default.prototype.loadXML=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n,o,a=new i.default.XML,s=1;s<t.length;s++){var l=t[s];"function"==typeof l&&(void 0===n?n=l:void 0===o&&(o=l))}var u=this;return this.httpDo(t[0],"GET","xml",(function(e){for(var t in e)a[t]=e[t];void 0!==n&&n(a),u._decrementPreload()}),(function(e){if(i.default._friendlyFileLoadError(1,e),!o)throw e;o(e)})),a},i.default.prototype.loadBytes=function(e,t,r){var n={},o=this;return this.httpDo(e,"GET","arrayBuffer",(function(e){n.bytes=new Uint8Array(e),"function"==typeof t&&t(n),o._decrementPreload()}),(function(t){if(i.default._friendlyFileLoadError(6,e),!r)throw t;r(t)})),n},i.default.prototype.httpGet=function(){i.default._validateParameters("httpGet",arguments);var e=Array.prototype.slice.call(arguments);return e.splice(1,0,"GET"),i.default.prototype.httpDo.apply(this,e)},i.default.prototype.httpPost=function(){i.default._validateParameters("httpPost",arguments);var e=Array.prototype.slice.call(arguments);return e.splice(1,0,"POST"),i.default.prototype.httpDo.apply(this,e)},i.default.prototype.httpDo=function(){for(var e,t,r,o,a,l={},u=0,h="text/plain",c=arguments.length-1;0<c&&"function"==typeof(c<0||arguments.length<=c?void 0:arguments[c]);c--)u++;var d=arguments.length<=0?void 0:arguments[0];if(2==arguments.length-u&&"string"==typeof d&&"object"===s(arguments.length<=1?void 0:arguments[1]))o=new Request(d,arguments.length<=1?void 0:arguments[1]),t=arguments.length<=2?void 0:arguments[2],r=arguments.length<=3?void 0:arguments[3];else{for(var f,p="GET",m=1;m<arguments.length;m++){var y=m<0||arguments.length<=m?void 0:arguments[m];if("string"==typeof y)"GET"===y||"POST"===y||"PUT"===y||"DELETE"===y?p=y:"json"===y||"jsonp"===y||"binary"===y||"arrayBuffer"===y||"xml"===y||"text"===y||"table"===y?e=y:f=y;else if("number"==typeof y)f=y.toString();else if("object"===s(y))if(y.hasOwnProperty("jsonpCallback")||y.hasOwnProperty("jsonpCallbackFunction"))for(var v in y)l[v]=y[v];else h=y instanceof i.default.XML?(f=y.serialize(),"application/xml"):(f=JSON.stringify(y),"application/json");else"function"==typeof y&&(t?r=y:t=y)}var g="GET"===p?new Headers:new Headers({"Content-Type":h});o=new Request(d,{method:p,mode:"cors",body:f,headers:g})}return(a=(a="jsonp"===(e=e||(d.includes("json")?"json":d.includes("xml")?"xml":"text"))?(0,n.default)(d,l):fetch(o)).then((function(t){if(!t.ok){var r=new Error(t.body);throw r.status=t.status,r.ok=!1,r}var n=0;switch("jsonp"!==e&&(n=t.headers.get("content-length")),n&&64e6<n&&i.default._friendlyFileLoadError(7,d),e){case"json":case"jsonp":return t.json();case"binary":return t.blob();case"arrayBuffer":return t.arrayBuffer();case"xml":return t.text().then((function(e){var t=(new DOMParser).parseFromString(e,"text/xml");return new i.default.XML(t.documentElement)}));default:return t.text()}}))).then(t||function(){}),a.catch(r||console.error),a},window.URL=window.URL||window.webkitURL,i.default.prototype._pWriters=[],i.default.prototype.createWriter=function(e,t){var r;for(var n in i.default.prototype._pWriters)if(i.default.prototype._pWriters[n].name===e)return r=new i.default.PrintWriter(e+this.millis(),t),i.default.prototype._pWriters.push(r),r;return r=new i.default.PrintWriter(e,t),i.default.prototype._pWriters.push(r),r},i.default.PrintWriter=function(e,t){var r=this;this.name=e,this.content="",this.write=function(e){this.content+=e},this.print=function(e){this.content+="".concat(e,"\n")},this.clear=function(){this.content=""},this.close=function(){var n=[];for(var o in n.push(this.content),i.default.prototype.writeFile(n,e,t),i.default.prototype._pWriters)i.default.prototype._pWriters[o].name===this.name&&i.default.prototype._pWriters.splice(o,1);r.clear(),r={}}},i.default.prototype.save=function(e,t,r){var n=arguments,o=this._curElement?this._curElement.elt:this.elt;if(0!==n.length)if(n[0]instanceof i.default.Renderer||n[0]instanceof i.default.Graphics)i.default.prototype.saveCanvas(n[0].elt,n[1],n[2]);else if(1===n.length&&"string"==typeof n[0])i.default.prototype.saveCanvas(o,n[0]);else switch(h(n[1],n[2])[1]){case"json":return void i.default.prototype.saveJSON(n[0],n[1],n[2]);case"txt":return void i.default.prototype.saveStrings(n[0],n[1],n[2]);default:n[0]instanceof Array?i.default.prototype.saveStrings(n[0],n[1],n[2]):n[0]instanceof i.default.Table?i.default.prototype.saveTable(n[0],n[1],n[2]):n[0]instanceof i.default.Image?i.default.prototype.saveCanvas(n[0].canvas,n[1]):n[0]instanceof i.default.SoundFile&&i.default.prototype.saveSound(n[0],n[1],n[2],n[3])}else i.default.prototype.saveCanvas(o)},i.default.prototype.saveJSON=function(e,t,r){var n;i.default._validateParameters("saveJSON",arguments),n=r?JSON.stringify(e):JSON.stringify(e,void 0,2),this.saveStrings(n.split("\n"),t,"json")},i.default.prototype.saveJSONObject=i.default.prototype.saveJSON,i.default.prototype.saveJSONArray=i.default.prototype.saveJSON,i.default.prototype.saveStrings=function(e,t,r,n){i.default._validateParameters("saveStrings",arguments);for(var o=r||"txt",a=this.createWriter(t,o),s=0;s<e.length;s++)n?a.write(e[s]+"\r\n"):a.write(e[s]+"\n");a.close(),a.clear()},i.default.prototype.saveTable=function(e,t,r){var n;i.default._validateParameters("saveTable",arguments),n=void 0===r?t.substring(t.lastIndexOf(".")+1,t.length):r;var o=this.createWriter(t,n),a=e.columns,s=",";if("tsv"===n&&(s="\t"),"html"!==n){if("0"!==a[0]){for(var l=0;l<a.length;l++)l<a.length-1?o.write(a[l]+s):o.write(a[l]);o.write("\n")}for(var h=0;h<e.rows.length;h++){var c=void 0;for(c=0;c<e.rows[h].arr.length;c++)c<e.rows[h].arr.length-1?"csv"===n&&e.rows[h].arr[c].includes(",")?o.write('"'+e.rows[h].arr[c]+'"'+s):o.write(e.rows[h].arr[c]+s):"csv"===n&&e.rows[h].arr[c].includes(",")?o.write('"'+e.rows[h].arr[c]+'"'):o.write(e.rows[h].arr[c]);o.write("\n")}}else{if(o.print("<html>"),o.print("<head>"),o.print(' <meta http-equiv="content-type" content="text/html;charset=utf-8" />'),o.print("</head>"),o.print("<body>"),o.print(" <table>"),"0"!==a[0]){o.print(" <tr>");for(var d=0;d<a.length;d++){var f=u(a[d]);o.print(" <td>".concat(f)),o.print(" </td>")}o.print(" </tr>")}for(var p=0;p<e.rows.length;p++){o.print(" <tr>");for(var m=0;m<e.columns.length;m++){var y=u(e.rows[p].getString(m));o.print(" <td>".concat(y)),o.print(" </td>")}o.print(" </tr>")}o.print(" </table>"),o.print("</body>"),o.print("</html>")}o.close(),o.clear()},i.default.prototype.writeFile=function(e,t,r){var n="application/octet-stream";i.default.prototype._isSafari()&&(n="text/plain");var o=new Blob(e,{type:n});i.default.prototype.downloadFile(o,t,r)},i.default.prototype.downloadFile=function(e,t,r){var n=h(t,r),a=n[0];if(e instanceof Blob)o.default.saveAs(e,a);else{var s=document.createElement("a");if(s.href=e,s.download=a,s.onclick=function(e){var t;t=e,document.body.removeChild(t.target),e.stopPropagation()},s.style.display="none",document.body.appendChild(s),i.default.prototype._isSafari()){var l="Hello, Safari user! To download this file...\n";l+="1. Go to File --\x3e Save As.\n",l+='2. Choose "Page Source" as the Format.\n',l+='3. Name it with this extension: ."'.concat(n[1],'"'),alert(l)}s.click()}},i.default.prototype._checkFileExtension=h,i.default.prototype._isSafari=function(){return 0<Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")};var c=i.default;r.default=c},{"../core/friendly_errors/fes_core":28,"../core/friendly_errors/file_errors":29,"../core/friendly_errors/validate_params":31,"../core/main":36,"es6-promise/auto":5,"fetch-jsonp":7,"file-saver":8,"whatwg-fetch":15}],63:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.Table=function(e){this.columns=[],this.rows=[]},n.default.Table.prototype.addRow=function(e){var t=e||new n.default.TableRow;if(void 0===t.arr||void 0===t.obj)throw new Error("invalid TableRow: ".concat(t));return(t.table=this).rows.push(t),t},n.default.Table.prototype.removeRow=function(e){this.rows[e].table=null;var t=this.rows.splice(e+1,this.rows.length);this.rows.pop(),this.rows=this.rows.concat(t)},n.default.Table.prototype.getRow=function(e){return this.rows[e]},n.default.Table.prototype.getRows=function(){return this.rows},n.default.Table.prototype.findRow=function(e,t){if("string"==typeof t){for(var r=0;r<this.rows.length;r++)if(this.rows[r].obj[t]===e)return this.rows[r]}else for(var i=0;i<this.rows.length;i++)if(this.rows[i].arr[t]===e)return this.rows[i];return null},n.default.Table.prototype.findRows=function(e,t){var r=[];if("string"==typeof t)for(var i=0;i<this.rows.length;i++)this.rows[i].obj[t]===e&&r.push(this.rows[i]);else for(var n=0;n<this.rows.length;n++)this.rows[n].arr[t]===e&&r.push(this.rows[n]);return r},n.default.Table.prototype.matchRow=function(e,t){if("number"==typeof t){for(var r=0;r<this.rows.length;r++)if(this.rows[r].arr[t].match(e))return this.rows[r]}else for(var i=0;i<this.rows.length;i++)if(this.rows[i].obj[t].match(e))return this.rows[i];return null},n.default.Table.prototype.matchRows=function(e,t){var r=[];if("number"==typeof t)for(var i=0;i<this.rows.length;i++)this.rows[i].arr[t].match(e)&&r.push(this.rows[i]);else for(var n=0;n<this.rows.length;n++)this.rows[n].obj[t].match(e)&&r.push(this.rows[n]);return r},n.default.Table.prototype.getColumn=function(e){var t=[];if("string"==typeof e)for(var r=0;r<this.rows.length;r++)t.push(this.rows[r].obj[e]);else for(var i=0;i<this.rows.length;i++)t.push(this.rows[i].arr[e]);return t},n.default.Table.prototype.clearRows=function(){delete this.rows,this.rows=[]},n.default.Table.prototype.addColumn=function(e){var t=e||null;this.columns.push(t)},n.default.Table.prototype.getColumnCount=function(){return this.columns.length},n.default.Table.prototype.getRowCount=function(){return this.rows.length},n.default.Table.prototype.removeTokens=function(e,t){for(var r=[],i=0;i<e.length;i++)r.push(e.charAt(i).replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"));var n=new RegExp(r.join("|"),"g");if(void 0===t)for(var o=0;o<this.columns.length;o++)for(var a=0;a<this.rows.length;a++){var s=this.rows[a].arr[o];s=s.replace(n,""),this.rows[a].arr[o]=s,this.rows[a].obj[this.columns[o]]=s}else if("string"==typeof t)for(var l=0;l<this.rows.length;l++){var u=this.rows[l].obj[t];u=u.replace(n,""),this.rows[l].obj[t]=u;var h=this.columns.indexOf(t);this.rows[l].arr[h]=u}else for(var c=0;c<this.rows.length;c++){var d=this.rows[c].arr[t];d=d.replace(n,""),this.rows[c].arr[t]=d,this.rows[c].obj[this.columns[t]]=d}},n.default.Table.prototype.trim=function(e){var t=new RegExp(" ","g");if(void 0===e)for(var r=0;r<this.columns.length;r++)for(var i=0;i<this.rows.length;i++){var n=this.rows[i].arr[r];n=n.replace(t,""),this.rows[i].arr[r]=n,this.rows[i].obj[this.columns[r]]=n}else if("string"==typeof e)for(var o=0;o<this.rows.length;o++){var a=this.rows[o].obj[e];a=a.replace(t,""),this.rows[o].obj[e]=a;var s=this.columns.indexOf(e);this.rows[o].arr[s]=a}else for(var l=0;l<this.rows.length;l++){var u=this.rows[l].arr[e];u=u.replace(t,""),this.rows[l].arr[e]=u,this.rows[l].obj[this.columns[e]]=u}},n.default.Table.prototype.removeColumn=function(e){var t,r;"string"==typeof e?(t=e,r=this.columns.indexOf(e)):(r=e,t=this.columns[e]);var i=this.columns.splice(r+1,this.columns.length);this.columns.pop(),this.columns=this.columns.concat(i);for(var n=0;n<this.rows.length;n++){var o=this.rows[n].arr,a=o.splice(r+1,o.length);o.pop(),this.rows[n].arr=o.concat(a),delete this.rows[n].obj[t]}},n.default.Table.prototype.set=function(e,t,r){this.rows[e].set(t,r)},n.default.Table.prototype.setNum=function(e,t,r){this.rows[e].setNum(t,r)},n.default.Table.prototype.setString=function(e,t,r){this.rows[e].setString(t,r)},n.default.Table.prototype.get=function(e,t){return this.rows[e].get(t)},n.default.Table.prototype.getNum=function(e,t){return this.rows[e].getNum(t)},n.default.Table.prototype.getString=function(e,t){return this.rows[e].getString(t)},n.default.Table.prototype.getObject=function(e){for(var t,r={},i=0;i<this.rows.length;i++)if(t=this.rows[i].obj,"string"==typeof e){if(!(0<=this.columns.indexOf(e)))throw new Error('This table has no column named "'.concat(e,'"'));r[t[e]]=t}else r[i]=this.rows[i].obj;return r},n.default.Table.prototype.getArray=function(){for(var e=[],t=0;t<this.rows.length;t++)e.push(this.rows[t].arr);return e};var o=n.default;r.default=o},{"../core/main":36}],64:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.TableRow=function(e,t){var r=[],i={};e&&(t=t||",",r=e.split(t));for(var n=0;n<r.length;n++){var o=n,a=r[n];i[o]=a}this.arr=r,this.obj=i,this.table=null},n.default.TableRow.prototype.set=function(e,t){if("string"==typeof e){var r=this.table.columns.indexOf(e);if(!(0<=r))throw new Error('This table has no column named "'.concat(e,'"'));this.obj[e]=t,this.arr[r]=t}else{if(!(e<this.table.columns.length))throw new Error("Column #".concat(e," is out of the range of this table"));this.arr[e]=t;var i=this.table.columns[e];this.obj[i]=t}},n.default.TableRow.prototype.setNum=function(e,t){var r=parseFloat(t);this.set(e,r)},n.default.TableRow.prototype.setString=function(e,t){var r=t.toString();this.set(e,r)},n.default.TableRow.prototype.get=function(e){return"string"==typeof e?this.obj[e]:this.arr[e]},n.default.TableRow.prototype.getNum=function(e){var t;if("NaN"===(t="string"==typeof e?parseFloat(this.obj[e]):parseFloat(this.arr[e])).toString())throw"Error: ".concat(this.obj[e]," is NaN (Not a Number)");return t},n.default.TableRow.prototype.getString=function(e){return"string"==typeof e?this.obj[e].toString():this.arr[e].toString()};var o=n.default;r.default=o},{"../core/main":36}],65:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.XML=function(e){if(e)this.DOM=e;else{var t=document.implementation.createDocument(null,"doc");this.DOM=t.createElement("root")}},n.default.XML.prototype.getParent=function(){return new n.default.XML(this.DOM.parentElement)},n.default.XML.prototype.getName=function(){return this.DOM.tagName},n.default.XML.prototype.setName=function(e){var t=this.DOM.innerHTML,r=this.DOM.attributes,i=document.implementation.createDocument(null,"default").createElement(e);i.innerHTML=t;for(var n=0;n<r.length;n++)i.setAttribute(r[n].nodeName,r.nodeValue);this.DOM=i},n.default.XML.prototype.hasChildren=function(){return 0<this.DOM.children.length},n.default.XML.prototype.listChildren=function(){for(var e=[],t=0;t<this.DOM.childNodes.length;t++)e.push(this.DOM.childNodes[t].nodeName);return e},n.default.XML.prototype.getChildren=function(e){return function(e){for(var t=[],r=0;r<e.length;r++)t.push(new n.default.XML(e[r]));return t}(e?this.DOM.getElementsByTagName(e):this.DOM.children)},n.default.XML.prototype.getChild=function(e){if("string"!=typeof e)return new n.default.XML(this.DOM.children[e]);var t=!0,r=!1,i=void 0;try{for(var o,a=this.DOM.children[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var s=o.value;if(s.tagName===e)return new n.default.XML(s)}}catch(e){r=!0,i=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw i}}},n.default.XML.prototype.addChild=function(e){e instanceof n.default.XML&&this.DOM.appendChild(e.DOM)},n.default.XML.prototype.removeChild=function(e){var t=-1;if("string"==typeof e){for(var r=0;r<this.DOM.children.length;r++)if(this.DOM.children[r].tagName===e){t=r;break}}else t=e;-1!==t&&this.DOM.removeChild(this.DOM.children[t])},n.default.XML.prototype.getAttributeCount=function(){return this.DOM.attributes.length},n.default.XML.prototype.listAttributes=function(){var e=[],t=!0,r=!1,i=void 0;try{for(var n,o=this.DOM.attributes[Symbol.iterator]();!(t=(n=o.next()).done);t=!0){var a=n.value;e.push(a.nodeName)}}catch(e){r=!0,i=e}finally{try{t||null==o.return||o.return()}finally{if(r)throw i}}return e},n.default.XML.prototype.hasAttribute=function(e){var t={},r=!0,i=!1,n=void 0;try{for(var o,a=this.DOM.attributes[Symbol.iterator]();!(r=(o=a.next()).done);r=!0){var s=o.value;t[s.nodeName]=s.nodeValue}}catch(e){i=!0,n=e}finally{try{r||null==a.return||a.return()}finally{if(i)throw n}}return!!t[e]},n.default.XML.prototype.getNum=function(e,t){var r={},i=!0,n=!1,o=void 0;try{for(var a,s=this.DOM.attributes[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var l=a.value;r[l.nodeName]=l.nodeValue}}catch(e){n=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(n)throw o}}return Number(r[e])||t||0},n.default.XML.prototype.getString=function(e,t){var r={},i=!0,n=!1,o=void 0;try{for(var a,s=this.DOM.attributes[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var l=a.value;r[l.nodeName]=l.nodeValue}}catch(e){n=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(n)throw o}}return r[e]?String(r[e]):t||null},n.default.XML.prototype.setAttribute=function(e,t){this.DOM.setAttribute(e,t)},n.default.XML.prototype.getContent=function(e){return this.DOM.textContent.replace(/\s\s+/g,",")||e||null},n.default.XML.prototype.setContent=function(e){this.DOM.children.length||(this.DOM.textContent=e)},n.default.XML.prototype.serialize=function(){return(new XMLSerializer).serializeToString(this.DOM)};var o=n.default;r.default=o},{"../core/main":36}],66:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(){if("function"==typeof Math.hypot)return Math.hypot.apply(null,arguments);for(var e=arguments.length,t=[],r=0,i=0;i<e;i++){var n=arguments[i];if((n=+n)==1/0||n===-1/0)return 1/0;r<(n=Math.abs(n))&&(r=n),t[i]=n}0===r&&(r=1);for(var o=0,a=0,s=0;s<e;s++){var l=t[s]/r,u=l*l-a,h=o+u;a=h-o-u,o=h}return Math.sqrt(o)*r}n.default.prototype.abs=Math.abs,n.default.prototype.ceil=Math.ceil,n.default.prototype.constrain=function(e,t,r){return n.default._validateParameters("constrain",arguments),Math.max(Math.min(e,r),t)},n.default.prototype.dist=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return n.default._validateParameters("dist",t),4===t.length?o(t[2]-t[0],t[3]-t[1]):6===t.length?o(t[3]-t[0],t[4]-t[1],t[5]-t[2]):void 0},n.default.prototype.exp=Math.exp,n.default.prototype.floor=Math.floor,n.default.prototype.lerp=function(e,t,r){return n.default._validateParameters("lerp",arguments),r*(t-e)+e},n.default.prototype.log=Math.log,n.default.prototype.mag=function(e,t){return n.default._validateParameters("mag",arguments),o(e,t)},n.default.prototype.map=function(e,t,r,i,o,a){n.default._validateParameters("map",arguments);var s=(e-t)/(r-t)*(o-i)+i;return a?i<o?this.constrain(s,i,o):this.constrain(s,o,i):s},n.default.prototype.max=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t[0]instanceof Array?Math.max.apply(null,t[0]):Math.max.apply(null,t)},n.default.prototype.min=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t[0]instanceof Array?Math.min.apply(null,t[0]):Math.min.apply(null,t)},n.default.prototype.norm=function(e,t,r){return n.default._validateParameters("norm",arguments),this.map(e,t,r,0,1)},n.default.prototype.pow=Math.pow,n.default.prototype.round=function(e,t){return t?Number(Math.round(e+"e"+t)+"e-"+t):Math.round(e)},n.default.prototype.sq=function(e){return e*e},n.default.prototype.sqrt=Math.sqrt,n.default.prototype.fract=function(e){n.default._validateParameters("fract",arguments);var t=0,r=Number(e);if(isNaN(r)||Math.abs(r)===1/0)return r;if(r<0&&(r=-r,t=1),!String(r).includes(".")||String(r).includes("e"))return r<1?Math.abs(t-r):0;var i=String(r);return i=Number("0"+i.slice(i.indexOf("."))),Math.abs(t-i)};var a=n.default;r.default=a},{"../core/main":36}],67:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.createVector=function(e,t,r){return this instanceof n.default?new n.default.Vector(this,arguments):new n.default.Vector(e,t,r)};var o=n.default;r.default=o},{"../core/main":36}],68:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e){return.5*(1-Math.cos(e*Math.PI))}var a,s=4095,l=4,u=.5;n.default.prototype.noise=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;if(null==a){a=new Array(4096);for(var i=0;i<4096;i++)a[i]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),r<0&&(r=-r);for(var n,h,c,d,f,p=Math.floor(e),m=Math.floor(t),y=Math.floor(r),v=e-p,g=t-m,b=r-y,_=0,x=.5,w=0;w<l;w++){var S=p+(m<<4)+(y<<8);n=o(v),h=o(g),c=a[S&s],c+=n*(a[S+1&s]-c),d=a[S+16&s],c+=h*((d+=n*(a[S+16+1&s]-d))-c),d=a[(S+=256)&s],d+=n*(a[S+1&s]-d),f=a[S+16&s],d+=h*((f+=n*(a[S+16+1&s]-f))-d),_+=(c+=o(b)*(d-c))*x,x*=u,p<<=1,m<<=1,y<<=1,1<=(v*=2)&&(p++,v--),1<=(g*=2)&&(m++,g--),1<=(b*=2)&&(y++,b--)}return _},n.default.prototype.noiseDetail=function(e,t){0<e&&(l=e),0<t&&(u=t)},n.default.prototype.noiseSeed=function(e){var t,r,i,n=(i=4294967296,{setSeed:function(e){r=t=(null==e?Math.random()*i:e)>>>0},getSeed:function(){return t},rand:function(){return(r=(1664525*r+1013904223)%i)/i}});n.setSeed(e),a=new Array(4096);for(var o=0;o<4096;o++)a[o]=n.rand()};var h=n.default;r.default=h},{"../core/main":36}],69:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e,t){return 0!==e&&(this.x=this.x%e),0!==t&&(this.y=this.y%t),this}function u(e,t,r){return 0!==e&&(this.x=this.x%e),0!==t&&(this.y=this.y%t),0!==r&&(this.z=this.z%r),this}o.default.Vector=function(e,t,r){var i,n,a;a=e instanceof o.default?(this.p5=e,i=t[0]||0,n=t[1]||0,t[2]||0):(i=e||0,n=t||0,r||0),this.x=i,this.y=n,this.z=a},o.default.Vector.prototype.toString=function(){return"p5.Vector Object : [".concat(this.x,", ").concat(this.y,", ").concat(this.z,"]")},o.default.Vector.prototype.set=function(e,t,r){return e instanceof o.default.Vector?(this.x=e.x||0,this.y=e.y||0,this.z=e.z||0):e instanceof Array?(this.x=e[0]||0,this.y=e[1]||0,this.z=e[2]||0):(this.x=e||0,this.y=t||0,this.z=r||0),this},o.default.Vector.prototype.copy=function(){return this.p5?new o.default.Vector(this.p5,[this.x,this.y,this.z]):new o.default.Vector(this.x,this.y,this.z)},o.default.Vector.prototype.add=function(e,t,r){return e instanceof o.default.Vector?(this.x+=e.x||0,this.y+=e.y||0,this.z+=e.z||0):e instanceof Array?(this.x+=e[0]||0,this.y+=e[1]||0,this.z+=e[2]||0):(this.x+=e||0,this.y+=t||0,this.z+=r||0),this},o.default.Vector.prototype.rem=function(e,t,r){if(e instanceof o.default.Vector){if(Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.z)){var i=parseFloat(e.x),n=parseFloat(e.y),a=parseFloat(e.z);u.call(this,i,n,a)}}else if(e instanceof Array)e.every((function(e){return Number.isFinite(e)}))&&(2===e.length&&l.call(this,e[0],e[1]),3===e.length&&u.call(this,e[0],e[1],e[2]));else if(1===arguments.length){if(Number.isFinite(e)&&0!==e)return this.x=this.x%e,this.y=this.y%e,this.z=this.z%e,this}else if(2===arguments.length){var s=Array.prototype.slice.call(arguments);s.every((function(e){return Number.isFinite(e)}))&&2===s.length&&l.call(this,s[0],s[1])}else if(3===arguments.length){var h=Array.prototype.slice.call(arguments);h.every((function(e){return Number.isFinite(e)}))&&3===h.length&&u.call(this,h[0],h[1],h[2])}},o.default.Vector.prototype.sub=function(e,t,r){return e instanceof o.default.Vector?(this.x-=e.x||0,this.y-=e.y||0,this.z-=e.z||0):e instanceof Array?(this.x-=e[0]||0,this.y-=e[1]||0,this.z-=e[2]||0):(this.x-=e||0,this.y-=t||0,this.z-=r||0),this},o.default.Vector.prototype.mult=function(e,t,r){if(e instanceof o.default.Vector)return Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.z)&&"number"==typeof e.x&&"number"==typeof e.y&&"number"==typeof e.z?(this.x*=e.x,this.y*=e.y,this.z*=e.z):console.warn("p5.Vector.prototype.mult:","x contains components that are either undefined or not finite numbers"),this;if(e instanceof Array)return e.every((function(e){return Number.isFinite(e)}))&&e.every((function(e){return"number"==typeof e}))?1===e.length?(this.x*=e[0],this.y*=e[0],this.z*=e[0]):2===e.length?(this.x*=e[0],this.y*=e[1]):3===e.length&&(this.x*=e[0],this.y*=e[1],this.z*=e[2]):console.warn("p5.Vector.prototype.mult:","x contains elements that are either undefined or not finite numbers"),this;var i=Array.prototype.slice.call(arguments);return i.every((function(e){return Number.isFinite(e)}))&&i.every((function(e){return"number"==typeof e}))?(1===arguments.length&&(this.x*=e,this.y*=e,this.z*=e),2===arguments.length&&(this.x*=e,this.y*=t),3===arguments.length&&(this.x*=e,this.y*=t,this.z*=r)):console.warn("p5.Vector.prototype.mult:","x, y, or z arguments are either undefined or not a finite number"),this},o.default.Vector.prototype.div=function(e,t,r){if(e instanceof o.default.Vector){if(Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.z)&&"number"==typeof e.x&&"number"==typeof e.y&&"number"==typeof e.z){if(0===e.x||0===e.y||0===e.z)return console.warn("p5.Vector.prototype.div:","divide by 0"),this;this.x/=e.x,this.y/=e.y,this.z/=e.z}else console.warn("p5.Vector.prototype.div:","x contains components that are either undefined or not finite numbers");return this}if(e instanceof Array){if(e.every((function(e){return Number.isFinite(e)}))&&e.every((function(e){return"number"==typeof e}))){if(e.some((function(e){return 0===e})))return console.warn("p5.Vector.prototype.div:","divide by 0"),this;1===e.length?(this.x/=e[0],this.y/=e[0],this.z/=e[0]):2===e.length?(this.x/=e[0],this.y/=e[1]):3===e.length&&(this.x/=e[0],this.y/=e[1],this.z/=e[2])}else console.warn("p5.Vector.prototype.div:","x contains components that are either undefined or not finite numbers");return this}var i=Array.prototype.slice.call(arguments);if(i.every((function(e){return Number.isFinite(e)}))&&i.every((function(e){return"number"==typeof e}))){if(i.some((function(e){return 0===e})))return console.warn("p5.Vector.prototype.div:","divide by 0"),this;1===arguments.length&&(this.x/=e,this.y/=e,this.z/=e),2===arguments.length&&(this.x/=e,this.y/=t),3===arguments.length&&(this.x/=e,this.y/=t,this.z/=r)}else console.warn("p5.Vector.prototype.div:","x, y, or z arguments are either undefined or not a finite number");return this},o.default.Vector.prototype.mag=function(){return Math.sqrt(this.magSq())},o.default.Vector.prototype.magSq=function(){var e=this.x,t=this.y,r=this.z;return e*e+t*t+r*r},o.default.Vector.prototype.dot=function(e,t,r){return e instanceof o.default.Vector?this.dot(e.x,e.y,e.z):this.x*(e||0)+this.y*(t||0)+this.z*(r||0)},o.default.Vector.prototype.cross=function(e){var t=this.y*e.z-this.z*e.y,r=this.z*e.x-this.x*e.z,i=this.x*e.y-this.y*e.x;return this.p5?new o.default.Vector(this.p5,[t,r,i]):new o.default.Vector(t,r,i)},o.default.Vector.prototype.dist=function(e){return e.copy().sub(this).mag()},o.default.Vector.prototype.normalize=function(){var e=this.mag();return 0!==e&&this.mult(1/e),this},o.default.Vector.prototype.limit=function(e){var t=this.magSq();return e*e<t&&this.div(Math.sqrt(t)).mult(e),this},o.default.Vector.prototype.setMag=function(e){return this.normalize().mult(e)},o.default.Vector.prototype.heading=function(){var e=Math.atan2(this.y,this.x);return this.p5?this.p5._fromRadians(e):e},o.default.Vector.prototype.setHeading=function(e){var t=this.mag();return this.x=t*Math.cos(e),this.y=t*Math.sin(e),this},o.default.Vector.prototype.rotate=function(e){var t=this.heading()+e;this.p5&&(t=this.p5._toRadians(t));var r=this.mag();return this.x=Math.cos(t)*r,this.y=Math.sin(t)*r,this},o.default.Vector.prototype.angleBetween=function(e){var t,r=this.dot(e)/(this.mag()*e.mag());return t=Math.acos(Math.min(1,Math.max(-1,r))),t*=Math.sign(this.cross(e).z||1),this.p5&&(t=this.p5._fromRadians(t)),t},o.default.Vector.prototype.lerp=function(e,t,r,i){return e instanceof o.default.Vector?this.lerp(e.x,e.y,e.z,t):(this.x+=(e-this.x)*i||0,this.y+=(t-this.y)*i||0,this.z+=(r-this.z)*i||0,this)},o.default.Vector.prototype.reflect=function(e){return e.normalize(),this.sub(e.mult(2*this.dot(e)))},o.default.Vector.prototype.array=function(){return[this.x||0,this.y||0,this.z||0]},o.default.Vector.prototype.equals=function(e,t,r){var i,n,a;return a=e instanceof o.default.Vector?(i=e.x||0,n=e.y||0,e.z||0):e instanceof Array?(i=e[0]||0,n=e[1]||0,e[2]||0):(i=e||0,n=t||0,r||0),this.x===i&&this.y===n&&this.z===a},o.default.Vector.fromAngle=function(e,t){return void 0===t&&(t=1),new o.default.Vector(t*Math.cos(e),t*Math.sin(e),0)},o.default.Vector.fromAngles=function(e,t,r){void 0===r&&(r=1);var i=Math.cos(t),n=Math.sin(t),a=Math.cos(e),s=Math.sin(e);return new o.default.Vector(r*s*n,-r*a,r*s*i)},o.default.Vector.random2D=function(){return this.fromAngle(Math.random()*a.TWO_PI)},o.default.Vector.random3D=function(){var e=Math.random()*a.TWO_PI,t=2*Math.random()-1,r=Math.sqrt(1-t*t),i=r*Math.cos(e),n=r*Math.sin(e);return new o.default.Vector(i,n,t)},o.default.Vector.add=function(e,t,r){return r?r.set(e):(r=e.copy(),3===arguments.length&&o.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector","p5.Vector.add")),r.add(t),r},o.default.Vector.rem=function(e,t){if(e instanceof o.default.Vector&&t instanceof o.default.Vector){var r=e.copy();return r.rem(t),r}},o.default.Vector.sub=function(e,t,r){return r?r.set(e):(r=e.copy(),3===arguments.length&&o.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector","p5.Vector.sub")),r.sub(t),r},o.default.Vector.mult=function(e,t,r){return r?r.set(e):(r=e.copy(),3===arguments.length&&o.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector","p5.Vector.mult")),r.mult(t),r},o.default.Vector.div=function(e,t,r){return r?r.set(e):(r=e.copy(),3===arguments.length&&o.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector","p5.Vector.div")),r.div(t),r},o.default.Vector.dot=function(e,t){return e.dot(t)},o.default.Vector.cross=function(e,t){return e.cross(t)},o.default.Vector.dist=function(e,t){return e.dist(t)},o.default.Vector.lerp=function(e,t,r,i){return i?i.set(e):(i=e.copy(),4===arguments.length&&o.default._friendlyError("The target parameter is undefined, it should be of type p5.Vector","p5.Vector.lerp")),i.lerp(t,r),i},o.default.Vector.mag=function(e){var t=e.x,r=e.y,i=e.z,n=t*t+r*r+i*i;return Math.sqrt(n)};var h=o.default.Vector;r.default=h},{"../core/constants":26,"../core/main":36}],70:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i},o="_lcg_random_state",a=4294967296,s=0;n.default.prototype._lcg=function(e){return this[e]=(1664525*this[e]+1013904223)%a,this[e]/a},n.default.prototype._lcgSetSeed=function(e,t){this[e]=(null==t?Math.random()*a:t)>>>0},n.default.prototype.randomSeed=function(e){this._lcgSetSeed(o,e),this._gaussian_previous=!1},n.default.prototype.random=function(e,t){var r;if(n.default._validateParameters("random",arguments),r=null!=this[o]?this._lcg(o):Math.random(),void 0===e)return r;if(void 0===t)return e instanceof Array?e[Math.floor(r*e.length)]:r*e;if(t<e){var i=e;e=t,t=i}return r*(t-e)+e},n.default.prototype.randomGaussian=function(e){var t,r,i,n,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;if(this._gaussian_previous)t=s,this._gaussian_previous=!1;else{for(;1<=(n=(r=this.random(2)-1)*r+(i=this.random(2)-1)*i););t=r*(n=Math.sqrt(-2*Math.log(n)/n)),s=i*n,this._gaussian_previous=!0}return t*o+(e||0)};var l=n.default;r.default=l},{"../core/main":36}],71:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.prototype._angleMode=a.RADIANS,o.default.prototype.acos=function(e){return this._fromRadians(Math.acos(e))},o.default.prototype.asin=function(e){return this._fromRadians(Math.asin(e))},o.default.prototype.atan=function(e){return this._fromRadians(Math.atan(e))},o.default.prototype.atan2=function(e,t){return this._fromRadians(Math.atan2(e,t))},o.default.prototype.cos=function(e){return Math.cos(this._toRadians(e))},o.default.prototype.sin=function(e){return Math.sin(this._toRadians(e))},o.default.prototype.tan=function(e){return Math.tan(this._toRadians(e))},o.default.prototype.degrees=function(e){return e*a.RAD_TO_DEG},o.default.prototype.radians=function(e){return e*a.DEG_TO_RAD},o.default.prototype.angleMode=function(e){e!==a.DEGREES&&e!==a.RADIANS||(this._angleMode=e)},o.default.prototype._toRadians=function(e){return this._angleMode===a.DEGREES?e*a.DEG_TO_RAD:e},o.default.prototype._toDegrees=function(e){return this._angleMode===a.RADIANS?e*a.RAD_TO_DEG:e},o.default.prototype._fromRadians=function(e){return this._angleMode===a.DEGREES?e*a.RAD_TO_DEG:e};var l=o.default;r.default=l},{"../core/constants":26,"../core/main":36}],72:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.textAlign=function(e,t){var r;return n.default._validateParameters("textAlign",arguments),(r=this._renderer).textAlign.apply(r,arguments)},n.default.prototype.textLeading=function(e){var t;return n.default._validateParameters("textLeading",arguments),(t=this._renderer).textLeading.apply(t,arguments)},n.default.prototype.textSize=function(e){var t;return n.default._validateParameters("textSize",arguments),(t=this._renderer).textSize.apply(t,arguments)},n.default.prototype.textStyle=function(e){var t;return n.default._validateParameters("textStyle",arguments),(t=this._renderer).textStyle.apply(t,arguments)},n.default.prototype.textWidth=function(){for(var e,t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return r[0]+="",n.default._validateParameters("textWidth",r),0===r[0].length?0:(e=this._renderer).textWidth.apply(e,r)},n.default.prototype.textAscent=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return n.default._validateParameters("textAscent",t),this._renderer.textAscent()},n.default.prototype.textDescent=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return n.default._validateParameters("textDescent",t),this._renderer.textDescent()},n.default.prototype._updateTextMetrics=function(){return this._renderer._updateTextMetrics()};var o=n.default;r.default=o},{"../core/main":36}],73:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=u(e("../core/constants")),s=u(e("opentype.js"));function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}e("../core/friendly_errors/validate_params"),e("../core/friendly_errors/file_errors"),e("../core/friendly_errors/fes_core"),o.default.prototype.loadFont=function(e,t,r){o.default._validateParameters("loadFont",arguments);var i=new o.default.Font(this),n=this;return s.load(e,(function(a,s){if(a)return o.default._friendlyFileLoadError(4,e),void 0!==r?r(a):void console.error(a,e);i.font=s,void 0!==t&&t(i),n._decrementPreload();var l,u,h=e.split("\\").pop().split("/").pop(),c=h.lastIndexOf("."),d=c<1?null:h.substr(c+1);["ttf","otf","woff","woff2"].includes(d)&&(l=h.substr(0,c),(u=document.createElement("style")).appendChild(document.createTextNode("\n@font-face {\nfont-family: ".concat(l,";\nsrc: url(").concat(e,");\n}\n"))),document.head.appendChild(u))})),i},o.default.prototype.text=function(e,t,r,i,n){var a;return o.default._validateParameters("text",arguments),this._renderer._doFill||this._renderer._doStroke?(a=this._renderer).text.apply(a,arguments):this},o.default.prototype.textFont=function(e,t){if(o.default._validateParameters("textFont",arguments),arguments.length){if(!e)throw new Error("null font passed to textFont");return this._renderer._setProperty("_textFont",e),t&&(this._renderer._setProperty("_textSize",t),this._renderer._setProperty("_textLeading",t*a._DEFAULT_LEADMULT)),this._renderer._applyTextProperties()}return this._renderer._textFont};var h=o.default;r.default=h},{"../core/constants":26,"../core/friendly_errors/fes_core":28,"../core/friendly_errors/file_errors":29,"../core/friendly_errors/validate_params":31,"../core/main":36,"opentype.js":12}],74:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i},o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var o=i?Object.getOwnPropertyDescriptor(e,n):null;o&&(o.get||o.set)?Object.defineProperty(r,n,o):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function s(e){return(s="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})(e)}function l(e,t){for(var r=function(e,t){if("object"!==s(e))e=t;else for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e}(t,{sampleFactor:.1,simplifyThreshold:0}),i=m(e,0,1),n=i/(i*r.sampleFactor),o=[],a=0;a<i;a+=n)o.push(m(e,a));return r.simplifyThreshold&&function(e){for(var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,r=e.length-1;3<e.length&&0<=r;--r)d(c(e,r-1),c(e,r),c(e,r+1),t)&&e.splice(r%e.length,1)}(o,r.simplifyThreshold),o}function u(e){for(var t,r=[],i=0;i<e.length;i++)"M"===e[i].type&&(t&&r.push(t),t=[]),t.push(h(e[i]));return r.push(t),r}function h(e){var t=[e.type];return"M"===e.type||"L"===e.type?t.push(e.x,e.y):"C"===e.type?t.push(e.x1,e.y1,e.x2,e.y2,e.x,e.y):"Q"===e.type&&t.push(e.x1,e.y1,e.x,e.y),t}function c(e,t){var r=e.length;return e[t<0?t%r+r:t%r]}function d(e,t,r,i){if(!i)return 0==(n=e,a=r,((o=t)[0]-n[0])*(a[1]-n[1])-(a[0]-n[0])*(o[1]-n[1]));var n,o,a;void 0===d.tmpPoint1&&(d.tmpPoint1=[],d.tmpPoint2=[]);var s=d.tmpPoint1,l=d.tmpPoint2;s.x=t.x-e.x,s.y=t.y-e.y,l.x=r.x-t.x,l.y=r.y-t.y;var u=s.x*l.x+s.y*l.y,h=Math.sqrt(s.x*s.x+s.y*s.y),c=Math.sqrt(l.x*l.x+l.y*l.y);return Math.acos(u/(h*c))<i}function f(e,t,r,i,n,o,a,s,l){var u=1-l,h=Math.pow(u,3),c=Math.pow(u,2),d=l*l,f=d*l,p=h*e+3*c*l*r+3*u*l*l*n+f*a,m=h*t+3*c*l*i+3*u*l*l*o+f*s,y=e+2*l*(r-e)+d*(n-2*r+e),v=t+2*l*(i-t)+d*(o-2*i+t),g=r+2*l*(n-r)+d*(a-2*n+r),b=i+2*l*(o-i)+d*(s-2*o+i),_=u*e+l*r,x=u*t+l*i,w=u*n+l*a,S=u*o+l*s,M=90-180*Math.atan2(y-g,v-b)/Math.PI;return(g<y||v<b)&&(M+=180),{x:p,y:m,m:{x:y,y:v},n:{x:g,y:b},start:{x:_,y:x},end:{x:w,y:S},alpha:M}}function p(e,t,r,i,n,o,a,s,l){return null==l?_(e,t,r,i,n,o,a,s):f(e,t,r,i,n,o,a,s,function(e,t,r,i,n,o,a,s,l){if(!(l<0||_(e,t,r,i,n,o,a,s)<l)){var u,h=.5,c=1-h;for(u=_(e,t,r,i,n,o,a,s,c);.01<Math.abs(u-l);)u=_(e,t,r,i,n,o,a,s,c+=(u<l?1:-1)*(h/=2));return c}}(e,t,r,i,n,o,a,s,l))}function m(e,t,r){for(var i,n,o,a,s,l=0,u=0,h=(e=function(e,t){function r(e,t,r){var i,n;if(!e)return["C",t.x,t.y,t.x,t.y,t.x,t.y];switch(e[0]in{T:1,Q:1}||(t.qx=t.qy=null),e[0]){case"M":t.X=e[1],t.Y=e[2];break;case"A":e=["C"].concat(function e(t,r,i,n,o,a,s,l,u,h){var c,d,f,p,m,y=Math.PI,v=120*y/180,g=y/180*(+o||0),b=[],_=function(e,t,r){return{x:e*Math.cos(r)-t*Math.sin(r),y:e*Math.sin(r)+t*Math.cos(r)}};if(h)c=h[0],d=h[1],f=h[2],p=h[3];else{t=(m=_(t,r,-g)).x,r=m.y;var x=(t-(l=(m=_(l,u,-g)).x))/2,w=(r-(u=m.y))/2,S=x*x/(i*i)+w*w/(n*n);1<S&&(i*=S=Math.sqrt(S),n*=S);var M=i*i,E=n*n,T=(a===s?-1:1)*Math.sqrt(Math.abs((M*E-M*w*w-E*x*x)/(M*w*w+E*x*x)));f=T*i*w/n+(t+l)/2,p=T*-n*x/i+(r+u)/2,c=Math.asin(((r-p)/n).toFixed(9)),d=Math.asin(((u-p)/n).toFixed(9)),(c=t<f?y-c:c)<0&&(c=2*y+c),(d=l<f?y-d:d)<0&&(d=2*y+d),s&&d<c&&(c-=2*y),!s&&c<d&&(d-=2*y)}var C=d-c;if(Math.abs(C)>v){var O=d,P=l,L=u;d=c+v*(s&&c<d?1:-1),b=e(l=f+i*Math.cos(d),u=p+n*Math.sin(d),i,n,o,0,s,P,L,[d,O,f,p])}C=d-c;var k=Math.cos(c),A=Math.sin(c),R=Math.cos(d),D=Math.sin(d),I=Math.tan(C/4),U=4/3*i*I,N=4/3*n*I,F=[t,r],B=[t+U*A,r-N*k],G=[l+U*D,u-N*R],j=[l,u];if(B[0]=2*F[0]-B[0],B[1]=2*F[1]-B[1],h)return[B,G,j].concat(b);for(var V=[],z=0,H=(b=[B,G,j].concat(b).join().split(",")).length;z<H;z++)V[z]=z%2?_(b[z-1],b[z],g).y:_(b[z],b[z+1],g).x;return V}.apply(0,[t.x,t.y].concat(e.slice(1))));break;case"S":n="C"===r||"S"===r?(i=2*t.x-t.bx,2*t.y-t.by):(i=t.x,t.y),e=["C",i,n].concat(e.slice(1));break;case"T":"Q"===r||"T"===r?(t.qx=2*t.x-t.qx,t.qy=2*t.y-t.qy):(t.qx=t.x,t.qy=t.y),e=["C"].concat(b(t.x,t.y,t.qx,t.qy,e[1],e[2]));break;case"Q":t.qx=e[1],t.qy=e[2],e=["C"].concat(b(t.x,t.y,e[1],e[2],e[3],e[4]));break;case"L":e=["C"].concat(g(t.x,t.y,e[1],e[2]));break;case"H":e=["C"].concat(g(t.x,t.y,e[1],t.y));break;case"V":e=["C"].concat(g(t.x,t.y,t.x,e[1]));break;case"Z":e=["C"].concat(g(t.x,t.y,t.X,t.Y))}return e}function i(e,t){if(7<e[t].length){e[t].shift();for(var r=e[t];r.length;)h[t]="A",s&&(c[t]="A"),e.splice(t++,0,["C"].concat(r.splice(0,6)));e.splice(t,1),o=Math.max(a.length,s&&s.length||0)}}function n(e,t,r,i,n){e&&t&&"M"===e[n][0]&&"M"!==t[n][0]&&(t.splice(n,0,["M",i.x,i.y]),r.bx=0,r.by=0,r.x=e[n][1],r.y=e[n][2],o=Math.max(a.length,s&&s.length||0))}var o,a=y(e),s=t,l={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},u={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=[],c=[],d="",f="";o=Math.max(a.length,s&&s.length||0);for(var p=0;p<o;p++){a[p]&&(d=a[p][0]),"C"!==d&&(h[p]=d,p&&(f=h[p-1])),a[p]=r(a[p],l,f),"A"!==h[p]&&"C"===d&&(h[p]="C"),i(a,p),s&&(s[p]&&(d=s[p][0]),"C"!==d&&(c[p]=d,p&&(f=c[p-1])),s[p]=r(s[p],u,f),"A"!==c[p]&&"C"===d&&(c[p]="C"),i(s,p)),n(a,s,l,u,p),n(s,a,u,l,p);var m=a[p],v=s&&s[p],_=m.length,x=s&&v.length;l.x=m[_-2],l.y=m[_-1],l.bx=parseFloat(m[_-4])||l.x,l.by=parseFloat(m[_-3])||l.y,u.bx=s&&(parseFloat(v[x-4])||u.x),u.by=s&&(parseFloat(v[x-3])||u.y),u.x=s&&v[x-2],u.y=s&&v[x-1]}return s?[a,s]:a}(e)).length;u<h;u++){if("M"===(o=e[u])[0])i=+o[1],n=+o[2];else{if(t<l+(a=p(i,n,o[1],o[2],o[3],o[4],o[5],o[6]))&&!r)return{x:(s=p(i,n,o[1],o[2],o[3],o[4],o[5],o[6],t-l)).x,y:s.y,alpha:s.alpha};l+=a,i=+o[5],n=+o[6]}o.shift()}return(s=r?l:f(i,n,o[0],o[1],o[2],o[3],o[4],o[5],1)).alpha&&(s={x:s.x,y:s.y,alpha:s.alpha}),s}function y(e){var t,r=[],i=0,n=0,o=0,a=0,s=0;if(!e)return r;"M"===e[0][0]&&(o=i=+e[0][1],a=n=+e[0][2],s++,r[0]=["M",i,n]);for(var l,u,h=3===e.length&&"M"===e[0][0]&&"R"===e[1][0].toUpperCase()&&"Z"===e[2][0].toUpperCase(),c=s,d=e.length;c<d;c++){if(r.push(l=[]),(u=e[c])[0]!==String.prototype.toUpperCase.call(u[0]))switch(l[0]=String.prototype.toUpperCase.call(u[0]),l[0]){case"A":l[1]=u[1],l[2]=u[2],l[3]=u[3],l[4]=u[4],l[5]=u[5],l[6]=+(u[6]+i),l[7]=+(u[7]+n);break;case"V":l[1]=+u[1]+n;break;case"H":l[1]=+u[1]+i;break;case"R":for(var f=2,p=(t=[i,n].concat(u.slice(1))).length;f<p;f++)t[f]=+t[f]+i,t[++f]=+t[f]+n;r.pop(),r=r.concat(v(t,h));break;case"M":o=+u[1]+i,a=+u[2]+n;break;default:for(var m=1,y=u.length;m<y;m++)l[m]=+u[m]+(m%2?i:n)}else if("R"===u[0])t=[i,n].concat(u.slice(1)),r.pop(),r=r.concat(v(t,h)),l=["R"].concat(u.slice(-2));else for(var g=0,b=u.length;g<b;g++)l[g]=u[g];switch(l[0]){case"Z":i=o,n=a;break;case"H":i=l[1];break;case"V":n=l[1];break;case"M":o=l[l.length-2],a=l[l.length-1];break;default:i=l[l.length-2],n=l[l.length-1]}}return r}function v(e,t){for(var r=[],i=0,n=e.length;i<n-2*!t;i+=2){var o=[{x:+e[i-2],y:+e[i-1]},{x:+e[i],y:+e[i+1]},{x:+e[i+2],y:+e[i+3]},{x:+e[i+4],y:+e[i+5]}];t?i?n-4===i?o[3]={x:+e[0],y:+e[1]}:n-2===i&&(o[2]={x:+e[0],y:+e[1]},o[3]={x:+e[2],y:+e[3]}):o[0]={x:+e[n-2],y:+e[n-1]}:n-4===i?o[3]=o[2]:i||(o[0]={x:+e[i],y:+e[i+1]}),r.push(["C",(-o[0].x+6*o[1].x+o[2].x)/6,(-o[0].y+6*o[1].y+o[2].y)/6,(o[1].x+6*o[2].x-o[3].x)/6,(o[1].y+6*o[2].y-o[3].y)/6,o[2].x,o[2].y])}return r}function g(e,t,r,i){return[e,t,r,i,r,i]}function b(e,t,r,i,n,o){return[1/3*e+2/3*r,1/3*t+2/3*i,1/3*n+2/3*r,1/3*o+2/3*i,n,o]}function _(e,t,r,i,n,o,a,s,l){null==l&&(l=1);for(var u=(l=1<l?1:l<0?0:l)/2,h=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],c=0,d=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],f=0;f<12;f++){var p=u*h[f]+u,m=x(p,e,r,n,a),y=x(p,t,i,o,s),v=m*m+y*y;c+=d[f]*Math.sqrt(v)}return u*c}function x(e,t,r,i,n){return e*(e*(-3*t+9*r-9*i+3*n)+6*t-12*r+6*i)-3*t+3*r}n.default.Font=function(e){this.parent=e,this.cache={},this.font=void 0},n.default.Font.prototype.textBounds=function(e){var t,r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,n=3<arguments.length?arguments[3]:void 0,a=4<arguments.length?arguments[4]:void 0,s=a&&a.renderer&&a.renderer._pInst||this.parent,l=s._renderer.drawingContext;if(l.textAlign||o.LEFT,l.textBaseline||o.BASELINE,n=n||s._renderer._textSize,!t){var u,h,c=[],d=[],f=[];f[0]=[];var p=[],m=this._scale(n),y=s._renderer.textLeading(),v=0;this.font.forEachGlyph(e,r,i,n,a,(function(e,t,r,i){var n=e.getMetrics();0===e.index||10===e.index?f[v+=1]=[]:(f[v].push(t+n.xMin*m),f[v].push(t+n.xMax*m),p.push(r+v*y+-n.yMin*m),p.push(r+v*y+-n.yMax*m))})),0<f[v].length&&(c[v]=Math.min.apply(null,f[v]),d[v]=Math.max.apply(null,f[v]));for(var g=0,b=0;b<=v;b++){c[b]=Math.min.apply(null,f[b]),d[b]=Math.max.apply(null,f[b]);var _=d[b]-c[b];g<_&&(g=_)}var x=Math.min.apply(null,c);t={x,y:u=Math.min.apply(null,p),h:Math.max.apply(null,p)-u,w:g,advance:x-r},h=this._handleAlignment(s._renderer,e,t.x,t.y,t.w+t.advance),t.x=h.x,t.y=h.y}return t},n.default.Font.prototype.textToPoints=function(e,t,r,i,n){var o,a=0,s=[],h=this._getGlyphs(e);i=i||this.parent._renderer._textSize;for(var c=0;c<h.length;c++){if(!(h[o=c].name&&"space"===h[o].name||e.length===h.length&&" "===e[o]||h[o].index&&3===h[o].index))for(var d=u(h[c].getPath(t,r,i).commands),f=0;f<d.length;f++)for(var p=l(d[f],n),m=0;m<p.length;m++)p[m].x+=a,s.push(p[m]);a+=h[c].advanceWidth*this._scale(i)}return s},n.default.Font.prototype._getGlyphs=function(e){return this.font.stringToGlyphs(e)},n.default.Font.prototype._getPath=function(e,t,r,i){var n=(i&&i.renderer&&i.renderer._pInst||this.parent)._renderer,o=this._handleAlignment(n,e,t,r);return this.font.getPath(e,o.x,o.y,n._textSize,i)},n.default.Font.prototype._getPathData=function(e,t,r,i){var n=3;return"string"==typeof e&&2<arguments.length?e=this._getPath(e,t,r,i):"object"===s(t)&&(i=t),i&&"number"==typeof i.decimals&&(n=i.decimals),e.toPathData(n)},n.default.Font.prototype._getSVG=function(e,t,r,i){var n=3;return"string"==typeof e&&2<arguments.length?e=this._getPath(e,t,r,i):"object"===s(t)&&(i=t),i&&("number"==typeof i.decimals&&(n=i.decimals),"number"==typeof i.strokeWidth&&(e.strokeWidth=i.strokeWidth),void 0!==i.fill&&(e.fill=i.fill),void 0!==i.stroke&&(e.stroke=i.stroke)),e.toSVG(n)},n.default.Font.prototype._renderPath=function(e,t,r,i){var n,a=i&&i.renderer||this.parent._renderer,l=a.drawingContext;n="object"===s(e)&&e.commands?e.commands:this._getPath(e,t,r,i).commands,l.beginPath();var u=!0,h=!1,c=void 0;try{for(var d,f=n[Symbol.iterator]();!(u=(d=f.next()).done);u=!0){var p=d.value;"M"===p.type?l.moveTo(p.x,p.y):"L"===p.type?l.lineTo(p.x,p.y):"C"===p.type?l.bezierCurveTo(p.x1,p.y1,p.x2,p.y2,p.x,p.y):"Q"===p.type?l.quadraticCurveTo(p.x1,p.y1,p.x,p.y):"Z"===p.type&&l.closePath()}}catch(e){h=!0,c=e}finally{try{u||null==f.return||f.return()}finally{if(h)throw c}}return a._doStroke&&a._strokeSet&&l.stroke(),a._doFill&&(a._fillSet||a._setFill(o._DEFAULT_TEXT_FILL),l.fill()),this},n.default.Font.prototype._textWidth=function(e,t){return this.font.getAdvanceWidth(e,t)},n.default.Font.prototype._textAscent=function(e){return this.font.ascender*this._scale(e)},n.default.Font.prototype._textDescent=function(e){return-this.font.descender*this._scale(e)},n.default.Font.prototype._scale=function(e){return 1/this.font.unitsPerEm*(e||this.parent._renderer._textSize)},n.default.Font.prototype._handleAlignment=function(e,t,r,i,n){var a=e._textSize;switch(void 0===n&&(n=this._textWidth(t,a)),e._textAlign){case o.CENTER:r-=n/2;break;case o.RIGHT:r-=n}switch(e._textBaseline){case o.TOP:i+=this._textAscent(a);break;case o.CENTER:i+=this._textAscent(a)/2;break;case o.BOTTOM:i-=this._textDescent(a)}return{x:r,y:i}};var w=n.default;r.default=w},{"../core/constants":26,"../core/main":36}],75:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.append=function(e,t){return e.push(t),e},n.default.prototype.arrayCopy=function(e,t,r,i,n){var o,a;e=void 0!==n?(a=Math.min(n,e.length),o=i,e.slice(t,a+t)):(a=void 0!==r?(a=r,Math.min(a,e.length)):e.length,o=0,r=t,e.slice(0,a)),Array.prototype.splice.apply(r,[o,a].concat(e))},n.default.prototype.concat=function(e,t){return e.concat(t)},n.default.prototype.reverse=function(e){return e.reverse()},n.default.prototype.shorten=function(e){return e.pop(),e},n.default.prototype.shuffle=function(e,t){for(var r,i,n=ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(e),o=(e=t||n?e:e.slice()).length;1<o;)r=this.random(0,1)*o|0,i=e[--o],e[o]=e[r],e[r]=i;return e},n.default.prototype.sort=function(e,t){var r=t?e.slice(0,Math.min(t,e.length)):e,i=t?e.slice(Math.min(t,e.length)):[];return(r="string"==typeof r[0]?r.sort():r.sort((function(e,t){return e-t}))).concat(i)},n.default.prototype.splice=function(e,t,r){return Array.prototype.splice.apply(e,[r,0].concat(t)),e},n.default.prototype.subset=function(e,t,r){return void 0!==r?e.slice(t,t+r):e.slice(t,e.length)};var o=n.default;r.default=o},{"../core/main":36}],76:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.float=function(e){return e instanceof Array?e.map(parseFloat):parseFloat(e)},n.default.prototype.int=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:10;return e===1/0||"Infinity"===e?1/0:e===-1/0||"-Infinity"===e?-1/0:"string"==typeof e?parseInt(e,t):"number"==typeof e?0|e:"boolean"==typeof e?e?1:0:e instanceof Array?e.map((function(e){return n.default.prototype.int(e,t)})):void 0},n.default.prototype.str=function(e){return e instanceof Array?e.map(n.default.prototype.str):String(e)},n.default.prototype.boolean=function(e){return"number"==typeof e?0!==e:"string"==typeof e?"true"===e.toLowerCase():"boolean"==typeof e?e:e instanceof Array?e.map(n.default.prototype.boolean):void 0},n.default.prototype.byte=function(e){var t=n.default.prototype.int(e,10);return"number"==typeof t?(t+128)%256-128:t instanceof Array?t.map(n.default.prototype.byte):void 0},n.default.prototype.char=function(e){return"number"!=typeof e||isNaN(e)?e instanceof Array?e.map(n.default.prototype.char):"string"==typeof e?n.default.prototype.char(parseInt(e,10)):void 0:String.fromCharCode(e)},n.default.prototype.unchar=function(e){return"string"==typeof e&&1===e.length?e.charCodeAt(0):e instanceof Array?e.map(n.default.prototype.unchar):void 0},n.default.prototype.hex=function(e,t){if(t=null==t?t=8:t,e instanceof Array)return e.map((function(e){return n.default.prototype.hex(e,t)}));if(e===1/0||e===-1/0)return(e===1/0?"F":"0").repeat(t);if("number"==typeof e){e<0&&(e=4294967295+e+1);for(var r=Number(e).toString(16).toUpperCase();r.length<t;)r="0".concat(r);return r.length>=t&&(r=r.substring(r.length-t,r.length)),r}},n.default.prototype.unhex=function(e){return e instanceof Array?e.map(n.default.prototype.unhex):parseInt("0x".concat(e),16)};var o=n.default;r.default=o},{"../core/main":36}],77:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e,t,r){var i=e<0,n=i?e.toString().substring(1):e.toString(),o=n.indexOf("."),a=-1!==o?n.substring(0,o):n,s=-1!==o?n.substring(o+1):"",l=i?"-":"";if(void 0!==r){var u="";(-1!==o||0<r-s.length)&&(u="."),s.length>r&&(s=s.substring(0,r));for(var h=0;h<t-a.length;h++)l+="0";l+=a,l+=u,l+=s;for(var c=0;c<r-s.length;c++)l+="0";return l}for(var d=0;d<Math.max(t-a.length,0);d++)l+="0";return l+n}function a(e,t){var r=(e=e.toString()).indexOf("."),i=-1!==r?e.substring(r):"",n=-1!==r?e.substring(0,r):e;if(n=n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),0===t)i="";else if(void 0!==t)if(t>i.length)for(var o=t-(i+=-1===r?".":"").length+1,a=0;a<o;a++)i+="0";else i=i.substring(0,t+1);return n+i}function s(e){return 0<parseFloat(e)?"+".concat(e.toString()):e.toString()}function l(e){return 0<=parseFloat(e)?" ".concat(e.toString()):e.toString()}e("../core/friendly_errors/validate_params"),e("../core/friendly_errors/file_errors"),e("../core/friendly_errors/fes_core"),n.default.prototype.join=function(e,t){return n.default._validateParameters("join",arguments),e.join(t)},n.default.prototype.match=function(e,t){return n.default._validateParameters("match",arguments),e.match(t)},n.default.prototype.matchAll=function(e,t){n.default._validateParameters("matchAll",arguments);for(var r=new RegExp(t,"g"),i=r.exec(e),o=[];null!==i;)o.push(i),i=r.exec(e);return o},n.default.prototype.nf=function(e,t,r){return n.default._validateParameters("nf",arguments),e instanceof Array?e.map((function(e){return o(e,t,r)})):"[object Arguments]"===Object.prototype.toString.call(e)?3===e.length?this.nf(e[0],e[1],e[2]):2===e.length?this.nf(e[0],e[1]):this.nf(e[0]):o(e,t,r)},n.default.prototype.nfc=function(e,t){return n.default._validateParameters("nfc",arguments),e instanceof Array?e.map((function(e){return a(e,t)})):a(e,t)},n.default.prototype.nfp=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];n.default._validateParameters("nfp",t);var i=n.default.prototype.nf.apply(this,t);return i instanceof Array?i.map(s):s(i)},n.default.prototype.nfs=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];n.default._validateParameters("nfs",t);var i=n.default.prototype.nf.apply(this,t);return i instanceof Array?i.map(l):l(i)},n.default.prototype.split=function(e,t){return n.default._validateParameters("split",arguments),e.split(t)},n.default.prototype.splitTokens=function(e,t){var r;if(n.default._validateParameters("splitTokens",arguments),void 0!==t){var i=t,o=/\]/g.exec(i),a=/\[/g.exec(i);r=a&&o?(i=i.slice(0,o.index)+i.slice(o.index+1),a=/\[/g.exec(i),i=i.slice(0,a.index)+i.slice(a.index+1),new RegExp("[\\[".concat(i,"\\]]"),"g")):o?(i=i.slice(0,o.index)+i.slice(o.index+1),new RegExp("[".concat(i,"\\]]"),"g")):a?(i=i.slice(0,a.index)+i.slice(a.index+1),new RegExp("[".concat(i,"\\[]"),"g")):new RegExp("[".concat(i,"]"),"g")}else r=/\s/g;return e.split(r).filter((function(e){return e}))},n.default.prototype.trim=function(e){return n.default._validateParameters("trim",arguments),e instanceof Array?e.map(this.trim):e.trim()};var u=n.default;r.default=u},{"../core/friendly_errors/fes_core":28,"../core/friendly_errors/file_errors":29,"../core/friendly_errors/validate_params":31,"../core/main":36}],78:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.day=function(){return(new Date).getDate()},n.default.prototype.hour=function(){return(new Date).getHours()},n.default.prototype.minute=function(){return(new Date).getMinutes()},n.default.prototype.millis=function(){return-1===this._millisStart?0:window.performance.now()-this._millisStart},n.default.prototype.month=function(){return(new Date).getMonth()+1},n.default.prototype.second=function(){return(new Date).getSeconds()},n.default.prototype.year=function(){return(new Date).getFullYear()};var o=n.default;r.default=o},{"../core/main":36}],79:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n};e("./p5.Geometry");var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e,t,r,i,n,a,s){e=e<=0?1:e,t=t<0?0:t,r=r<=0?e:r,i=i<3?3:i;var l,u,h,c=(a=void 0===a||a)?-2:0,d=(n=n<1?1:n)+((s=void 0===s?0!==t:s)?2:0),f=Math.atan2(e-t,r),p=Math.sin(f),m=Math.cos(f);for(l=c;l<=d;++l){var y=l/n,v=r*y,g=void 0;for(g=l<0?(y=v=0,e):n<l?(v=r,y=1,t):e+(t-e)*y,-2!==l&&l!==n+2||(g=0),v-=r/2,u=0;u<i;++u){var b=u/(i-1),_=2*Math.PI*b,x=Math.sin(_),w=Math.cos(_);this.vertices.push(new o.default.Vector(x*g,v,w*g));var S;S=l<0?new o.default.Vector(0,-1,0):n<l&&t?new o.default.Vector(0,1,0):new o.default.Vector(x*m,p,w*m),this.vertexNormals.push(S),this.uvs.push(b,y)}}var M=0;if(a){for(h=0;h<i;++h){var E=(h+1)%i;this.faces.push([M+h,M+i+E,M+i+h])}M+=2*i}for(l=0;l<n;++l){for(u=0;u<i;++u){var T=(u+1)%i;this.faces.push([M+u,M+T,M+i+T]),this.faces.push([M+u,M+i+T,M+i+u])}M+=i}if(s)for(M+=i,u=0;u<i;++u)this.faces.push([M+u,M+(u+1)%i,M+i])}o.default.prototype.plane=function(e,t,r,i){this._assert3d("plane"),o.default._validateParameters("plane",arguments),void 0===e&&(e=50),void 0===t&&(t=e),void 0===r&&(r=1),void 0===i&&(i=1);var n="plane|".concat(r,"|").concat(i);if(!this._renderer.geometryInHash(n)){var a=new o.default.Geometry(r,i,(function(){for(var e,t,r,i=0;i<=this.detailY;i++){t=i/this.detailY;for(var n=0;n<=this.detailX;n++)e=n/this.detailX,r=new o.default.Vector(e-.5,t-.5,0),this.vertices.push(r),this.uvs.push(e,t)}}));a.computeFaces().computeNormals(),r<=1&&i<=1?a._makeTriangleEdges()._edgesToVertices():this._renderer._doStroke&&console.log("Cannot draw stroke on plane objects with more than 1 detailX or 1 detailY"),this._renderer.createBuffers(n,a)}return this._renderer.drawBuffersScaled(n,e,t,1),this},o.default.prototype.box=function(e,t,r,i,n){this._assert3d("box"),o.default._validateParameters("box",arguments),void 0===e&&(e=50),void 0===t&&(t=e),void 0===r&&(r=t);var a=this._renderer.attributes&&this._renderer.attributes.perPixelLighting;void 0===i&&(i=a?1:4),void 0===n&&(n=a?1:4);var s="box|".concat(i,"|").concat(n);if(!this._renderer.geometryInHash(s)){var l=new o.default.Geometry(i,n,(function(){var e=[[0,4,2,6],[1,3,5,7],[0,1,4,5],[2,6,3,7],[0,2,1,3],[4,5,6,7]];this.strokeIndices=[[0,1],[1,3],[3,2],[6,7],[8,9],[9,11],[14,15],[16,17],[17,19],[18,19],[20,21],[22,23]];for(var t=0;t<e.length;t++){for(var r=e[t],i=4*t,n=0;n<4;n++){var a=r[n],s=new o.default.Vector((2*(1&a)-1)/2,((2&a)-1)/2,((4&a)/2-1)/2);this.vertices.push(s),this.uvs.push(1&n,(2&n)/2)}this.faces.push([i,1+i,2+i]),this.faces.push([2+i,1+i,3+i])}}));l.computeNormals(),i<=4&&n<=4?l._makeTriangleEdges()._edgesToVertices():this._renderer._doStroke&&console.log("Cannot draw stroke on box objects with more than 4 detailX or 4 detailY"),this._renderer.createBuffers(s,l)}return this._renderer.drawBuffersScaled(s,e,t,r),this},o.default.prototype.sphere=function(e,t,r){return this._assert3d("sphere"),o.default._validateParameters("sphere",arguments),void 0===e&&(e=50),void 0===t&&(t=24),void 0===r&&(r=16),this.ellipsoid(e,e,e,t,r),this},o.default.prototype.cylinder=function(e,t,r,i,n,a){this._assert3d("cylinder"),o.default._validateParameters("cylinder",arguments),void 0===e&&(e=50),void 0===t&&(t=e),void 0===r&&(r=24),void 0===i&&(i=1),void 0===a&&(a=!0),void 0===n&&(n=!0);var s="cylinder|".concat(r,"|").concat(i,"|").concat(n,"|").concat(a);if(!this._renderer.geometryInHash(s)){var u=new o.default.Geometry(r,i);l.call(u,1,1,1,r,i,n,a),r<=24&&i<=16?u._makeTriangleEdges()._edgesToVertices():this._renderer._doStroke&&console.log("Cannot draw stroke on cylinder objects with more than 24 detailX or 16 detailY"),this._renderer.createBuffers(s,u)}return this._renderer.drawBuffersScaled(s,e,t,e),this},o.default.prototype.cone=function(e,t,r,i,n){this._assert3d("cone"),o.default._validateParameters("cone",arguments),void 0===e&&(e=50),void 0===t&&(t=e),void 0===r&&(r=24),void 0===i&&(i=1),void 0===n&&(n=!0);var a="cone|".concat(r,"|").concat(i,"|").concat(n);if(!this._renderer.geometryInHash(a)){var s=new o.default.Geometry(r,i);l.call(s,1,0,1,r,i,n,!1),r<=24&&i<=16?s._makeTriangleEdges()._edgesToVertices():this._renderer._doStroke&&console.log("Cannot draw stroke on cone objects with more than 24 detailX or 16 detailY"),this._renderer.createBuffers(a,s)}return this._renderer.drawBuffersScaled(a,e,t,e),this},o.default.prototype.ellipsoid=function(e,t,r,i,n){this._assert3d("ellipsoid"),o.default._validateParameters("ellipsoid",arguments),void 0===e&&(e=50),void 0===t&&(t=e),void 0===r&&(r=e),void 0===i&&(i=24),void 0===n&&(n=16);var a="ellipsoid|".concat(i,"|").concat(n);if(!this._renderer.geometryInHash(a)){var s=new o.default.Geometry(i,n,(function(){for(var e=0;e<=this.detailY;e++)for(var t=e/this.detailY,r=Math.PI*t-Math.PI/2,i=Math.cos(r),n=Math.sin(r),a=0;a<=this.detailX;a++){var s=a/this.detailX,l=2*Math.PI*s,u=Math.cos(l),h=Math.sin(l),c=new o.default.Vector(i*h,n,i*u);this.vertices.push(c),this.vertexNormals.push(c),this.uvs.push(s,t)}}));s.computeFaces(),i<=24&&n<=24?s._makeTriangleEdges()._edgesToVertices():this._renderer._doStroke&&console.log("Cannot draw stroke on ellipsoids with more than 24 detailX or 24 detailY"),this._renderer.createBuffers(a,s)}return this._renderer.drawBuffersScaled(a,e,t,r),this},o.default.prototype.torus=function(e,t,r,i){if(this._assert3d("torus"),o.default._validateParameters("torus",arguments),void 0===e)e=50;else if(!e)return;if(void 0===t)t=10;else if(!t)return;void 0===r&&(r=24),void 0===i&&(i=16);var n=(t/e).toPrecision(4),a="torus|".concat(n,"|").concat(r,"|").concat(i);if(!this._renderer.geometryInHash(a)){var s=new o.default.Geometry(r,i,(function(){for(var e=0;e<=this.detailY;e++)for(var t=e/this.detailY,r=2*Math.PI*t,i=Math.cos(r),a=Math.sin(r),s=1+n*i,l=0;l<=this.detailX;l++){var u=l/this.detailX,h=2*Math.PI*u,c=Math.cos(h),d=Math.sin(h),f=new o.default.Vector(s*c,s*d,n*a),p=new o.default.Vector(i*c,i*d,a);this.vertices.push(f),this.vertexNormals.push(p),this.uvs.push(u,t)}}));s.computeFaces(),r<=24&&i<=16?s._makeTriangleEdges()._edgesToVertices():this._renderer._doStroke&&console.log("Cannot draw strokes on torus object with more than 24 detailX or 16 detailY"),this._renderer.createBuffers(a,s)}return this._renderer.drawBuffersScaled(a,e,e,e),this},o.default.RendererGL.prototype.point=function(e,t,r){void 0===r&&(r=0);var i=[];return i.push(new o.default.Vector(e,t,r)),this._drawPoints(i,this.immediateMode.buffers.point),this},o.default.RendererGL.prototype.triangle=function(e){var t=e[0],r=e[1],i=e[2],n=e[3],a=e[4],s=e[5];if(!this.geometryInHash("tri")){var l=new o.default.Geometry(1,1,(function(){var e=[];e.push(new o.default.Vector(0,0,0)),e.push(new o.default.Vector(0,1,0)),e.push(new o.default.Vector(1,0,0)),this.strokeIndices=[[0,1],[1,2],[2,0]],this.vertices=e,this.faces=[[0,1,2]],this.uvs=[0,0,0,1,1,1]}));l._makeTriangleEdges()._edgesToVertices(),l.computeNormals(),this.createBuffers("tri",l)}var u=this.uMVMatrix.copy();try{var h=new o.default.Matrix([i-t,n-r,0,0,a-t,s-r,0,0,0,0,1,0,t,r,0,1]).mult(this.uMVMatrix);this.uMVMatrix=h,this.drawBuffers("tri")}finally{this.uMVMatrix=u}return this},o.default.RendererGL.prototype.ellipse=function(e){this.arc(e[0],e[1],e[2],e[3],0,a.TWO_PI,a.OPEN,e[4])},o.default.RendererGL.prototype.arc=function(e){var t,r=e,i=arguments[1],n=arguments[2],s=arguments[3],l=arguments[4],u=arguments[5],h=arguments[6],c=arguments[7]||25;if(t=Math.abs(u-l)>=a.TWO_PI?"".concat("ellipse","|").concat(c,"|"):"".concat("arc","|").concat(l,"|").concat(u,"|").concat(h,"|").concat(c,"|"),!this.geometryInHash(t)){var d=new o.default.Geometry(c,1,(function(){if(this.strokeIndices=[],l.toFixed(10)!==u.toFixed(10)){h!==a.PIE&&void 0!==h||(this.vertices.push(new o.default.Vector(.5,.5,0)),this.uvs.push([.5,.5]));for(var e=0;e<=c;e++){var t=e/c*(u-l)+l,r=.5+Math.cos(t)/2,i=.5+Math.sin(t)/2;this.vertices.push(new o.default.Vector(r,i,0)),this.uvs.push([r,i]),e<c-1&&(this.faces.push([0,e+1,e+2]),this.strokeIndices.push([e+1,e+2]))}switch(h){case a.PIE:this.faces.push([0,this.vertices.length-2,this.vertices.length-1]),this.strokeIndices.push([0,1]),this.strokeIndices.push([this.vertices.length-2,this.vertices.length-1]),this.strokeIndices.push([0,this.vertices.length-1]);break;case a.CHORD:this.strokeIndices.push([0,1]),this.strokeIndices.push([0,this.vertices.length-1]);break;case a.OPEN:this.strokeIndices.push([0,1]);break;default:this.faces.push([0,this.vertices.length-2,this.vertices.length-1]),this.strokeIndices.push([this.vertices.length-2,this.vertices.length-1])}}}));d.computeNormals(),c<=50?d._makeTriangleEdges()._edgesToVertices(d):this._renderer._doStroke&&console.log("Cannot stroke ${shape} with more than 50 detail"),this.createBuffers(t,d)}var f=this.uMVMatrix.copy();try{this.uMVMatrix.translate([r,i,0]),this.uMVMatrix.scale(n,s,1),this.drawBuffers(t)}finally{this.uMVMatrix=f}return this},o.default.RendererGL.prototype.rect=function(e){var t=this._pInst._glAttributes.perPixelLighting,r=e[0],i=e[1],n=e[2],a=e[3],s=e[4]||(t?1:24),l=e[5]||(t?1:16),u="rect|".concat(s,"|").concat(l);if(!this.geometryInHash(u)){var h=new o.default.Geometry(s,l,(function(){for(var e=0;e<=this.detailY;e++)for(var t=e/this.detailY,r=0;r<=this.detailX;r++){var i=r/this.detailX,n=new o.default.Vector(i,t,0);this.vertices.push(n),this.uvs.push(i,t)}0<s&&0<l&&(this.strokeIndices=[[0,s],[s,(s+1)*(l+1)-1],[(s+1)*(l+1)-1,(s+1)*l],[(s+1)*l,0]])}));h.computeFaces().computeNormals()._makeTriangleEdges()._edgesToVertices(),this.createBuffers(u,h)}var c=this.uMVMatrix.copy();try{this.uMVMatrix.translate([r,i,0]),this.uMVMatrix.scale(n,a,1),this.drawBuffers(u)}finally{this.uMVMatrix=c}return this},o.default.RendererGL.prototype.quad=function(e,t,r,i,n,a,s,l,u,h,c,d){var f="quad|".concat(e,"|").concat(t,"|").concat(r,"|").concat(i,"|").concat(n,"|").concat(a,"|").concat(s,"|").concat(l,"|").concat(u,"|").concat(h,"|").concat(c,"|").concat(d);if(!this.geometryInHash(f)){var p=new o.default.Geometry(2,2,(function(){this.vertices.push(new o.default.Vector(e,t,r)),this.vertices.push(new o.default.Vector(i,n,a)),this.vertices.push(new o.default.Vector(s,l,u)),this.vertices.push(new o.default.Vector(h,c,d)),this.uvs.push(0,0,1,0,1,1,0,1),this.strokeIndices=[[0,1],[1,2],[2,3],[3,0]]}));p.computeNormals()._makeTriangleEdges()._edgesToVertices(),p.faces=[[0,1,2],[2,3,0]],this.createBuffers(f,p)}return this.drawBuffers(f),this},o.default.RendererGL.prototype.bezier=function(e,t,r,i,n,o,a,s,l,u,h,c){8===arguments.length&&(h=s,u=a,s=o,a=n,n=i,i=r,r=o=l=c=0);var d=this._pInst._bezierDetail||20;this.beginShape();for(var f=0;f<=d;f++){var p=Math.pow(1-f/d,3),m=f/d*3*Math.pow(1-f/d,2),y=3*Math.pow(f/d,2)*(1-f/d),v=Math.pow(f/d,3);this.vertex(e*p+i*m+a*y+u*v,t*p+n*m+s*y+h*v,r*p+o*m+l*y+c*v)}return this.endShape(),this},o.default.RendererGL.prototype.curve=function(e,t,r,i,n,o,a,s,l,u,h,c){8===arguments.length&&(u=a,h=s,a=n,s=i,n=i=r,r=o=l=c=0);var d=this._pInst._curveDetail;this.beginShape();for(var f=0;f<=d;f++){var p=.5*Math.pow(f/d,3),m=.5*Math.pow(f/d,2),y=f/d*.5,v=p*(3*i-e-3*a+u)+m*(2*e-5*i+4*a-u)+y*(-e+a)+2*i*.5,g=p*(3*n-t-3*s+h)+m*(2*t-5*n+4*s-h)+y*(-t+s)+2*n*.5,b=p*(3*o-r-3*l+c)+m*(2*r-5*o+4*l-c)+y*(-r+l)+2*o*.5;this.vertex(v,g,b)}return this.endShape(),this},o.default.RendererGL.prototype.line=function(){return 6===arguments.length?(this.beginShape(a.LINES),this.vertex(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2]),this.vertex(arguments.length<=3?void 0:arguments[3],arguments.length<=4?void 0:arguments[4],arguments.length<=5?void 0:arguments[5]),this.endShape()):4===arguments.length&&(this.beginShape(a.LINES),this.vertex(arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],0),this.vertex(arguments.length<=2?void 0:arguments[2],arguments.length<=3?void 0:arguments[3],0),this.endShape()),this},o.default.RendererGL.prototype.bezierVertex=function(){if(0===this.immediateMode._bezierVertex.length)throw Error("vertex() must be used once before calling bezierVertex()");var e,t,r,i,n,o=[],a=[],s=[],l=arguments.length;if((e=0)===this._lookUpTableBezier.length||this._lutBezierDetail!==this._pInst._curveDetail){this._lookUpTableBezier=[],this._lutBezierDetail=this._pInst._curveDetail;for(var u=1/this._lutBezierDetail,h=0,c=1,d=0;h<1;){if(e=parseFloat(h.toFixed(6)),this._lookUpTableBezier[d]=this._bezierCoefficients(e),c.toFixed(6)===u.toFixed(6)){e=parseFloat(c.toFixed(6))+parseFloat(h.toFixed(6)),++d,this._lookUpTableBezier[d]=this._bezierCoefficients(e);break}h+=u,c-=u,++d}}var f=this._lookUpTableBezier.length;if(6===l){for(this.isBezier=!0,o=[this.immediateMode._bezierVertex[0],arguments.length<=0?void 0:arguments[0],arguments.length<=2?void 0:arguments[2],arguments.length<=4?void 0:arguments[4]],a=[this.immediateMode._bezierVertex[1],arguments.length<=1?void 0:arguments[1],arguments.length<=3?void 0:arguments[3],arguments.length<=5?void 0:arguments[5]],n=0;n<f;n++)t=o[0]*this._lookUpTableBezier[n][0]+o[1]*this._lookUpTableBezier[n][1]+o[2]*this._lookUpTableBezier[n][2]+o[3]*this._lookUpTableBezier[n][3],r=a[0]*this._lookUpTableBezier[n][0]+a[1]*this._lookUpTableBezier[n][1]+a[2]*this._lookUpTableBezier[n][2]+a[3]*this._lookUpTableBezier[n][3],this.vertex(t,r);this.immediateMode._bezierVertex[0]=arguments.length<=4?void 0:arguments[4],this.immediateMode._bezierVertex[1]=arguments.length<=5?void 0:arguments[5]}else if(9===l){for(this.isBezier=!0,o=[this.immediateMode._bezierVertex[0],arguments.length<=0?void 0:arguments[0],arguments.length<=3?void 0:arguments[3],arguments.length<=6?void 0:arguments[6]],a=[this.immediateMode._bezierVertex[1],arguments.length<=1?void 0:arguments[1],arguments.length<=4?void 0:arguments[4],arguments.length<=7?void 0:arguments[7]],s=[this.immediateMode._bezierVertex[2],arguments.length<=2?void 0:arguments[2],arguments.length<=5?void 0:arguments[5],arguments.length<=8?void 0:arguments[8]],n=0;n<f;n++)t=o[0]*this._lookUpTableBezier[n][0]+o[1]*this._lookUpTableBezier[n][1]+o[2]*this._lookUpTableBezier[n][2]+o[3]*this._lookUpTableBezier[n][3],r=a[0]*this._lookUpTableBezier[n][0]+a[1]*this._lookUpTableBezier[n][1]+a[2]*this._lookUpTableBezier[n][2]+a[3]*this._lookUpTableBezier[n][3],i=s[0]*this._lookUpTableBezier[n][0]+s[1]*this._lookUpTableBezier[n][1]+s[2]*this._lookUpTableBezier[n][2]+s[3]*this._lookUpTableBezier[n][3],this.vertex(t,r,i);this.immediateMode._bezierVertex[0]=arguments.length<=6?void 0:arguments[6],this.immediateMode._bezierVertex[1]=arguments.length<=7?void 0:arguments[7],this.immediateMode._bezierVertex[2]=arguments.length<=8?void 0:arguments[8]}},o.default.RendererGL.prototype.quadraticVertex=function(){if(0===this.immediateMode._quadraticVertex.length)throw Error("vertex() must be used once before calling quadraticVertex()");var e,t,r,i,n,o=[],a=[],s=[],l=arguments.length;if((e=0)===this._lookUpTableQuadratic.length||this._lutQuadraticDetail!==this._pInst._curveDetail){this._lookUpTableQuadratic=[],this._lutQuadraticDetail=this._pInst._curveDetail;for(var u=1/this._lutQuadraticDetail,h=0,c=1,d=0;h<1;){if(e=parseFloat(h.toFixed(6)),this._lookUpTableQuadratic[d]=this._quadraticCoefficients(e),c.toFixed(6)===u.toFixed(6)){e=parseFloat(c.toFixed(6))+parseFloat(h.toFixed(6)),++d,this._lookUpTableQuadratic[d]=this._quadraticCoefficients(e);break}h+=u,c-=u,++d}}var f=this._lookUpTableQuadratic.length;if(4===l){for(this.isQuadratic=!0,o=[this.immediateMode._quadraticVertex[0],arguments.length<=0?void 0:arguments[0],arguments.length<=2?void 0:arguments[2]],a=[this.immediateMode._quadraticVertex[1],arguments.length<=1?void 0:arguments[1],arguments.length<=3?void 0:arguments[3]],n=0;n<f;n++)t=o[0]*this._lookUpTableQuadratic[n][0]+o[1]*this._lookUpTableQuadratic[n][1]+o[2]*this._lookUpTableQuadratic[n][2],r=a[0]*this._lookUpTableQuadratic[n][0]+a[1]*this._lookUpTableQuadratic[n][1]+a[2]*this._lookUpTableQuadratic[n][2],this.vertex(t,r);this.immediateMode._quadraticVertex[0]=arguments.length<=2?void 0:arguments[2],this.immediateMode._quadraticVertex[1]=arguments.length<=3?void 0:arguments[3]}else if(6===l){for(this.isQuadratic=!0,o=[this.immediateMode._quadraticVertex[0],arguments.length<=0?void 0:arguments[0],arguments.length<=3?void 0:arguments[3]],a=[this.immediateMode._quadraticVertex[1],arguments.length<=1?void 0:arguments[1],arguments.length<=4?void 0:arguments[4]],s=[this.immediateMode._quadraticVertex[2],arguments.length<=2?void 0:arguments[2],arguments.length<=5?void 0:arguments[5]],n=0;n<f;n++)t=o[0]*this._lookUpTableQuadratic[n][0]+o[1]*this._lookUpTableQuadratic[n][1]+o[2]*this._lookUpTableQuadratic[n][2],r=a[0]*this._lookUpTableQuadratic[n][0]+a[1]*this._lookUpTableQuadratic[n][1]+a[2]*this._lookUpTableQuadratic[n][2],i=s[0]*this._lookUpTableQuadratic[n][0]+s[1]*this._lookUpTableQuadratic[n][1]+s[2]*this._lookUpTableQuadratic[n][2],this.vertex(t,r,i);this.immediateMode._quadraticVertex[0]=arguments.length<=3?void 0:arguments[3],this.immediateMode._quadraticVertex[1]=arguments.length<=4?void 0:arguments[4],this.immediateMode._quadraticVertex[2]=arguments.length<=5?void 0:arguments[5]}},o.default.RendererGL.prototype.curveVertex=function(){var e,t,r,i,n,o=[],a=[],s=[],l=arguments.length;if((e=0)===this._lookUpTableBezier.length||this._lutBezierDetail!==this._pInst._curveDetail){this._lookUpTableBezier=[],this._lutBezierDetail=this._pInst._curveDetail;for(var u=1/this._lutBezierDetail,h=0,c=1,d=0;h<1;){if(e=parseFloat(h.toFixed(6)),this._lookUpTableBezier[d]=this._bezierCoefficients(e),c.toFixed(6)===u.toFixed(6)){e=parseFloat(c.toFixed(6))+parseFloat(h.toFixed(6)),++d,this._lookUpTableBezier[d]=this._bezierCoefficients(e);break}h+=u,c-=u,++d}}var f=this._lookUpTableBezier.length;if(2===l){if(this.immediateMode._curveVertex.push(arguments.length<=0?void 0:arguments[0]),this.immediateMode._curveVertex.push(arguments.length<=1?void 0:arguments[1]),8===this.immediateMode._curveVertex.length){for(this.isCurve=!0,o=this._bezierToCatmull([this.immediateMode._curveVertex[0],this.immediateMode._curveVertex[2],this.immediateMode._curveVertex[4],this.immediateMode._curveVertex[6]]),a=this._bezierToCatmull([this.immediateMode._curveVertex[1],this.immediateMode._curveVertex[3],this.immediateMode._curveVertex[5],this.immediateMode._curveVertex[7]]),n=0;n<f;n++)t=o[0]*this._lookUpTableBezier[n][0]+o[1]*this._lookUpTableBezier[n][1]+o[2]*this._lookUpTableBezier[n][2]+o[3]*this._lookUpTableBezier[n][3],r=a[0]*this._lookUpTableBezier[n][0]+a[1]*this._lookUpTableBezier[n][1]+a[2]*this._lookUpTableBezier[n][2]+a[3]*this._lookUpTableBezier[n][3],this.vertex(t,r);for(n=0;n<l;n++)this.immediateMode._curveVertex.shift()}}else if(3===l&&(this.immediateMode._curveVertex.push(arguments.length<=0?void 0:arguments[0]),this.immediateMode._curveVertex.push(arguments.length<=1?void 0:arguments[1]),this.immediateMode._curveVertex.push(arguments.length<=2?void 0:arguments[2]),12===this.immediateMode._curveVertex.length)){for(this.isCurve=!0,o=this._bezierToCatmull([this.immediateMode._curveVertex[0],this.immediateMode._curveVertex[3],this.immediateMode._curveVertex[6],this.immediateMode._curveVertex[9]]),a=this._bezierToCatmull([this.immediateMode._curveVertex[1],this.immediateMode._curveVertex[4],this.immediateMode._curveVertex[7],this.immediateMode._curveVertex[10]]),s=this._bezierToCatmull([this.immediateMode._curveVertex[2],this.immediateMode._curveVertex[5],this.immediateMode._curveVertex[8],this.immediateMode._curveVertex[11]]),n=0;n<f;n++)t=o[0]*this._lookUpTableBezier[n][0]+o[1]*this._lookUpTableBezier[n][1]+o[2]*this._lookUpTableBezier[n][2]+o[3]*this._lookUpTableBezier[n][3],r=a[0]*this._lookUpTableBezier[n][0]+a[1]*this._lookUpTableBezier[n][1]+a[2]*this._lookUpTableBezier[n][2]+a[3]*this._lookUpTableBezier[n][3],i=s[0]*this._lookUpTableBezier[n][0]+s[1]*this._lookUpTableBezier[n][1]+s[2]*this._lookUpTableBezier[n][2]+s[3]*this._lookUpTableBezier[n][3],this.vertex(t,r,i);for(n=0;n<l;n++)this.immediateMode._curveVertex.shift()}},o.default.RendererGL.prototype.image=function(e,t,r,i,n,o,s,l,u){this._isErasing&&this.blendMode(this._cachedBlendMode),this._pInst.push(),this._pInst.noLights(),this._pInst.texture(e),this._pInst.textureMode(a.NORMAL);var h=0;t<=e.width&&(h=t/e.width);var c=1;t+i<=e.width&&(c=(t+i)/e.width);var d=0;r<=e.height&&(d=r/e.height);var f=1;r+n<=e.height&&(f=(r+n)/e.height),this.beginShape(),this.vertex(o,s,0,h,d),this.vertex(o+l,s,0,c,d),this.vertex(o+l,s+u,0,c,f),this.vertex(o,s+u,0,h,f),this.endShape(a.CLOSE),this._pInst.pop(),this._isErasing&&this.blendMode(a.REMOVE)};var u=o.default;r.default=u},{"../core/constants":26,"../core/main":36,"./p5.Geometry":85}],80:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.prototype.orbitControl=function(e,t,r){if(this._assert3d("orbitControl"),o.default._validateParameters("orbitControl",arguments),this.mouseX<this.width&&0<this.mouseX&&this.mouseY<this.height&&0<this.mouseY){var i=this._renderer._curCamera;void 0===e&&(e=1),void 0===t&&(t=e),void 0===r&&(r=.5),!0!==this.contextMenuDisabled&&(this.canvas.oncontextmenu=function(){return!1},this._setProperty("contextMenuDisabled",!0)),!0!==this.wheelDefaultDisabled&&(this.canvas.onwheel=function(){return!1},this._setProperty("wheelDefaultDisabled",!0));var n=this.height<this.width?this.height:this.width;if(this._mouseWheelDeltaY!==this._pmouseWheelDeltaY&&(0<this._mouseWheelDeltaY?this._renderer._curCamera._orbit(0,0,r*n):this._renderer._curCamera._orbit(0,0,-r*n)),this.mouseIsPressed)if(this.mouseButton===this.LEFT){var a=-e*(this.mouseX-this.pmouseX)/n,s=t*(this.mouseY-this.pmouseY)/n;this._renderer._curCamera._orbit(a,s,0)}else if(this.mouseButton===this.RIGHT){var l=i._getLocalAxes(),u=Math.sqrt(l.x[0]*l.x[0]+l.x[2]*l.x[2]);0!==u&&(l.x[0]/=u,l.x[2]/=u);var h=Math.sqrt(l.y[0]*l.y[0]+l.y[2]*l.y[2]);0!==h&&(l.y[0]/=h,l.y[2]/=h);var c=-1*e*(this.mouseX-this.pmouseX),d=-1*t*(this.mouseY-this.pmouseY);i.setPosition(i.eyeX+c*l.x[0]+d*l.z[0],i.eyeY,i.eyeZ+c*l.x[2]+d*l.z[2])}return this}},o.default.prototype.debugMode=function(){this._assert3d("debugMode");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];o.default._validateParameters("debugMode",t);for(var i=this._registeredMethods.post.length-1;0<=i;i--)this._registeredMethods.post[i].toString()!==this._grid().toString()&&this._registeredMethods.post[i].toString()!==this._axesIcon().toString()||this._registeredMethods.post.splice(i,1);t[0]===a.GRID?this.registerMethod("post",this._grid.call(this,t[1],t[2],t[3],t[4],t[5])):t[0]===a.AXES?this.registerMethod("post",this._axesIcon.call(this,t[1],t[2],t[3],t[4])):(this.registerMethod("post",this._grid.call(this,t[0],t[1],t[2],t[3],t[4])),this.registerMethod("post",this._axesIcon.call(this,t[5],t[6],t[7],t[8])))},o.default.prototype.noDebugMode=function(){this._assert3d("noDebugMode");for(var e=this._registeredMethods.post.length-1;0<=e;e--)this._registeredMethods.post[e].toString()!==this._grid().toString()&&this._registeredMethods.post[e].toString()!==this._axesIcon().toString()||this._registeredMethods.post.splice(e,1)},o.default.prototype._grid=function(e,t,r,i,n){void 0===e&&(e=this.width/2),void 0===t&&(t=Math.round(e/30)<4?4:Math.round(e/30)),void 0===r&&(r=0),void 0===i&&(i=0),void 0===n&&(n=0);var o=e/t,a=e/2;return function(){this.push(),this.stroke(255*this._renderer.curStrokeColor[0],255*this._renderer.curStrokeColor[1],255*this._renderer.curStrokeColor[2]),this._renderer.uMVMatrix.set(this._renderer._curCamera.cameraMatrix.mat4[0],this._renderer._curCamera.cameraMatrix.mat4[1],this._renderer._curCamera.cameraMatrix.mat4[2],this._renderer._curCamera.cameraMatrix.mat4[3],this._renderer._curCamera.cameraMatrix.mat4[4],this._renderer._curCamera.cameraMatrix.mat4[5],this._renderer._curCamera.cameraMatrix.mat4[6],this._renderer._curCamera.cameraMatrix.mat4[7],this._renderer._curCamera.cameraMatrix.mat4[8],this._renderer._curCamera.cameraMatrix.mat4[9],this._renderer._curCamera.cameraMatrix.mat4[10],this._renderer._curCamera.cameraMatrix.mat4[11],this._renderer._curCamera.cameraMatrix.mat4[12],this._renderer._curCamera.cameraMatrix.mat4[13],this._renderer._curCamera.cameraMatrix.mat4[14],this._renderer._curCamera.cameraMatrix.mat4[15]);for(var e=0;e<=t;e++)this.beginShape(this.LINES),this.vertex(-a+r,i,e*o-a+n),this.vertex(+a+r,i,e*o-a+n),this.endShape();for(var s=0;s<=t;s++)this.beginShape(this.LINES),this.vertex(s*o-a+r,i,-a+n),this.vertex(s*o-a+r,i,+a+n),this.endShape();this.pop()}},o.default.prototype._axesIcon=function(e,t,r,i){return void 0===e&&(e=40<this.width/20?this.width/20:40),void 0===t&&(t=-this.width/4),void 0===r&&(r=t),void 0===i&&(i=t),function(){this.push(),this._renderer.uMVMatrix.set(this._renderer._curCamera.cameraMatrix.mat4[0],this._renderer._curCamera.cameraMatrix.mat4[1],this._renderer._curCamera.cameraMatrix.mat4[2],this._renderer._curCamera.cameraMatrix.mat4[3],this._renderer._curCamera.cameraMatrix.mat4[4],this._renderer._curCamera.cameraMatrix.mat4[5],this._renderer._curCamera.cameraMatrix.mat4[6],this._renderer._curCamera.cameraMatrix.mat4[7],this._renderer._curCamera.cameraMatrix.mat4[8],this._renderer._curCamera.cameraMatrix.mat4[9],this._renderer._curCamera.cameraMatrix.mat4[10],this._renderer._curCamera.cameraMatrix.mat4[11],this._renderer._curCamera.cameraMatrix.mat4[12],this._renderer._curCamera.cameraMatrix.mat4[13],this._renderer._curCamera.cameraMatrix.mat4[14],this._renderer._curCamera.cameraMatrix.mat4[15]),this.strokeWeight(2),this.stroke(255,0,0),this.beginShape(this.LINES),this.vertex(t,r,i),this.vertex(t+e,r,i),this.endShape(),this.stroke(0,255,0),this.beginShape(this.LINES),this.vertex(t,r,i),this.vertex(t,r+e,i),this.endShape(),this.stroke(0,0,255),this.beginShape(this.LINES),this.vertex(t,r,i),this.vertex(t,r,i+e),this.endShape(),this.pop()}};var l=o.default;r.default=l},{"../core/constants":26,"../core/main":36}],81:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.ambientLight=function(e,t,r,i){this._assert3d("ambientLight"),n.default._validateParameters("ambientLight",arguments);var o=this.color.apply(this,arguments);return this._renderer.ambientLightColors.push(o._array[0],o._array[1],o._array[2]),this._renderer._enableLighting=!0,this},n.default.prototype.specularColor=function(e,t,r){this._assert3d("specularColor"),n.default._validateParameters("specularColor",arguments);var i=this.color.apply(this,arguments);return this._renderer.specularColors=[i._array[0],i._array[1],i._array[2]],this},n.default.prototype.directionalLight=function(e,t,r,i,o,a){var s,l,u,h;this._assert3d("directionalLight"),n.default._validateParameters("directionalLight",arguments),s=e instanceof n.default.Color?e:this.color(e,t,r);var c=arguments[arguments.length-1];h="number"==typeof c?(l=arguments[arguments.length-3],u=arguments[arguments.length-2],arguments[arguments.length-1]):(l=c.x,u=c.y,c.z);var d=Math.sqrt(l*l+u*u+h*h);return this._renderer.directionalLightDirections.push(l/d,u/d,h/d),this._renderer.directionalLightDiffuseColors.push(s._array[0],s._array[1],s._array[2]),Array.prototype.push.apply(this._renderer.directionalLightSpecularColors,this._renderer.specularColors),this._renderer._enableLighting=!0,this},n.default.prototype.pointLight=function(e,t,r,i,o,a){var s,l,u,h;this._assert3d("pointLight"),n.default._validateParameters("pointLight",arguments),s=e instanceof n.default.Color?e:this.color(e,t,r);var c=arguments[arguments.length-1];return h="number"==typeof c?(l=arguments[arguments.length-3],u=arguments[arguments.length-2],arguments[arguments.length-1]):(l=c.x,u=c.y,c.z),this._renderer.pointLightPositions.push(l,u,h),this._renderer.pointLightDiffuseColors.push(s._array[0],s._array[1],s._array[2]),Array.prototype.push.apply(this._renderer.pointLightSpecularColors,this._renderer.specularColors),this._renderer._enableLighting=!0,this},n.default.prototype.lights=function(){return this._assert3d("lights"),this.ambientLight(128,128,128),this.directionalLight(128,128,128,0,0,-1),this},n.default.prototype.lightFalloff=function(e,t,r){return this._assert3d("lightFalloff"),n.default._validateParameters("lightFalloff",arguments),e<0&&(e=0,console.warn("Value of constant argument in lightFalloff() should be never be negative. Set to 0.")),t<0&&(t=0,console.warn("Value of linear argument in lightFalloff() should be never be negative. Set to 0.")),r<0&&(r=0,console.warn("Value of quadratic argument in lightFalloff() should be never be negative. Set to 0.")),0===e&&0===t&&0===r&&(e=1,console.warn("Either one of the three arguments in lightFalloff() should be greater than zero. Set constant argument to 1.")),this._renderer.constantAttenuation=e,this._renderer.linearAttenuation=t,this._renderer.quadraticAttenuation=r,this},n.default.prototype.spotLight=function(e,t,r,i,o,a,s,l,u,h,c){var d,f,p;this._assert3d("spotLight"),n.default._validateParameters("spotLight",arguments);var m=arguments.length;switch(m){case 11:case 10:d=this.color(e,t,r),f=new n.default.Vector(i,o,a),p=new n.default.Vector(s,l,u);break;case 9:e instanceof n.default.Color?(d=e,f=new n.default.Vector(t,r,i),p=new n.default.Vector(o,a,s),h=l,c=u):i instanceof n.default.Vector?(d=this.color(e,t,r),f=i,p=new n.default.Vector(o,a,s),h=l,c=u):s instanceof n.default.Vector?(d=this.color(e,t,r),f=new n.default.Vector(i,o,a),p=s,h=l,c=u):(d=this.color(e,t,r),f=new n.default.Vector(i,o,a),p=new n.default.Vector(s,l,u));break;case 8:p=e instanceof n.default.Color?(d=e,f=new n.default.Vector(t,r,i),new n.default.Vector(o,a,s)):i instanceof n.default.Vector?(d=this.color(e,t,r),f=i,new n.default.Vector(o,a,s)):(d=this.color(e,t,r),f=new n.default.Vector(i,o,a),s),h=l;break;case 7:e instanceof n.default.Color&&t instanceof n.default.Vector?(d=e,f=t,p=new n.default.Vector(r,i,o),h=a,c=s):e instanceof n.default.Color&&o instanceof n.default.Vector?(d=e,f=new n.default.Vector(t,r,i),p=o,h=a,c=s):i instanceof n.default.Vector&&o instanceof n.default.Vector?(d=this.color(e,t,r),f=i,p=o,h=a,c=s):p=e instanceof n.default.Color?(d=e,f=new n.default.Vector(t,r,i),new n.default.Vector(o,a,s)):i instanceof n.default.Vector?(d=this.color(e,t,r),f=i,new n.default.Vector(o,a,s)):(d=this.color(e,t,r),f=new n.default.Vector(i,o,a),s);break;case 6:i instanceof n.default.Vector&&o instanceof n.default.Vector?(d=this.color(e,t,r),f=i,p=o,h=a):e instanceof n.default.Color&&o instanceof n.default.Vector?(d=e,f=new n.default.Vector(t,r,i),p=o,h=a):e instanceof n.default.Color&&t instanceof n.default.Vector&&(d=e,f=t,p=new n.default.Vector(r,i,o),h=a);break;case 5:e instanceof n.default.Color&&t instanceof n.default.Vector&&r instanceof n.default.Vector?(d=e,f=t,p=r,h=i,c=o):i instanceof n.default.Vector&&o instanceof n.default.Vector?(d=this.color(e,t,r),f=i,p=o):e instanceof n.default.Color&&o instanceof n.default.Vector?(d=e,f=new n.default.Vector(t,r,i),p=o):e instanceof n.default.Color&&t instanceof n.default.Vector&&(d=e,f=t,p=new n.default.Vector(r,i,o));break;case 4:d=e,f=t,p=r,h=i;break;case 3:d=e,f=t,p=r;break;default:return console.warn("Sorry, input for spotlight() is not in prescribed format. Too ".concat(m<3?"few":"many"," arguments were provided")),this}return this._renderer.spotLightDiffuseColors.push(d._array[0],d._array[1],d._array[2]),Array.prototype.push.apply(this._renderer.spotLightSpecularColors,this._renderer.specularColors),this._renderer.spotLightPositions.push(f.x,f.y,f.z),p.normalize(),this._renderer.spotLightDirections.push(p.x,p.y,p.z),void 0===h&&(h=Math.PI/3),void 0!==c&&c<1?(c=1,console.warn("Value of concentration needs to be greater than 1. Setting it to 1")):void 0===c&&(c=100),h=this._renderer._pInst._toRadians(h),this._renderer.spotLightAngle.push(Math.cos(h)),this._renderer.spotLightConc.push(c),this._renderer._enableLighting=!0,this},n.default.prototype.noLights=function(){return this._assert3d("noLights"),n.default._validateParameters("noLights",arguments),this._renderer._enableLighting=!1,this._renderer.ambientLightColors.length=0,this._renderer.specularColors=[1,1,1],this._renderer.directionalLightDirections.length=0,this._renderer.directionalLightDiffuseColors.length=0,this._renderer.directionalLightSpecularColors.length=0,this._renderer.pointLightPositions.length=0,this._renderer.pointLightDiffuseColors.length=0,this._renderer.pointLightSpecularColors.length=0,this._renderer.spotLightPositions.length=0,this._renderer.spotLightDirections.length=0,this._renderer.spotLightDiffuseColors.length=0,this._renderer.spotLightSpecularColors.length=0,this._renderer.spotLightAngle.length=0,this._renderer.spotLightConc.length=0,this._renderer.constantAttenuation=1,this._renderer.linearAttenuation=0,this._renderer.quadraticAttenuation=0,this._renderer._useShininess=1,this};var o=n.default;r.default=o},{"../core/main":36}],82:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};function o(e,t,r){for(var i=0,n=e.length;i<n;i++)if(e[i]!==t.getUint8(r+i,!1))return!1;return!0}e("./p5.Geometry"),n.default.prototype.loadModel=function(e){var t,r,i;n.default._validateParameters("loadModel",arguments);var a=e.slice(-4);"boolean"==typeof arguments[1]?(t=arguments[1],r=arguments[2],i=arguments[3],void 0!==arguments[4]&&(a=arguments[4])):(t=!1,r=arguments[1],i=arguments[2],void 0!==arguments[3]&&(a=arguments[3]));var s=new n.default.Geometry;s.gid="".concat(e,"|").concat(t);var l=this;return a.match(/\.stl$/i)?this.httpDo(e,"GET","arrayBuffer",(function(e){!function(e,t){if(function(e){for(var t=new DataView(e),r=[115,111,108,105,100],i=0;i<5;i++)if(o(r,t,i))return!1;return!0}(t))!function(e,t){for(var r,i,o,a,s,l,u,h=new DataView(t),c=h.getUint32(80,!0),d=!1,f=0;f<70;f++)1129270351===h.getUint32(f,!1)&&82===h.getUint8(f+4)&&61===h.getUint8(f+5)&&(d=!0,a=[],s=h.getUint8(f+6)/255,l=h.getUint8(f+7)/255,u=h.getUint8(f+8)/255);for(var p=0;p<c;p++){var m=84+50*p,y=h.getFloat32(m,!0),v=h.getFloat32(4+m,!0),g=h.getFloat32(8+m,!0);if(d){var b=h.getUint16(48+m,!0);o=0==(32768&b)?(r=(31&b)/31,i=(b>>5&31)/31,(b>>10&31)/31):(r=s,i=l,u)}for(var _=new n.default.Vector(y,v,g),x=1;x<=3;x++){var w=m+12*x,S=new n.default.Vector(h.getFloat32(w,!0),h.getFloat32(4+w,!0),h.getFloat32(8+w,!0));e.vertices.push(S),e.vertexNormals.push(_),d&&a.push(r,i,o)}e.faces.push([3*p,3*p+1,3*p+2]),e.uvs.push([0,0],[0,0],[0,0])}}(e,t);else{var r=new DataView(t);if(!("TextDecoder"in window))return console.warn("Sorry, ASCII STL loading only works in browsers that support TextDecoder (https://caniuse.com/#feat=textencoder)");!function(e,t){for(var r,i,o="",a=[],s=0;s<t.length;++s){for(var l=t[s].trim(),u=l.split(" "),h=0;h<u.length;++h)""===u[h]&&u.splice(h,1);if(0!==u.length)switch(o){case"":if("solid"!==u[0])return console.error(l),console.error('Invalid state "'.concat(u[0],'", should be "solid"'));o="solid";break;case"solid":if("facet"!==u[0]||"normal"!==u[1])return console.error(l),console.error('Invalid state "'.concat(u[0],'", should be "facet normal"'));r=new n.default.Vector(parseFloat(u[2]),parseFloat(u[3]),parseFloat(u[4])),e.vertexNormals.push(r,r,r),o="facet normal";break;case"facet normal":if("outer"!==u[0]||"loop"!==u[1])return console.error(l),console.error('Invalid state "'.concat(u[0],'", should be "outer loop"'));o="vertex";break;case"vertex":if("vertex"===u[0])i=new n.default.Vector(parseFloat(u[1]),parseFloat(u[2]),parseFloat(u[3])),e.vertices.push(i),e.uvs.push([0,0]),a.push(e.vertices.indexOf(i));else{if("endloop"!==u[0])return console.error(l),console.error('Invalid state "'.concat(u[0],'", should be "vertex" or "endloop"'));e.faces.push(a),a=[],o="endloop"}break;case"endloop":if("endfacet"!==u[0])return console.error(l),console.error('Invalid state "'.concat(u[0],'", should be "endfacet"'));o="endfacet";break;case"endfacet":if("endsolid"!==u[0]){if("facet"!==u[0]||"normal"!==u[1])return console.error(l),console.error('Invalid state "'.concat(u[0],'", should be "endsolid" or "facet normal"'));r=new n.default.Vector(parseFloat(u[2]),parseFloat(u[3]),parseFloat(u[4])),e.vertexNormals.push(r,r,r),o="facet normal"}break;default:console.error('Invalid state "'.concat(o,'"'))}}}(e,new TextDecoder("utf-8").decode(r).split("\n"))}}(s,e),t&&s.normalize(),l._decrementPreload(),"function"==typeof r&&r(s)}),i):a.match(/\.obj$/i)?this.loadStrings(e,(function(e){!function(e,t){for(var r={v:[],vt:[],vn:[]},i={},o=0;o<t.length;++o){var a=t[o].trim().split(/\b\s+/);if(0<a.length)if("v"===a[0]||"vn"===a[0]){var s=new n.default.Vector(parseFloat(a[1]),parseFloat(a[2]),parseFloat(a[3]));r[a[0]].push(s)}else if("vt"===a[0]){var l=[parseFloat(a[1]),parseFloat(a[2])];r[a[0]].push(l)}else if("f"===a[0])for(var u=3;u<a.length;++u){for(var h=[],c=[1,u-1,u],d=0;d<c.length;++d){var f=a[c[d]],p=0;if(void 0!==i[f])p=i[f];else{for(var m=f.split("/"),y=0;y<m.length;y++)m[y]=parseInt(m[y])-1;p=i[f]=e.vertices.length,e.vertices.push(r.v[m[0]].copy()),r.vt[m[1]]?e.uvs.push(r.vt[m[1]].slice()):e.uvs.push([0,0]),r.vn[m[2]]&&e.vertexNormals.push(r.vn[m[2]].copy())}h.push(p)}h[0]!==h[1]&&h[0]!==h[2]&&h[1]!==h[2]&&e.faces.push(h)}}0===e.vertexNormals.length&&e.computeNormals()}(s,e),t&&s.normalize(),l._decrementPreload(),"function"==typeof r&&r(s)}),i):(n.default._friendlyFileLoadError(3,e),i?i():console.error("Sorry, the file type is invalid. Only OBJ and STL files are supported.")),s},n.default.prototype.model=function(e){this._assert3d("model"),n.default._validateParameters("model",arguments),0<e.vertices.length&&(this._renderer.geometryInHash(e.gid)||(e._makeTriangleEdges()._edgesToVertices(),this._renderer.createBuffers(e.gid,e)),this._renderer.drawBuffers(e.gid))};var a=n.default;r.default=a},{"../core/main":36,"./p5.Geometry":85}],83:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}e("./p5.Texture"),o.default.prototype.loadShader=function(e,t,r,i){function n(){s._decrementPreload(),r&&r(a)}o.default._validateParameters("loadShader",arguments),i=i||console.error;var a=new o.default.Shader,s=this,l=!1,u=!1;return this.loadStrings(e,(function(e){a._vertSrc=e.join("\n"),u=!0,l&&n()}),i),this.loadStrings(t,(function(e){a._fragSrc=e.join("\n"),l=!0,u&&n()}),i),a},o.default.prototype.createShader=function(e,t){return this._assert3d("createShader"),o.default._validateParameters("createShader",arguments),new o.default.Shader(this._renderer,e,t)},o.default.prototype.shader=function(e){return this._assert3d("shader"),o.default._validateParameters("shader",arguments),void 0===e._renderer&&(e._renderer=this._renderer),e.isStrokeShader()?this._renderer.userStrokeShader=e:(this._renderer.userFillShader=e,this._renderer._useNormalMaterial=!1),e.init(),this},o.default.prototype.resetShader=function(){return this._renderer.userFillShader=this._renderer.userStrokeShader=null,this},o.default.prototype.normalMaterial=function(){this._assert3d("normalMaterial");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return o.default._validateParameters("normalMaterial",t),this._renderer.drawMode=a.FILL,this._renderer._useSpecularMaterial=!1,this._renderer._useEmissiveMaterial=!1,this._renderer._useNormalMaterial=!0,this._renderer.curFillColor=[1,1,1,1],this._renderer._setProperty("_doFill",!0),this.noStroke(),this},o.default.prototype.texture=function(e){return this._assert3d("texture"),o.default._validateParameters("texture",arguments),e.gifProperties&&e._animateGif(this),this._renderer.drawMode=a.TEXTURE,this._renderer._useSpecularMaterial=!1,this._renderer._useEmissiveMaterial=!1,this._renderer._useNormalMaterial=!1,this._renderer._tex=e,this._renderer._setProperty("_doFill",!0),this},o.default.prototype.textureMode=function(e){e!==a.IMAGE&&e!==a.NORMAL?console.warn("You tried to set ".concat(e," textureMode only supports IMAGE & NORMAL ")):this._renderer.textureMode=e},o.default.prototype.textureWrap=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:e;this._renderer.textureWrapX=e,this._renderer.textureWrapY=t;for(var r=this._renderer.textures,i=0;i<r.length;i++)r[i].setWrapMode(e,t)},o.default.prototype.ambientMaterial=function(e,t,r){this._assert3d("ambientMaterial"),o.default._validateParameters("ambientMaterial",arguments);var i=o.default.prototype.color.apply(this,arguments);return this._renderer.curFillColor=i._array,this._renderer._useSpecularMaterial=!1,this._renderer._useEmissiveMaterial=!1,this._renderer._useNormalMaterial=!1,this._renderer._enableLighting=!0,this._renderer._tex=null,this},o.default.prototype.emissiveMaterial=function(e,t,r,i){this._assert3d("emissiveMaterial"),o.default._validateParameters("emissiveMaterial",arguments);var n=o.default.prototype.color.apply(this,arguments);return this._renderer.curFillColor=n._array,this._renderer._useSpecularMaterial=!1,this._renderer._useEmissiveMaterial=!0,this._renderer._useNormalMaterial=!1,this._renderer._enableLighting=!0,this._renderer._tex=null,this},o.default.prototype.specularMaterial=function(e,t,r,i){this._assert3d("specularMaterial"),o.default._validateParameters("specularMaterial",arguments);var n=o.default.prototype.color.apply(this,arguments);return this._renderer.curFillColor=n._array,this._renderer._useSpecularMaterial=!0,this._renderer._useEmissiveMaterial=!1,this._renderer._useNormalMaterial=!1,this._renderer._enableLighting=!0,this._renderer._tex=null,this},o.default.prototype.shininess=function(e){return this._assert3d("shininess"),o.default._validateParameters("shininess",arguments),e<1&&(e=1),this._renderer._useShininess=e,this},o.default.RendererGL.prototype._applyColorBlend=function(e){var t=this.GL,r=this.drawMode===a.TEXTURE||e[e.length-1]<1||this._isErasing;return r!==this._isBlending&&(r||this.curBlendMode!==a.BLEND&&this.curBlendMode!==a.ADD?t.enable(t.BLEND):t.disable(t.BLEND),t.depthMask(!0),this._isBlending=r),this._applyBlendMode(),e},o.default.RendererGL.prototype._applyBlendMode=function(){if(this._cachedBlendMode!==this.curBlendMode){var e=this.GL;switch(this.curBlendMode){case a.BLEND:case a.ADD:e.blendEquation(e.FUNC_ADD),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);break;case a.REMOVE:e.blendEquation(e.FUNC_REVERSE_SUBTRACT),e.blendFunc(e.SRC_ALPHA,e.DST_ALPHA);break;case a.MULTIPLY:e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ZERO,e.SRC_COLOR,e.ONE,e.ONE);break;case a.SCREEN:e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ONE_MINUS_DST_COLOR,e.ONE,e.ONE,e.ONE);break;case a.EXCLUSION:e.blendEquationSeparate(e.FUNC_ADD,e.FUNC_ADD),e.blendFuncSeparate(e.ONE_MINUS_DST_COLOR,e.ONE_MINUS_SRC_COLOR,e.ONE,e.ONE);break;case a.REPLACE:e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ONE,e.ZERO);break;case a.SUBTRACT:e.blendEquationSeparate(e.FUNC_REVERSE_SUBTRACT,e.FUNC_ADD),e.blendFuncSeparate(e.SRC_ALPHA,e.ONE,e.ONE,e.ONE);break;case a.DARKEST:this.blendExt?(e.blendEquationSeparate(this.blendExt.MIN_EXT,e.FUNC_ADD),e.blendFuncSeparate(e.ONE,e.ONE,e.ONE,e.ONE)):console.warn("blendMode(DARKEST) does not work in your browser in WEBGL mode.");break;case a.LIGHTEST:this.blendExt?(e.blendEquationSeparate(this.blendExt.MAX_EXT,e.FUNC_ADD),e.blendFuncSeparate(e.ONE,e.ONE,e.ONE,e.ONE)):console.warn("blendMode(LIGHTEST) does not work in your browser in WEBGL mode.");break;default:console.error("Oops! Somehow RendererGL set curBlendMode to an unsupported mode.")}this._isErasing||(this._cachedBlendMode=this.curBlendMode)}};var l=o.default;r.default=l},{"../core/constants":26,"../core/main":36,"./p5.Texture":92}],84:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.prototype.camera=function(){var e;this._assert3d("camera");for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return n.default._validateParameters("camera",r),(e=this._renderer._curCamera).camera.apply(e,r),this},n.default.prototype.perspective=function(){var e;this._assert3d("perspective");for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return n.default._validateParameters("perspective",r),(e=this._renderer._curCamera).perspective.apply(e,r),this},n.default.prototype.ortho=function(){var e;this._assert3d("ortho");for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return n.default._validateParameters("ortho",r),(e=this._renderer._curCamera).ortho.apply(e,r),this},n.default.prototype.frustum=function(){var e;this._assert3d("frustum");for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return n.default._validateParameters("frustum",r),(e=this._renderer._curCamera).frustum.apply(e,r),this},n.default.prototype.createCamera=function(){this._assert3d("createCamera");var e=new n.default.Camera(this._renderer);return e._computeCameraDefaultSettings(),e._setDefaultCamera(),this._renderer._curCamera=e},n.default.Camera=function(e){this._renderer=e,this.cameraType="default",this.cameraMatrix=new n.default.Matrix,this.projMatrix=new n.default.Matrix},n.default.Camera.prototype.perspective=function(e,t,r,i){this.cameraType=0<arguments.length?"custom":"default",void 0===e?(e=this.defaultCameraFOV,this.cameraFOV=e):this.cameraFOV=this._renderer._pInst._toRadians(e),void 0===t&&(t=this.defaultAspectRatio),void 0===r&&(r=this.defaultCameraNear),void 0===i&&(i=this.defaultCameraFar),r<=1e-4&&(r=.01,console.log("Avoid perspective near plane values close to or below 0. Setting value to 0.01.")),i<r&&console.log("Perspective far plane value is less than near plane value. Nothing will be shown."),this.aspectRatio=t,this.cameraNear=r,this.cameraFar=i,this.projMatrix=n.default.Matrix.identity();var o=1/Math.tan(this.cameraFOV/2),a=1/(this.cameraNear-this.cameraFar);this.projMatrix.set(o/t,0,0,0,0,-o,0,0,0,0,(i+r)*a,-1,0,0,2*i*r*a,0),this._isActive()&&this._renderer.uPMatrix.set(this.projMatrix.mat4[0],this.projMatrix.mat4[1],this.projMatrix.mat4[2],this.projMatrix.mat4[3],this.projMatrix.mat4[4],this.projMatrix.mat4[5],this.projMatrix.mat4[6],this.projMatrix.mat4[7],this.projMatrix.mat4[8],this.projMatrix.mat4[9],this.projMatrix.mat4[10],this.projMatrix.mat4[11],this.projMatrix.mat4[12],this.projMatrix.mat4[13],this.projMatrix.mat4[14],this.projMatrix.mat4[15])},n.default.Camera.prototype.ortho=function(e,t,r,i,o,a){void 0===e&&(e=-this._renderer.width/2),void 0===t&&(t=this._renderer.width/2),void 0===r&&(r=-this._renderer.height/2),void 0===i&&(i=this._renderer.height/2),void 0===o&&(o=0),void 0===a&&(a=Math.max(this._renderer.width,this._renderer.height));var s=t-e,l=i-r,u=a-o,h=2/s,c=2/l,d=-2/u,f=-(t+e)/s,p=-(i+r)/l,m=-(a+o)/u;this.projMatrix=n.default.Matrix.identity(),this.projMatrix.set(h,0,0,0,0,-c,0,0,0,0,d,0,f,p,m,1),this._isActive()&&this._renderer.uPMatrix.set(this.projMatrix.mat4[0],this.projMatrix.mat4[1],this.projMatrix.mat4[2],this.projMatrix.mat4[3],this.projMatrix.mat4[4],this.projMatrix.mat4[5],this.projMatrix.mat4[6],this.projMatrix.mat4[7],this.projMatrix.mat4[8],this.projMatrix.mat4[9],this.projMatrix.mat4[10],this.projMatrix.mat4[11],this.projMatrix.mat4[12],this.projMatrix.mat4[13],this.projMatrix.mat4[14],this.projMatrix.mat4[15]),this.cameraType="custom"},n.default.Camera.prototype.frustum=function(e,t,r,i,o,a){void 0===e&&(e=-this._renderer.width/2),void 0===t&&(t=this._renderer.width/2),void 0===r&&(r=-this._renderer.height/2),void 0===i&&(i=this._renderer.height/2),void 0===o&&(o=0),void 0===a&&(a=Math.max(this._renderer.width,this._renderer.height));var s=t-e,l=i-r,u=a-o,h=2*o/s,c=2*o/l,d=-2*a*o/u,f=(t+e)/s,p=(i+r)/l,m=-(a+o)/u;this.projMatrix=n.default.Matrix.identity(),this.projMatrix.set(h,0,0,0,0,c,0,0,f,p,m,-1,0,0,d,0),this._isActive()&&this._renderer.uPMatrix.set(this.projMatrix.mat4[0],this.projMatrix.mat4[1],this.projMatrix.mat4[2],this.projMatrix.mat4[3],this.projMatrix.mat4[4],this.projMatrix.mat4[5],this.projMatrix.mat4[6],this.projMatrix.mat4[7],this.projMatrix.mat4[8],this.projMatrix.mat4[9],this.projMatrix.mat4[10],this.projMatrix.mat4[11],this.projMatrix.mat4[12],this.projMatrix.mat4[13],this.projMatrix.mat4[14],this.projMatrix.mat4[15]),this.cameraType="custom"},n.default.Camera.prototype._rotateView=function(e,t,r,i){var o=this.centerX,a=this.centerY,s=this.centerZ;o-=this.eyeX,a-=this.eyeY,s-=this.eyeZ;var l=n.default.Matrix.identity(this._renderer._pInst);l.rotate(this._renderer._pInst._toRadians(e),t,r,i);var u=[o*l.mat4[0]+a*l.mat4[4]+s*l.mat4[8],o*l.mat4[1]+a*l.mat4[5]+s*l.mat4[9],o*l.mat4[2]+a*l.mat4[6]+s*l.mat4[10]];u[0]+=this.eyeX,u[1]+=this.eyeY,u[2]+=this.eyeZ,this.camera(this.eyeX,this.eyeY,this.eyeZ,u[0],u[1],u[2],this.upX,this.upY,this.upZ)},n.default.Camera.prototype.pan=function(e){var t=this._getLocalAxes();this._rotateView(e,t.y[0],t.y[1],t.y[2])},n.default.Camera.prototype.tilt=function(e){var t=this._getLocalAxes();this._rotateView(e,t.x[0],t.x[1],t.x[2])},n.default.Camera.prototype.lookAt=function(e,t,r){this.camera(this.eyeX,this.eyeY,this.eyeZ,e,t,r,this.upX,this.upY,this.upZ)},n.default.Camera.prototype.camera=function(e,t,r,i,n,o,a,s,l){void 0===e&&(e=this.defaultEyeX,t=this.defaultEyeY,r=this.defaultEyeZ,i=e,n=t,s=1,l=a=o=0),this.eyeX=e,this.eyeY=t,this.eyeZ=r,void 0!==i&&(this.centerX=i,this.centerY=n,this.centerZ=o),void 0!==a&&(this.upX=a,this.upY=s,this.upZ=l);var u=this._getLocalAxes();this.cameraMatrix.set(u.x[0],u.y[0],u.z[0],0,u.x[1],u.y[1],u.z[1],0,u.x[2],u.y[2],u.z[2],0,0,0,0,1);var h=-e,c=-t,d=-r;return this.cameraMatrix.translate([h,c,d]),this._isActive()&&this._renderer.uMVMatrix.set(this.cameraMatrix.mat4[0],this.cameraMatrix.mat4[1],this.cameraMatrix.mat4[2],this.cameraMatrix.mat4[3],this.cameraMatrix.mat4[4],this.cameraMatrix.mat4[5],this.cameraMatrix.mat4[6],this.cameraMatrix.mat4[7],this.cameraMatrix.mat4[8],this.cameraMatrix.mat4[9],this.cameraMatrix.mat4[10],this.cameraMatrix.mat4[11],this.cameraMatrix.mat4[12],this.cameraMatrix.mat4[13],this.cameraMatrix.mat4[14],this.cameraMatrix.mat4[15]),this},n.default.Camera.prototype.move=function(e,t,r){var i=this._getLocalAxes(),n=[i.x[0]*e,i.x[1]*e,i.x[2]*e],o=[i.y[0]*t,i.y[1]*t,i.y[2]*t],a=[i.z[0]*r,i.z[1]*r,i.z[2]*r];this.camera(this.eyeX+n[0]+o[0]+a[0],this.eyeY+n[1]+o[1]+a[1],this.eyeZ+n[2]+o[2]+a[2],this.centerX+n[0]+o[0]+a[0],this.centerY+n[1]+o[1]+a[1],this.centerZ+n[2]+o[2]+a[2],0,1,0)},n.default.Camera.prototype.setPosition=function(e,t,r){var i=e-this.eyeX,n=t-this.eyeY,o=r-this.eyeZ;this.camera(e,t,r,this.centerX+i,this.centerY+n,this.centerZ+o,0,1,0)},n.default.Camera.prototype._computeCameraDefaultSettings=function(){this.defaultCameraFOV=60/180*Math.PI,this.defaultAspectRatio=this._renderer.width/this._renderer.height,this.defaultEyeX=0,this.defaultEyeY=0,this.defaultEyeZ=this._renderer.height/2/Math.tan(this.defaultCameraFOV/2),this.defaultCenterX=0,this.defaultCenterY=0,this.defaultCenterZ=0,this.defaultCameraNear=.1*this.defaultEyeZ,this.defaultCameraFar=10*this.defaultEyeZ},n.default.Camera.prototype._setDefaultCamera=function(){this.cameraFOV=this.defaultCameraFOV,this.aspectRatio=this.defaultAspectRatio,this.eyeX=this.defaultEyeX,this.eyeY=this.defaultEyeY,this.eyeZ=this.defaultEyeZ,this.centerX=this.defaultCenterX,this.centerY=this.defaultCenterY,this.centerZ=this.defaultCenterZ,this.upX=0,this.upY=1,this.upZ=0,this.cameraNear=this.defaultCameraNear,this.cameraFar=this.defaultCameraFar,this.perspective(),this.camera(),this.cameraType="default"},n.default.Camera.prototype._resize=function(){"default"===this.cameraType?(this._computeCameraDefaultSettings(),this._setDefaultCamera()):this.perspective(this.cameraFOV,this._renderer.width/this._renderer.height)},n.default.Camera.prototype.copy=function(){var e=new n.default.Camera(this._renderer);return e.cameraFOV=this.cameraFOV,e.aspectRatio=this.aspectRatio,e.eyeX=this.eyeX,e.eyeY=this.eyeY,e.eyeZ=this.eyeZ,e.centerX=this.centerX,e.centerY=this.centerY,e.centerZ=this.centerZ,e.cameraNear=this.cameraNear,e.cameraFar=this.cameraFar,e.cameraType=this.cameraType,e.cameraMatrix=this.cameraMatrix.copy(),e.projMatrix=this.projMatrix.copy(),e},n.default.Camera.prototype._getLocalAxes=function(){var e=this.eyeX-this.centerX,t=this.eyeY-this.centerY,r=this.eyeZ-this.centerZ,i=Math.sqrt(e*e+t*t+r*r);0!==i&&(e/=i,t/=i,r/=i);var n=this.upX,o=this.upY,a=this.upZ,s=o*r-a*t,l=-n*r+a*e,u=n*t-o*e;n=t*u-r*l,o=-e*u+r*s,a=e*l-t*s;var h=Math.sqrt(s*s+l*l+u*u);0!==h&&(s/=h,l/=h,u/=h);var c=Math.sqrt(n*n+o*o+a*a);return 0!==c&&(n/=c,o/=c,a/=c),{x:[s,l,u],y:[n,o,a],z:[e,t,r]}},n.default.Camera.prototype._orbit=function(e,t,r){var i=this.eyeX-this.centerX,n=this.eyeY-this.centerY,o=this.eyeZ-this.centerZ,a=Math.sqrt(i*i+n*n+o*o),s=Math.atan2(i,o),l=Math.acos(Math.max(-1,Math.min(1,n/a)));s+=e,(a+=r)<0&&(a=.1),(l+=t)>Math.PI?l=Math.PI:l<=0&&(l=.001);var u=Math.sin(l)*a*Math.sin(s),h=Math.cos(l)*a,c=Math.sin(l)*a*Math.cos(s);this.camera(u+this.centerX,h+this.centerY,c+this.centerZ,this.centerX,this.centerY,this.centerZ,0,1,0)},n.default.Camera.prototype._isActive=function(){return this===this._renderer._curCamera},n.default.prototype.setCamera=function(e){this._renderer._curCamera=e,this._renderer.uPMatrix.set(e.projMatrix.mat4[0],e.projMatrix.mat4[1],e.projMatrix.mat4[2],e.projMatrix.mat4[3],e.projMatrix.mat4[4],e.projMatrix.mat4[5],e.projMatrix.mat4[6],e.projMatrix.mat4[7],e.projMatrix.mat4[8],e.projMatrix.mat4[9],e.projMatrix.mat4[10],e.projMatrix.mat4[11],e.projMatrix.mat4[12],e.projMatrix.mat4[13],e.projMatrix.mat4[14],e.projMatrix.mat4[15])};var o=n.default.Camera;r.default=o},{"../core/main":36}],85:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.Geometry=function(e,t,r){return this.vertices=[],this.lineVertices=[],this.lineNormals=[],this.vertexNormals=[],this.faces=[],this.uvs=[],this.edges=[],this.vertexColors=[],this.detailX=void 0!==e?e:1,this.detailY=void 0!==t?t:1,this.dirtyFlags={},r instanceof Function&&r.call(this),this},n.default.Geometry.prototype.reset=function(){this.lineVertices.length=0,this.lineNormals.length=0,this.vertices.length=0,this.edges.length=0,this.vertexColors.length=0,this.vertexNormals.length=0,this.uvs.length=0,this.dirtyFlags={}},n.default.Geometry.prototype.computeFaces=function(){this.faces.length=0;for(var e,t,r,i,n=this.detailX+1,o=0;o<this.detailY;o++)for(var a=0;a<this.detailX;a++)t=(e=o*n+a)+1,r=(o+1)*n+a+1,i=(o+1)*n+a,this.faces.push([e,t,i]),this.faces.push([i,t,r]);return this},n.default.Geometry.prototype._getFaceNormal=function(e){var t=this.faces[e],r=this.vertices[t[0]],i=this.vertices[t[1]],o=this.vertices[t[2]],a=n.default.Vector.sub(i,r),s=n.default.Vector.sub(o,r),l=n.default.Vector.cross(a,s),u=n.default.Vector.mag(l),h=u/(n.default.Vector.mag(a)*n.default.Vector.mag(s));return 0===h||isNaN(h)?(console.warn("p5.Geometry.prototype._getFaceNormal:","face has colinear sides or a repeated vertex"),l):(1<h&&(h=1),l.mult(Math.asin(h)/u))},n.default.Geometry.prototype.computeNormals=function(){var e,t=this.vertexNormals,r=this.vertices,i=this.faces;for(e=t.length=0;e<r.length;++e)t.push(new n.default.Vector);for(var o=0;o<i.length;++o)for(var a=i[o],s=this._getFaceNormal(o),l=0;l<3;++l)t[a[l]].add(s);for(e=0;e<r.length;++e)t[e].normalize();return this},n.default.Geometry.prototype.averageNormals=function(){for(var e=0;e<=this.detailY;e++){var t=this.detailX+1,r=n.default.Vector.add(this.vertexNormals[e*t],this.vertexNormals[e*t+this.detailX]);r=n.default.Vector.div(r,2),this.vertexNormals[e*t]=r,this.vertexNormals[e*t+this.detailX]=r}return this},n.default.Geometry.prototype.averagePoleNormals=function(){for(var e=new n.default.Vector(0,0,0),t=0;t<this.detailX;t++)e.add(this.vertexNormals[t]);e=n.default.Vector.div(e,this.detailX);for(var r=0;r<this.detailX;r++)this.vertexNormals[r]=e;e=new n.default.Vector(0,0,0);for(var i=this.vertices.length-1;i>this.vertices.length-1-this.detailX;i--)e.add(this.vertexNormals[i]);e=n.default.Vector.div(e,this.detailX);for(var o=this.vertices.length-1;o>this.vertices.length-1-this.detailX;o--)this.vertexNormals[o]=e;return this},n.default.Geometry.prototype._makeTriangleEdges=function(){if(this.edges.length=0,Array.isArray(this.strokeIndices))for(var e=0,t=this.strokeIndices.length;e<t;e++)this.edges.push(this.strokeIndices[e]);else for(var r=0;r<this.faces.length;r++)this.edges.push([this.faces[r][0],this.faces[r][1]]),this.edges.push([this.faces[r][1],this.faces[r][2]]),this.edges.push([this.faces[r][2],this.faces[r][0]]);return this},n.default.Geometry.prototype._edgesToVertices=function(){this.lineVertices.length=0;for(var e=this.lineNormals.length=0;e<this.edges.length;e++){var t=this.vertices[this.edges[e][0]],r=this.vertices[this.edges[e][1]],i=r.copy().sub(t).normalize(),n=t.array(),o=t.array(),a=r.array(),s=r.array(),l=i.array(),u=i.array();l.push(1),u.push(-1),this.lineNormals.push(l,u,l,l,u,u),this.lineVertices.push(n,o,a,a,o,s)}return this},n.default.Geometry.prototype.normalize=function(){if(0<this.vertices.length){for(var e=this.vertices[0].copy(),t=this.vertices[0].copy(),r=0;r<this.vertices.length;r++)e.x=Math.max(e.x,this.vertices[r].x),t.x=Math.min(t.x,this.vertices[r].x),e.y=Math.max(e.y,this.vertices[r].y),t.y=Math.min(t.y,this.vertices[r].y),e.z=Math.max(e.z,this.vertices[r].z),t.z=Math.min(t.z,this.vertices[r].z);for(var i=n.default.Vector.lerp(e,t,.5),o=n.default.Vector.sub(e,t),a=200/Math.max(Math.max(o.x,o.y),o.z),s=0;s<this.vertices.length;s++)this.vertices[s].sub(i),this.vertices[s].mult(a)}return this};var o=n.default.Geometry;r.default=o},{"../core/main":36}],86:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i},o=Array,a=function(e){return e instanceof Array};"undefined"!=typeof Float32Array&&(o=Float32Array,a=function(e){return e instanceof Array||e instanceof Float32Array}),n.default.Matrix=function(){for(var e=new Array(arguments.length),t=0;t<e.length;++t)e[t]=arguments[t];return e.length&&e[e.length-1]instanceof n.default&&(this.p5=e[e.length-1]),"mat3"===e[0]?this.mat3=Array.isArray(e[1])?e[1]:new o([1,0,0,0,1,0,0,0,1]):this.mat4=Array.isArray(e[0])?e[0]:new o([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this},n.default.Matrix.prototype.set=function(e){return e instanceof n.default.Matrix?this.mat4=e.mat4:a(e)?this.mat4=e:16===arguments.length&&(this.mat4[0]=e,this.mat4[1]=arguments[1],this.mat4[2]=arguments[2],this.mat4[3]=arguments[3],this.mat4[4]=arguments[4],this.mat4[5]=arguments[5],this.mat4[6]=arguments[6],this.mat4[7]=arguments[7],this.mat4[8]=arguments[8],this.mat4[9]=arguments[9],this.mat4[10]=arguments[10],this.mat4[11]=arguments[11],this.mat4[12]=arguments[12],this.mat4[13]=arguments[13],this.mat4[14]=arguments[14],this.mat4[15]=arguments[15]),this},n.default.Matrix.prototype.get=function(){return new n.default.Matrix(this.mat4,this.p5)},n.default.Matrix.prototype.copy=function(){var e=new n.default.Matrix(this.p5);return e.mat4[0]=this.mat4[0],e.mat4[1]=this.mat4[1],e.mat4[2]=this.mat4[2],e.mat4[3]=this.mat4[3],e.mat4[4]=this.mat4[4],e.mat4[5]=this.mat4[5],e.mat4[6]=this.mat4[6],e.mat4[7]=this.mat4[7],e.mat4[8]=this.mat4[8],e.mat4[9]=this.mat4[9],e.mat4[10]=this.mat4[10],e.mat4[11]=this.mat4[11],e.mat4[12]=this.mat4[12],e.mat4[13]=this.mat4[13],e.mat4[14]=this.mat4[14],e.mat4[15]=this.mat4[15],e},n.default.Matrix.identity=function(e){return new n.default.Matrix(e)},n.default.Matrix.prototype.transpose=function(e){var t,r,i,o,s,l;return e instanceof n.default.Matrix?(t=e.mat4[1],r=e.mat4[2],i=e.mat4[3],o=e.mat4[6],s=e.mat4[7],l=e.mat4[11],this.mat4[0]=e.mat4[0],this.mat4[1]=e.mat4[4],this.mat4[2]=e.mat4[8],this.mat4[3]=e.mat4[12],this.mat4[4]=t,this.mat4[5]=e.mat4[5],this.mat4[6]=e.mat4[9],this.mat4[7]=e.mat4[13],this.mat4[8]=r,this.mat4[9]=o,this.mat4[10]=e.mat4[10],this.mat4[11]=e.mat4[14],this.mat4[12]=i,this.mat4[13]=s,this.mat4[14]=l,this.mat4[15]=e.mat4[15]):a(e)&&(t=e[1],r=e[2],i=e[3],o=e[6],s=e[7],l=e[11],this.mat4[0]=e[0],this.mat4[1]=e[4],this.mat4[2]=e[8],this.mat4[3]=e[12],this.mat4[4]=t,this.mat4[5]=e[5],this.mat4[6]=e[9],this.mat4[7]=e[13],this.mat4[8]=r,this.mat4[9]=o,this.mat4[10]=e[10],this.mat4[11]=e[14],this.mat4[12]=i,this.mat4[13]=s,this.mat4[14]=l,this.mat4[15]=e[15]),this},n.default.Matrix.prototype.invert=function(e){var t,r,i,o,s,l,u,h,c,d,f,p,m,y,v,g;e instanceof n.default.Matrix?(t=e.mat4[0],r=e.mat4[1],i=e.mat4[2],o=e.mat4[3],s=e.mat4[4],l=e.mat4[5],u=e.mat4[6],h=e.mat4[7],c=e.mat4[8],d=e.mat4[9],f=e.mat4[10],p=e.mat4[11],m=e.mat4[12],y=e.mat4[13],v=e.mat4[14],g=e.mat4[15]):a(e)&&(t=e[0],r=e[1],i=e[2],o=e[3],s=e[4],l=e[5],u=e[6],h=e[7],c=e[8],d=e[9],f=e[10],p=e[11],m=e[12],y=e[13],v=e[14],g=e[15]);var b=t*l-r*s,_=t*u-i*s,x=t*h-o*s,w=r*u-i*l,S=r*h-o*l,M=i*h-o*u,E=c*y-d*m,T=c*v-f*m,C=c*g-p*m,O=d*v-f*y,P=d*g-p*y,L=f*g-p*v,k=b*L-_*P+x*O+w*C-S*T+M*E;return k?(k=1/k,this.mat4[0]=(l*L-u*P+h*O)*k,this.mat4[1]=(i*P-r*L-o*O)*k,this.mat4[2]=(y*M-v*S+g*w)*k,this.mat4[3]=(f*S-d*M-p*w)*k,this.mat4[4]=(u*C-s*L-h*T)*k,this.mat4[5]=(t*L-i*C+o*T)*k,this.mat4[6]=(v*x-m*M-g*_)*k,this.mat4[7]=(c*M-f*x+p*_)*k,this.mat4[8]=(s*P-l*C+h*E)*k,this.mat4[9]=(r*C-t*P-o*E)*k,this.mat4[10]=(m*S-y*x+g*b)*k,this.mat4[11]=(d*x-c*S-p*b)*k,this.mat4[12]=(l*T-s*O-u*E)*k,this.mat4[13]=(t*O-r*T+i*E)*k,this.mat4[14]=(y*_-m*w-v*b)*k,this.mat4[15]=(c*w-d*_+f*b)*k,this):null},n.default.Matrix.prototype.invert3x3=function(){var e=this.mat3[0],t=this.mat3[1],r=this.mat3[2],i=this.mat3[3],n=this.mat3[4],o=this.mat3[5],a=this.mat3[6],s=this.mat3[7],l=this.mat3[8],u=l*n-o*s,h=-l*i+o*a,c=s*i-n*a,d=e*u+t*h+r*c;return d?(d=1/d,this.mat3[0]=u*d,this.mat3[1]=(-l*t+r*s)*d,this.mat3[2]=(o*t-r*n)*d,this.mat3[3]=h*d,this.mat3[4]=(l*e-r*a)*d,this.mat3[5]=(-o*e+r*i)*d,this.mat3[6]=c*d,this.mat3[7]=(-s*e+t*a)*d,this.mat3[8]=(n*e-t*i)*d,this):null},n.default.Matrix.prototype.transpose3x3=function(e){var t=e[1],r=e[2],i=e[5];return this.mat3[1]=e[3],this.mat3[2]=e[6],this.mat3[3]=t,this.mat3[5]=e[7],this.mat3[6]=r,this.mat3[7]=i,this},n.default.Matrix.prototype.inverseTranspose=function(e){void 0===this.mat3?console.error("sorry, this function only works with mat3"):(this.mat3[0]=e.mat4[0],this.mat3[1]=e.mat4[1],this.mat3[2]=e.mat4[2],this.mat3[3]=e.mat4[4],this.mat3[4]=e.mat4[5],this.mat3[5]=e.mat4[6],this.mat3[6]=e.mat4[8],this.mat3[7]=e.mat4[9],this.mat3[8]=e.mat4[10]);var t=this.invert3x3();if(t)t.transpose3x3(this.mat3);else for(var r=0;r<9;r++)this.mat3[r]=0;return this},n.default.Matrix.prototype.determinant=function(){var e=this.mat4[0]*this.mat4[5]-this.mat4[1]*this.mat4[4],t=this.mat4[0]*this.mat4[6]-this.mat4[2]*this.mat4[4],r=this.mat4[0]*this.mat4[7]-this.mat4[3]*this.mat4[4],i=this.mat4[1]*this.mat4[6]-this.mat4[2]*this.mat4[5],n=this.mat4[1]*this.mat4[7]-this.mat4[3]*this.mat4[5],o=this.mat4[2]*this.mat4[7]-this.mat4[3]*this.mat4[6],a=this.mat4[8]*this.mat4[13]-this.mat4[9]*this.mat4[12],s=this.mat4[8]*this.mat4[14]-this.mat4[10]*this.mat4[12],l=this.mat4[8]*this.mat4[15]-this.mat4[11]*this.mat4[12],u=this.mat4[9]*this.mat4[14]-this.mat4[10]*this.mat4[13],h=this.mat4[9]*this.mat4[15]-this.mat4[11]*this.mat4[13];return e*(this.mat4[10]*this.mat4[15]-this.mat4[11]*this.mat4[14])-t*h+r*u+i*l-n*s+o*a},n.default.Matrix.prototype.mult=function(e){var t;if(e===this||e===this.mat4)t=this.copy().mat4;else if(e instanceof n.default.Matrix)t=e.mat4;else if(a(e))t=e;else{if(16!==arguments.length)return;t=arguments}var r=this.mat4[0],i=this.mat4[1],o=this.mat4[2],s=this.mat4[3];return this.mat4[0]=r*t[0]+i*t[4]+o*t[8]+s*t[12],this.mat4[1]=r*t[1]+i*t[5]+o*t[9]+s*t[13],this.mat4[2]=r*t[2]+i*t[6]+o*t[10]+s*t[14],this.mat4[3]=r*t[3]+i*t[7]+o*t[11]+s*t[15],r=this.mat4[4],i=this.mat4[5],o=this.mat4[6],s=this.mat4[7],this.mat4[4]=r*t[0]+i*t[4]+o*t[8]+s*t[12],this.mat4[5]=r*t[1]+i*t[5]+o*t[9]+s*t[13],this.mat4[6]=r*t[2]+i*t[6]+o*t[10]+s*t[14],this.mat4[7]=r*t[3]+i*t[7]+o*t[11]+s*t[15],r=this.mat4[8],i=this.mat4[9],o=this.mat4[10],s=this.mat4[11],this.mat4[8]=r*t[0]+i*t[4]+o*t[8]+s*t[12],this.mat4[9]=r*t[1]+i*t[5]+o*t[9]+s*t[13],this.mat4[10]=r*t[2]+i*t[6]+o*t[10]+s*t[14],this.mat4[11]=r*t[3]+i*t[7]+o*t[11]+s*t[15],r=this.mat4[12],i=this.mat4[13],o=this.mat4[14],s=this.mat4[15],this.mat4[12]=r*t[0]+i*t[4]+o*t[8]+s*t[12],this.mat4[13]=r*t[1]+i*t[5]+o*t[9]+s*t[13],this.mat4[14]=r*t[2]+i*t[6]+o*t[10]+s*t[14],this.mat4[15]=r*t[3]+i*t[7]+o*t[11]+s*t[15],this},n.default.Matrix.prototype.apply=function(e){var t;if(e===this||e===this.mat4)t=this.copy().mat4;else if(e instanceof n.default.Matrix)t=e.mat4;else if(a(e))t=e;else{if(16!==arguments.length)return;t=arguments}var r=this.mat4,i=r[0],o=r[4],s=r[8],l=r[12];r[0]=t[0]*i+t[1]*o+t[2]*s+t[3]*l,r[4]=t[4]*i+t[5]*o+t[6]*s+t[7]*l,r[8]=t[8]*i+t[9]*o+t[10]*s+t[11]*l,r[12]=t[12]*i+t[13]*o+t[14]*s+t[15]*l;var u=r[1],h=r[5],c=r[9],d=r[13];r[1]=t[0]*u+t[1]*h+t[2]*c+t[3]*d,r[5]=t[4]*u+t[5]*h+t[6]*c+t[7]*d,r[9]=t[8]*u+t[9]*h+t[10]*c+t[11]*d,r[13]=t[12]*u+t[13]*h+t[14]*c+t[15]*d;var f=r[2],p=r[6],m=r[10],y=r[14];r[2]=t[0]*f+t[1]*p+t[2]*m+t[3]*y,r[6]=t[4]*f+t[5]*p+t[6]*m+t[7]*y,r[10]=t[8]*f+t[9]*p+t[10]*m+t[11]*y,r[14]=t[12]*f+t[13]*p+t[14]*m+t[15]*y;var v=r[3],g=r[7],b=r[11],_=r[15];return r[3]=t[0]*v+t[1]*g+t[2]*b+t[3]*_,r[7]=t[4]*v+t[5]*g+t[6]*b+t[7]*_,r[11]=t[8]*v+t[9]*g+t[10]*b+t[11]*_,r[15]=t[12]*v+t[13]*g+t[14]*b+t[15]*_,this},n.default.Matrix.prototype.scale=function(e,t,r){return e instanceof n.default.Vector?(t=e.y,r=e.z,e=e.x):e instanceof Array&&(t=e[1],r=e[2],e=e[0]),this.mat4[0]*=e,this.mat4[1]*=e,this.mat4[2]*=e,this.mat4[3]*=e,this.mat4[4]*=t,this.mat4[5]*=t,this.mat4[6]*=t,this.mat4[7]*=t,this.mat4[8]*=r,this.mat4[9]*=r,this.mat4[10]*=r,this.mat4[11]*=r,this},n.default.Matrix.prototype.rotate=function(e,t,r,i){t instanceof n.default.Vector?(r=t.y,i=t.z,t=t.x):t instanceof Array&&(r=t[1],i=t[2],t=t[0]);var o=Math.sqrt(t*t+r*r+i*i);t*=1/o,r*=1/o,i*=1/o;var a=this.mat4[0],s=this.mat4[1],l=this.mat4[2],u=this.mat4[3],h=this.mat4[4],c=this.mat4[5],d=this.mat4[6],f=this.mat4[7],p=this.mat4[8],m=this.mat4[9],y=this.mat4[10],v=this.mat4[11],g=Math.sin(e),b=Math.cos(e),_=1-b,x=t*t*_+b,w=r*t*_+i*g,S=i*t*_-r*g,M=t*r*_-i*g,E=r*r*_+b,T=i*r*_+t*g,C=t*i*_+r*g,O=r*i*_-t*g,P=i*i*_+b;return this.mat4[0]=a*x+h*w+p*S,this.mat4[1]=s*x+c*w+m*S,this.mat4[2]=l*x+d*w+y*S,this.mat4[3]=u*x+f*w+v*S,this.mat4[4]=a*M+h*E+p*T,this.mat4[5]=s*M+c*E+m*T,this.mat4[6]=l*M+d*E+y*T,this.mat4[7]=u*M+f*E+v*T,this.mat4[8]=a*C+h*O+p*P,this.mat4[9]=s*C+c*O+m*P,this.mat4[10]=l*C+d*O+y*P,this.mat4[11]=u*C+f*O+v*P,this},n.default.Matrix.prototype.translate=function(e){var t=e[0],r=e[1],i=e[2]||0;this.mat4[12]+=this.mat4[0]*t+this.mat4[4]*r+this.mat4[8]*i,this.mat4[13]+=this.mat4[1]*t+this.mat4[5]*r+this.mat4[9]*i,this.mat4[14]+=this.mat4[2]*t+this.mat4[6]*r+this.mat4[10]*i,this.mat4[15]+=this.mat4[3]*t+this.mat4[7]*r+this.mat4[11]*i},n.default.Matrix.prototype.rotateX=function(e){this.rotate(e,1,0,0)},n.default.Matrix.prototype.rotateY=function(e){this.rotate(e,0,1,0)},n.default.Matrix.prototype.rotateZ=function(e){this.rotate(e,0,0,1)},n.default.Matrix.prototype.perspective=function(e,t,r,i){var n=1/Math.tan(e/2),o=1/(r-i);return this.mat4[0]=n/t,this.mat4[1]=0,this.mat4[2]=0,this.mat4[3]=0,this.mat4[4]=0,this.mat4[5]=n,this.mat4[6]=0,this.mat4[7]=0,this.mat4[8]=0,this.mat4[9]=0,this.mat4[10]=(i+r)*o,this.mat4[11]=-1,this.mat4[12]=0,this.mat4[13]=0,this.mat4[14]=2*i*r*o,this.mat4[15]=0,this},n.default.Matrix.prototype.ortho=function(e,t,r,i,n,o){var a=1/(e-t),s=1/(r-i),l=1/(n-o);return this.mat4[0]=-2*a,this.mat4[1]=0,this.mat4[2]=0,this.mat4[3]=0,this.mat4[4]=0,this.mat4[5]=-2*s,this.mat4[6]=0,this.mat4[7]=0,this.mat4[8]=0,this.mat4[9]=0,this.mat4[10]=2*l,this.mat4[11]=0,this.mat4[12]=(e+t)*a,this.mat4[13]=(i+r)*s,this.mat4[14]=(o+n)*l,this.mat4[15]=1,this};var s=n.default.Matrix;r.default=s},{"../core/main":36}],87:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.RenderBuffer=function(e,t,r,i,n,o){this.size=e,this.src=t,this.dst=r,this.attr=i,this._renderer=n,this.map=o},n.default.RenderBuffer.prototype._prepareBuffer=function(e,t){var r,i=t.attributes,n=this._renderer.GL;r=e.model?e.model:e;var o=i[this.attr];if(o){var a=e[this.dst],s=r[this.src];if(0<s.length){var l=!a;if(l&&(e[this.dst]=a=n.createBuffer()),n.bindBuffer(n.ARRAY_BUFFER,a),l||!1!==r.dirtyFlags[this.src]){var u=this.map,h=u?u(s):s;this._renderer._bindBuffer(a,n.ARRAY_BUFFER,h),r.dirtyFlags[this.src]=!1}t.enableAttrib(o,this.size)}}};var o=n.default.RenderBuffer;r.default=o},{"../core/main":36}],88:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}e("./p5.RenderBuffer"),o.default.RendererGL.prototype.beginShape=function(e){return this.immediateMode.shapeMode=void 0!==e?e:a.TRIANGLE_FAN,this.immediateMode.geometry.reset(),this},o.default.RendererGL.prototype.vertex=function(e,t){var r,i,n;r=i=n=0,3===arguments.length?r=arguments[2]:4===arguments.length?(i=arguments[2],n=arguments[3]):5===arguments.length&&(r=arguments[2],i=arguments[3],n=arguments[4]);var s=new o.default.Vector(e,t,r);this.immediateMode.geometry.vertices.push(s);var l=this.curFillColor||[.5,.5,.5,1];return this.immediateMode.geometry.vertexColors.push(l[0],l[1],l[2],l[3]),this.textureMode===a.IMAGE&&(null!==this._tex?0<this._tex.width&&0<this._tex.height&&(i/=this._tex.width,n/=this._tex.height):null===this._tex&&4<=arguments.length&&console.warn("You must first call texture() before using vertex() with image based u and v coordinates")),this.immediateMode.geometry.uvs.push(i,n),this.immediateMode._bezierVertex[0]=e,this.immediateMode._bezierVertex[1]=t,this.immediateMode._bezierVertex[2]=r,this.immediateMode._quadraticVertex[0]=e,this.immediateMode._quadraticVertex[1]=t,this.immediateMode._quadraticVertex[2]=r,this},o.default.RendererGL.prototype.endShape=function(e,t,r,i,n,o){return this.immediateMode.shapeMode===a.POINTS?this._drawPoints(this.immediateMode.geometry.vertices,this.immediateMode.buffers.point):(this._processVertices.apply(this,arguments),this._doFill&&1<this.immediateMode.geometry.vertices.length&&this._drawImmediateFill(),this._doStroke&&1<this.immediateMode.geometry.lineVertices.length&&this._drawImmediateStroke(),this.isBezier=!1,this.isQuadratic=!1,this.isCurve=!1,this.immediateMode._bezierVertex.length=0,this.immediateMode._quadraticVertex.length=0,this.immediateMode._curveVertex.length=0),this},o.default.RendererGL.prototype._processVertices=function(e){if(0!==this.immediateMode.geometry.vertices.length){var t=this._doStroke&&this.drawMode!==a.TEXTURE,r=e===a.CLOSE;t&&(this.immediateMode.geometry.edges=this._calculateEdges(this.immediateMode.shapeMode,this.immediateMode.geometry.vertices,r),this.immediateMode.geometry._edgesToVertices());var i=this.immediateMode.shapeMode===a.TESS;(this.isBezier||this.isQuadratic||this.isCurve||i)&&this.immediateMode.shapeMode!==a.LINES&&this._tesselateShape()}},o.default.RendererGL.prototype._calculateEdges=function(e,t,r){var i=[],n=0;switch(e){case a.TRIANGLE_STRIP:for(n=0;n<t.length-2;n++)i.push([n,n+1]),i.push([n,n+2]);i.push([n,n+1]);break;case a.TRIANGLES:for(n=0;n<t.length-2;n+=3)i.push([n,n+1]),i.push([n+1,n+2]),i.push([n+2,n]);break;case a.LINES:for(n=0;n<t.length-1;n+=2)i.push([n,n+1]);break;default:for(n=0;n<t.length-1;n++)i.push([n,n+1])}return r&&i.push([t.length-1,0]),i},o.default.RendererGL.prototype._tesselateShape=function(){this.immediateMode.shapeMode=a.TRIANGLES;var e=[new Float32Array(this._vToNArray(this.immediateMode.geometry.vertices))],t=this._triangulate(e);this.immediateMode.geometry.vertices=[];for(var r=0,i=t.length;r<i;r+=3)this.vertex(t[r],t[r+1],t[r+2])},o.default.RendererGL.prototype._drawImmediateFill=function(){var e=this.GL,t=this._getImmediateFillShader();this._calculateNormals(this.immediateMode.geometry),this._setFillUniforms(t);var r=!0,i=!1,n=void 0;try{for(var o,s=this.immediateMode.buffers.fill[Symbol.iterator]();!(r=(o=s.next()).done);r=!0)o.value._prepareBuffer(this.immediateMode.geometry,t)}catch(e){i=!0,n=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw n}}this.immediateMode.shapeMode!==a.LINE_STRIP&&this.immediateMode.shapeMode!==a.LINES||(this.immediateMode.shapeMode=a.TRIANGLE_FAN),this._applyColorBlend(this.curFillColor),e.drawArrays(this.immediateMode.shapeMode,0,this.immediateMode.geometry.vertices.length),t.unbindShader()},o.default.RendererGL.prototype._drawImmediateStroke=function(){var e=this.GL,t=this._getImmediateStrokeShader();this._setStrokeUniforms(t);var r=!0,i=!1,n=void 0;try{for(var o,a=this.immediateMode.buffers.stroke[Symbol.iterator]();!(r=(o=a.next()).done);r=!0)o.value._prepareBuffer(this.immediateMode.geometry,t)}catch(e){i=!0,n=e}finally{try{r||null==a.return||a.return()}finally{if(i)throw n}}this._applyColorBlend(this.curStrokeColor),e.drawArrays(e.TRIANGLES,0,this.immediateMode.geometry.lineVertices.length),t.unbindShader()},o.default.RendererGL.prototype._calculateNormals=function(e){e.vertices.forEach((function(){e.vertexNormals.push(new o.default.Vector(0,0,1))}))};var l=o.default.RendererGL;r.default=l},{"../core/constants":26,"../core/main":36,"./p5.RenderBuffer":87}],89:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};e("./p5.RendererGL"),e("./p5.RenderBuffer");var o=0;n.default.RendererGL.prototype._initBufferDefaults=function(e){if(this._freeBuffers(e),1e3<++o){var t=Object.keys(this.retainedMode.geometry)[0];delete this.retainedMode.geometry[t],o--}return this.retainedMode.geometry[e]={}},n.default.RendererGL.prototype._freeBuffers=function(e){var t=this.retainedMode.geometry[e];if(t){delete this.retainedMode.geometry[e],o--;var r=this.GL;t.indexBuffer&&r.deleteBuffer(t.indexBuffer),i(this.retainedMode.buffers.stroke),i(this.retainedMode.buffers.fill)}function i(e){var i=!0,n=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var l=a.value;t[l.dst]&&(r.deleteBuffer(t[l.dst]),t[l.dst]=null)}}catch(e){n=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(n)throw o}}}},n.default.RendererGL.prototype.createBuffers=function(e,t){var r=this.GL,i=this._initBufferDefaults(e);i.model=t;var o=i.indexBuffer;if(t.faces.length){o=o||(i.indexBuffer=r.createBuffer());var a=n.default.RendererGL.prototype._flatten(t.faces);this._bindBuffer(o,r.ELEMENT_ARRAY_BUFFER,a,Uint16Array),i.vertexCount=3*t.faces.length}else o&&(r.deleteBuffer(o),i.indexBuffer=null),i.vertexCount=t.vertices?t.vertices.length:0;return i.lineVertexCount=t.lineVertices?t.lineVertices.length:0,i},n.default.RendererGL.prototype.drawBuffers=function(e){var t=this.GL,r=this.retainedMode.geometry[e];if(this._doStroke&&0<r.lineVertexCount){var i=this._getRetainedStrokeShader();this._setStrokeUniforms(i);var n=!0,o=!1,a=void 0;try{for(var s,l=this.retainedMode.buffers.stroke[Symbol.iterator]();!(n=(s=l.next()).done);n=!0)s.value._prepareBuffer(r,i)}catch(e){o=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(o)throw a}}this._applyColorBlend(this.curStrokeColor),this._drawArrays(t.TRIANGLES,e),i.unbindShader()}if(this._doFill){var u=this._getRetainedFillShader();this._setFillUniforms(u);var h=!0,c=!1,d=void 0;try{for(var f,p=this.retainedMode.buffers.fill[Symbol.iterator]();!(h=(f=p.next()).done);h=!0)f.value._prepareBuffer(r,u)}catch(e){c=!0,d=e}finally{try{h||null==p.return||p.return()}finally{if(c)throw d}}r.indexBuffer&&this._bindBuffer(r.indexBuffer,t.ELEMENT_ARRAY_BUFFER),this._applyColorBlend(this.curFillColor),this._drawElements(t.TRIANGLES,e),u.unbindShader()}return this},n.default.RendererGL.prototype.drawBuffersScaled=function(e,t,r,i){var n=this.uMVMatrix.copy();try{this.uMVMatrix.scale(t,r,i),this.drawBuffers(e)}finally{this.uMVMatrix=n}},n.default.RendererGL.prototype._drawArrays=function(e,t){return this.GL.drawArrays(e,0,this.retainedMode.geometry[t].lineVertexCount),this},n.default.RendererGL.prototype._drawElements=function(e,t){var r=this.retainedMode.geometry[t],i=this.GL;r.indexBuffer?i.drawElements(i.TRIANGLES,r.vertexCount,i.UNSIGNED_SHORT,0):i.drawArrays(e||i.TRIANGLES,0,r.vertexCount)},n.default.RendererGL.prototype._drawPoints=function(e,t){var r=this.GL,i=this._getImmediatePointShader();this._setPointUniforms(i),this._bindBuffer(t,r.ARRAY_BUFFER,this._vToNArray(e),Float32Array,r.STATIC_DRAW),i.enableAttrib(i.attributes.aPosition,3),r.drawArrays(r.Points,0,e.length),i.unbindShader()};var a=n.default.RendererGL;r.default=a},{"../core/main":36,"./p5.RenderBuffer":87,"./p5.RendererGL":90}],90:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=l(e("../core/main")),o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants")),a=l(e("libtess"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){return e&&e.__esModule?e:{default:e}}function u(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}e("./p5.Shader"),e("./p5.Camera"),e("../core/p5.Renderer"),e("./p5.Matrix"),e("path");var h="precision highp float;\nprecision highp int;\n\nuniform mat4 uViewMatrix;\n\nuniform bool uUseLighting;\n\nuniform int uAmbientLightCount;\nuniform vec3 uAmbientColor[5];\n\nuniform int uDirectionalLightCount;\nuniform vec3 uLightingDirection[5];\nuniform vec3 uDirectionalDiffuseColors[5];\nuniform vec3 uDirectionalSpecularColors[5];\n\nuniform int uPointLightCount;\nuniform vec3 uPointLightLocation[5];\nuniform vec3 uPointLightDiffuseColors[5];\t\nuniform vec3 uPointLightSpecularColors[5];\n\nuniform int uSpotLightCount;\nuniform float uSpotLightAngle[5];\nuniform float uSpotLightConc[5];\nuniform vec3 uSpotLightDiffuseColors[5];\nuniform vec3 uSpotLightSpecularColors[5];\nuniform vec3 uSpotLightLocation[5];\nuniform vec3 uSpotLightDirection[5];\n\nuniform bool uSpecular;\nuniform float uShininess;\n\nuniform float uConstantAttenuation;\nuniform float uLinearAttenuation;\nuniform float uQuadraticAttenuation;\n\nconst float specularFactor = 2.0;\nconst float diffuseFactor = 0.73;\n\nstruct LightResult {\n float specular;\n float diffuse;\n};\n\nfloat _phongSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float shininess) {\n\n vec3 R = reflect(lightDirection, surfaceNormal);\n return pow(max(0.0, dot(R, viewDirection)), shininess);\n}\n\nfloat _lambertDiffuse(vec3 lightDirection, vec3 surfaceNormal) {\n return max(0.0, dot(-lightDirection, surfaceNormal));\n}\n\nLightResult _light(vec3 viewDirection, vec3 normal, vec3 lightVector) {\n\n vec3 lightDir = normalize(lightVector);\n\n //compute our diffuse & specular terms\n LightResult lr;\n if (uSpecular)\n lr.specular = _phongSpecular(lightDir, viewDirection, normal, uShininess);\n lr.diffuse = _lambertDiffuse(lightDir, normal);\n return lr;\n}\n\nvoid totalLight(\n vec3 modelPosition,\n vec3 normal,\n out vec3 totalDiffuse,\n out vec3 totalSpecular\n) {\n\n totalSpecular = vec3(0.0);\n\n if (!uUseLighting) {\n totalDiffuse = vec3(1.0);\n return;\n }\n\n totalDiffuse = vec3(0.0);\n\n vec3 viewDirection = normalize(-modelPosition);\n\n for (int j = 0; j < 5; j++) {\n if (j < uDirectionalLightCount) {\n vec3 lightVector = (uViewMatrix * vec4(uLightingDirection[j], 0.0)).xyz;\n vec3 lightColor = uDirectionalDiffuseColors[j];\n vec3 specularColor = uDirectionalSpecularColors[j];\n LightResult result = _light(viewDirection, normal, lightVector);\n totalDiffuse += result.diffuse * lightColor;\n totalSpecular += result.specular * lightColor * specularColor;\n }\n\n if (j < uPointLightCount) {\n vec3 lightPosition = (uViewMatrix * vec4(uPointLightLocation[j], 1.0)).xyz;\n vec3 lightVector = modelPosition - lightPosition;\n \n //calculate attenuation\n float lightDistance = length(lightVector);\n float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation);\n vec3 lightColor = lightFalloff * uPointLightDiffuseColors[j];\n vec3 specularColor = lightFalloff * uPointLightSpecularColors[j];\n\n LightResult result = _light(viewDirection, normal, lightVector);\n totalDiffuse += result.diffuse * lightColor;\n totalSpecular += result.specular * lightColor * specularColor;\n }\n\n if(j < uSpotLightCount) {\n vec3 lightPosition = (uViewMatrix * vec4(uSpotLightLocation[j], 1.0)).xyz;\n vec3 lightVector = modelPosition - lightPosition;\n \n float lightDistance = length(lightVector);\n float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation);\n\n vec3 lightDirection = (uViewMatrix * vec4(uSpotLightDirection[j], 0.0)).xyz;\n float spotDot = dot(normalize(lightVector), normalize(lightDirection));\n float spotFalloff;\n if(spotDot < uSpotLightAngle[j]) {\n spotFalloff = 0.0;\n }\n else {\n spotFalloff = pow(spotDot, uSpotLightConc[j]);\n }\n lightFalloff *= spotFalloff;\n\n vec3 lightColor = uSpotLightDiffuseColors[j];\n vec3 specularColor = uSpotLightSpecularColors[j];\n \n LightResult result = _light(viewDirection, normal, lightVector);\n \n totalDiffuse += result.diffuse * lightColor * lightFalloff;\n totalSpecular += result.specular * lightColor * specularColor * lightFalloff;\n }\n }\n\n totalDiffuse *= diffuseFactor;\n totalSpecular *= specularFactor;\n}\n",c={immediateVert:"attribute vec3 aPosition;\nattribute vec4 aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform float uResolution;\nuniform float uPointSize;\n\nvarying vec4 vColor;\nvoid main(void) {\n vec4 positionVec4 = vec4(aPosition, 1.0);\n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n vColor = aVertexColor;\n gl_PointSize = uPointSize;\n}\n",vertexColorVert:"attribute vec3 aPosition;\nattribute vec4 aVertexColor;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\n\nvarying vec4 vColor;\n\nvoid main(void) {\n vec4 positionVec4 = vec4(aPosition, 1.0);\n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n vColor = aVertexColor;\n}\n",vertexColorFrag:"precision mediump float;\nvarying vec4 vColor;\nvoid main(void) {\n gl_FragColor = vColor;\n}",normalVert:"attribute vec3 aPosition;\nattribute vec3 aNormal;\nattribute vec2 aTexCoord;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform mat3 uNormalMatrix;\n\nvarying vec3 vVertexNormal;\nvarying highp vec2 vVertTexCoord;\n\nvoid main(void) {\n vec4 positionVec4 = vec4(aPosition, 1.0);\n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n vVertexNormal = normalize(vec3( uNormalMatrix * aNormal ));\n vVertTexCoord = aTexCoord;\n}\n",normalFrag:"precision mediump float;\nvarying vec3 vVertexNormal;\nvoid main(void) {\n gl_FragColor = vec4(vVertexNormal, 1.0);\n}",basicFrag:"precision mediump float;\nuniform vec4 uMaterialColor;\nvoid main(void) {\n gl_FragColor = uMaterialColor;\n}",lightVert:h+"// include lighting.glgl\n\nattribute vec3 aPosition;\nattribute vec3 aNormal;\nattribute vec2 aTexCoord;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform mat3 uNormalMatrix;\n\nvarying highp vec2 vVertTexCoord;\nvarying vec3 vDiffuseColor;\nvarying vec3 vSpecularColor;\n\nvoid main(void) {\n\n vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0);\n gl_Position = uProjectionMatrix * viewModelPosition;\n\n vec3 vertexNormal = normalize(uNormalMatrix * aNormal);\n vVertTexCoord = aTexCoord;\n\n totalLight(viewModelPosition.xyz, vertexNormal, vDiffuseColor, vSpecularColor);\n\n for (int i = 0; i < 8; i++) {\n if (i < uAmbientLightCount) {\n vDiffuseColor += uAmbientColor[i];\n }\n }\n}\n",lightTextureFrag:"precision highp float;\n\nuniform vec4 uMaterialColor;\nuniform vec4 uTint;\nuniform sampler2D uSampler;\nuniform bool isTexture;\nuniform bool uEmissive;\n\nvarying highp vec2 vVertTexCoord;\nvarying vec3 vDiffuseColor;\nvarying vec3 vSpecularColor;\n\nvoid main(void) {\n if(uEmissive && !isTexture) {\n gl_FragColor = uMaterialColor;\n }\n else {\n gl_FragColor = isTexture ? texture2D(uSampler, vVertTexCoord) * (uTint / vec4(255, 255, 255, 255)) : uMaterialColor;\n gl_FragColor.rgb = gl_FragColor.rgb * vDiffuseColor + vSpecularColor;\n }\n}",phongVert:"precision highp float;\nprecision highp int;\n\nattribute vec3 aPosition;\nattribute vec3 aNormal;\nattribute vec2 aTexCoord;\n\nuniform vec3 uAmbientColor[5];\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform mat3 uNormalMatrix;\nuniform int uAmbientLightCount;\n\nvarying vec3 vNormal;\nvarying vec2 vTexCoord;\nvarying vec3 vViewPosition;\nvarying vec3 vAmbientColor;\n\nvoid main(void) {\n\n vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0);\n\n // Pass varyings to fragment shader\n vViewPosition = viewModelPosition.xyz;\n gl_Position = uProjectionMatrix * viewModelPosition; \n\n vNormal = uNormalMatrix * aNormal;\n vTexCoord = aTexCoord;\n\n // TODO: this should be a uniform\n vAmbientColor = vec3(0.0);\n for (int i = 0; i < 5; i++) {\n if (i < uAmbientLightCount) {\n vAmbientColor += uAmbientColor[i];\n }\n }\n}\n",phongFrag:h+"// include lighting.glsl\nprecision highp float;\nprecision highp int;\n\nuniform vec4 uMaterialColor;\nuniform vec4 uTint;\nuniform sampler2D uSampler;\nuniform bool isTexture;\nuniform bool uEmissive;\n\nvarying vec3 vNormal;\nvarying vec2 vTexCoord;\nvarying vec3 vViewPosition;\nvarying vec3 vAmbientColor;\n\nvoid main(void) {\n\n vec3 diffuse;\n vec3 specular;\n totalLight(vViewPosition, normalize(vNormal), diffuse, specular);\n\n if(uEmissive && !isTexture) {\n gl_FragColor = uMaterialColor;\n }\n else {\n gl_FragColor = isTexture ? texture2D(uSampler, vTexCoord) * (uTint / vec4(255, 255, 255, 255)) : uMaterialColor;\n gl_FragColor.rgb = gl_FragColor.rgb * (diffuse + vAmbientColor) + specular;\n }\n}",fontVert:"precision mediump float;\n\nattribute vec3 aPosition;\nattribute vec2 aTexCoord;\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\n\nuniform vec4 uGlyphRect;\nuniform float uGlyphOffset;\n\nvarying vec2 vTexCoord;\nvarying float w;\n\nvoid main() {\n vec4 positionVec4 = vec4(aPosition, 1.0);\n\n // scale by the size of the glyph's rectangle\n positionVec4.xy *= uGlyphRect.zw - uGlyphRect.xy;\n\n // move to the corner of the glyph\n positionVec4.xy += uGlyphRect.xy;\n\n // move to the letter's line offset\n positionVec4.x += uGlyphOffset;\n \n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n vTexCoord = aTexCoord;\n w = gl_Position.w;\n}\n",fontFrag:"#extension GL_OES_standard_derivatives : enable\nprecision mediump float;\n\n#if 0\n // simulate integer math using floats\n\t#define int float\n\t#define ivec2 vec2\n\t#define INT(x) float(x)\n\n\tint ifloor(float v) { return floor(v); }\n\tivec2 ifloor(vec2 v) { return floor(v); }\n\n#else\n // use native integer math\n\tprecision highp int;\n\t#define INT(x) x\n\n\tint ifloor(float v) { return int(v); }\n\tint ifloor(int v) { return v; }\n\tivec2 ifloor(vec2 v) { return ivec2(v); }\n\n#endif\n\nuniform sampler2D uSamplerStrokes;\nuniform sampler2D uSamplerRowStrokes;\nuniform sampler2D uSamplerRows;\nuniform sampler2D uSamplerColStrokes;\nuniform sampler2D uSamplerCols;\n\nuniform ivec2 uStrokeImageSize;\nuniform ivec2 uCellsImageSize;\nuniform ivec2 uGridImageSize;\n\nuniform ivec2 uGridOffset;\nuniform ivec2 uGridSize;\nuniform vec4 uMaterialColor;\n\nvarying vec2 vTexCoord;\n\n// some helper functions\nint round(float v) { return ifloor(v + 0.5); }\nivec2 round(vec2 v) { return ifloor(v + 0.5); }\nfloat saturate(float v) { return clamp(v, 0.0, 1.0); }\nvec2 saturate(vec2 v) { return clamp(v, 0.0, 1.0); }\n\nint mul(float v1, int v2) {\n return ifloor(v1 * float(v2));\n}\n\nivec2 mul(vec2 v1, ivec2 v2) {\n return ifloor(v1 * vec2(v2) + 0.5);\n}\n\n// unpack a 16-bit integer from a float vec2\nint getInt16(vec2 v) {\n ivec2 iv = round(v * 255.0);\n return iv.x * INT(128) + iv.y;\n}\n\nvec2 pixelScale;\nvec2 coverage = vec2(0.0);\nvec2 weight = vec2(0.5);\nconst float minDistance = 1.0/8192.0;\nconst float hardness = 1.05; // amount of antialias\n\n// the maximum number of curves in a glyph\nconst int N = INT(250);\n\n// retrieves an indexed pixel from a sampler\nvec4 getTexel(sampler2D sampler, int pos, ivec2 size) {\n int width = size.x;\n int y = ifloor(pos / width);\n int x = pos - y * width; // pos % width\n\n return texture2D(sampler, (vec2(x, y) + 0.5) / vec2(size));\n}\n\nvoid calulateCrossings(vec2 p0, vec2 p1, vec2 p2, out vec2 C1, out vec2 C2) {\n\n // get the coefficients of the quadratic in t\n vec2 a = p0 - p1 * 2.0 + p2;\n vec2 b = p0 - p1;\n vec2 c = p0 - vTexCoord;\n\n // found out which values of 't' it crosses the axes\n vec2 surd = sqrt(max(vec2(0.0), b * b - a * c));\n vec2 t1 = ((b - surd) / a).yx;\n vec2 t2 = ((b + surd) / a).yx;\n\n // approximate straight lines to avoid rounding errors\n if (abs(a.y) < 0.001)\n t1.x = t2.x = c.y / (2.0 * b.y);\n\n if (abs(a.x) < 0.001)\n t1.y = t2.y = c.x / (2.0 * b.x);\n\n // plug into quadratic formula to find the corrdinates of the crossings\n C1 = ((a * t1 - b * 2.0) * t1 + c) * pixelScale;\n C2 = ((a * t2 - b * 2.0) * t2 + c) * pixelScale;\n}\n\nvoid coverageX(vec2 p0, vec2 p1, vec2 p2) {\n\n vec2 C1, C2;\n calulateCrossings(p0, p1, p2, C1, C2);\n\n // determine on which side of the x-axis the points lie\n bool y0 = p0.y > vTexCoord.y;\n bool y1 = p1.y > vTexCoord.y;\n bool y2 = p2.y > vTexCoord.y;\n\n // could web be under the curve (after t1)?\n if (y1 ? !y2 : y0) {\n // add the coverage for t1\n coverage.x += saturate(C1.x + 0.5);\n // calculate the anti-aliasing for t1\n weight.x = min(weight.x, abs(C1.x));\n }\n\n // are we outside the curve (after t2)?\n if (y1 ? !y0 : y2) {\n // subtract the coverage for t2\n coverage.x -= saturate(C2.x + 0.5);\n // calculate the anti-aliasing for t2\n weight.x = min(weight.x, abs(C2.x));\n }\n}\n\n// this is essentially the same as coverageX, but with the axes swapped\nvoid coverageY(vec2 p0, vec2 p1, vec2 p2) {\n\n vec2 C1, C2;\n calulateCrossings(p0, p1, p2, C1, C2);\n\n bool x0 = p0.x > vTexCoord.x;\n bool x1 = p1.x > vTexCoord.x;\n bool x2 = p2.x > vTexCoord.x;\n\n if (x1 ? !x2 : x0) {\n coverage.y -= saturate(C1.y + 0.5);\n weight.y = min(weight.y, abs(C1.y));\n }\n\n if (x1 ? !x0 : x2) {\n coverage.y += saturate(C2.y + 0.5);\n weight.y = min(weight.y, abs(C2.y));\n }\n}\n\nvoid main() {\n\n // calculate the pixel scale based on screen-coordinates\n pixelScale = hardness / fwidth(vTexCoord);\n\n // which grid cell is this pixel in?\n ivec2 gridCoord = ifloor(vTexCoord * vec2(uGridSize));\n\n // intersect curves in this row\n {\n // the index into the row info bitmap\n int rowIndex = gridCoord.y + uGridOffset.y;\n // fetch the info texel\n vec4 rowInfo = getTexel(uSamplerRows, rowIndex, uGridImageSize);\n // unpack the rowInfo\n int rowStrokeIndex = getInt16(rowInfo.xy);\n int rowStrokeCount = getInt16(rowInfo.zw);\n\n for (int iRowStroke = INT(0); iRowStroke < N; iRowStroke++) {\n if (iRowStroke >= rowStrokeCount)\n break;\n\n // each stroke is made up of 3 points: the start and control point\n // and the start of the next curve.\n // fetch the indices of this pair of strokes:\n vec4 strokeIndices = getTexel(uSamplerRowStrokes, rowStrokeIndex++, uCellsImageSize);\n\n // unpack the stroke index\n int strokePos = getInt16(strokeIndices.xy);\n\n // fetch the two strokes\n vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize);\n vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize);\n\n // calculate the coverage\n coverageX(stroke0.xy, stroke0.zw, stroke1.xy);\n }\n }\n\n // intersect curves in this column\n {\n int colIndex = gridCoord.x + uGridOffset.x;\n vec4 colInfo = getTexel(uSamplerCols, colIndex, uGridImageSize);\n int colStrokeIndex = getInt16(colInfo.xy);\n int colStrokeCount = getInt16(colInfo.zw);\n \n for (int iColStroke = INT(0); iColStroke < N; iColStroke++) {\n if (iColStroke >= colStrokeCount)\n break;\n\n vec4 strokeIndices = getTexel(uSamplerColStrokes, colStrokeIndex++, uCellsImageSize);\n\n int strokePos = getInt16(strokeIndices.xy);\n vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize);\n vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize);\n coverageY(stroke0.xy, stroke0.zw, stroke1.xy);\n }\n }\n\n weight = saturate(1.0 - weight * 2.0);\n float distance = max(weight.x + weight.y, minDistance); // manhattan approx.\n float antialias = abs(dot(coverage, weight) / distance);\n float cover = min(abs(coverage.x), abs(coverage.y));\n gl_FragColor = uMaterialColor;\n gl_FragColor.a *= saturate(max(antialias, cover));\n}",lineVert:"/*\n Part of the Processing project - http://processing.org\n Copyright (c) 2012-15 The Processing Foundation\n Copyright (c) 2004-12 Ben Fry and Casey Reas\n Copyright (c) 2001-04 Massachusetts Institute of Technology\n This library is free software; you can redistribute it and/or\n modify it under the terms of the GNU Lesser General Public\n License as published by the Free Software Foundation, version 2.1.\n This library is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n You should have received a copy of the GNU Lesser General\n Public License along with this library; if not, write to the\n Free Software Foundation, Inc., 59 Temple Place, Suite 330,\n Boston, MA 02111-1307 USA\n*/\n\n#define PROCESSING_LINE_SHADER\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform float uStrokeWeight;\n\nuniform vec4 uViewport;\nuniform int uPerspective;\n\nattribute vec4 aPosition;\nattribute vec4 aDirection;\n \nvoid main() {\n // using a scale <1 moves the lines towards the camera\n // in order to prevent popping effects due to half of\n // the line disappearing behind the geometry faces.\n vec3 scale = vec3(0.9995);\n\n vec4 posp = uModelViewMatrix * aPosition;\n vec4 posq = uModelViewMatrix * (aPosition + vec4(aDirection.xyz, 0));\n\n // Moving vertices slightly toward the camera\n // to avoid depth-fighting with the fill triangles.\n // Discussed here:\n // http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252848 \n posp.xyz = posp.xyz * scale;\n posq.xyz = posq.xyz * scale;\n\n vec4 p = uProjectionMatrix * posp;\n vec4 q = uProjectionMatrix * posq;\n\n // formula to convert from clip space (range -1..1) to screen space (range 0..[width or height])\n // screen_p = (p.xy/p.w + <1,1>) * 0.5 * uViewport.zw\n\n // prevent division by W by transforming the tangent formula (div by 0 causes\n // the line to disappear, see https://github.com/processing/processing/issues/5183)\n // t = screen_q - screen_p\n //\n // tangent is normalized and we don't care which aDirection it points to (+-)\n // t = +- normalize( screen_q - screen_p )\n // t = +- normalize( (q.xy/q.w+<1,1>)*0.5*uViewport.zw - (p.xy/p.w+<1,1>)*0.5*uViewport.zw )\n //\n // extract common factor, <1,1> - <1,1> cancels out\n // t = +- normalize( (q.xy/q.w - p.xy/p.w) * 0.5 * uViewport.zw )\n //\n // convert to common divisor\n // t = +- normalize( ((q.xy*p.w - p.xy*q.w) / (p.w*q.w)) * 0.5 * uViewport.zw )\n //\n // remove the common scalar divisor/factor, not needed due to normalize and +-\n // (keep uViewport - can't remove because it has different components for x and y\n // and corrects for aspect ratio, see https://github.com/processing/processing/issues/5181)\n // t = +- normalize( (q.xy*p.w - p.xy*q.w) * uViewport.zw )\n\n vec2 tangent = normalize((q.xy*p.w - p.xy*q.w) * uViewport.zw);\n\n // flip tangent to normal (it's already normalized)\n vec2 normal = vec2(-tangent.y, tangent.x);\n\n float thickness = aDirection.w * uStrokeWeight;\n vec2 offset = normal * thickness / 2.0;\n\n vec2 curPerspScale;\n\n if(uPerspective == 1) {\n // Perspective ---\n // convert from world to clip by multiplying with projection scaling factor\n // to get the right thickness (see https://github.com/processing/processing/issues/5182)\n // invert Y, projections in Processing invert Y\n curPerspScale = (uProjectionMatrix * vec4(1, -1, 0, 0)).xy;\n } else {\n // No Perspective ---\n // multiply by W (to cancel out division by W later in the pipeline) and\n // convert from screen to clip (derived from clip to screen above)\n curPerspScale = p.w / (0.5 * uViewport.zw);\n }\n\n gl_Position.xy = p.xy + offset.xy * curPerspScale;\n gl_Position.zw = p.zw;\n}\n",lineFrag:"precision mediump float;\nprecision mediump int;\n\nuniform vec4 uMaterialColor;\n\nvoid main() {\n gl_FragColor = uMaterialColor;\n}",pointVert:"attribute vec3 aPosition;\nuniform float uPointSize;\nvarying float vStrokeWeight;\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nvoid main() {\n\tvec4 positionVec4 = vec4(aPosition, 1.0);\n\tgl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n\tgl_PointSize = uPointSize;\n\tvStrokeWeight = uPointSize;\n}",pointFrag:"precision mediump float;\nprecision mediump int;\nuniform vec4 uMaterialColor;\nvarying float vStrokeWeight;\n\nvoid main(){\n\tfloat mask = 0.0;\n\n\t// make a circular mask using the gl_PointCoord (goes from 0 - 1 on a point)\n // might be able to get a nicer edge on big strokeweights with smoothstep but slightly less performant\n\n\tmask = step(0.98, length(gl_PointCoord * 2.0 - 1.0));\n\n\t// if strokeWeight is 1 or less lets just draw a square\n\t// this prevents weird artifacting from carving circles when our points are really small\n\t// if strokeWeight is larger than 1, we just use it as is\n\n\tmask = mix(0.0, mask, clamp(floor(vStrokeWeight - 0.5),0.0,1.0));\n\n\t// throw away the borders of the mask\n // otherwise we get weird alpha blending issues\n\n\tif(mask > 0.98){\n discard;\n \t}\n\n \tgl_FragColor = vec4(uMaterialColor.rgb * (1.0 - mask), uMaterialColor.a) ;\n}"};n.default.RendererGL=function(e,t,r,i){return n.default.Renderer.call(this,e,t,r),this._setAttributeDefaults(t),this._initContext(),this.isP3D=!0,this.GL=this.drawingContext,this._pInst._setProperty("drawingContext",this.drawingContext),this._isErasing=!1,this._enableLighting=!1,this.ambientLightColors=[],this.specularColors=[1,1,1],this.directionalLightDirections=[],this.directionalLightDiffuseColors=[],this.directionalLightSpecularColors=[],this.pointLightPositions=[],this.pointLightDiffuseColors=[],this.pointLightSpecularColors=[],this.spotLightPositions=[],this.spotLightDirections=[],this.spotLightDiffuseColors=[],this.spotLightSpecularColors=[],this.spotLightAngle=[],this.spotLightConc=[],this.drawMode=o.FILL,this.curFillColor=this._cachedFillStyle=[1,1,1,1],this.curStrokeColor=this._cachedStrokeStyle=[0,0,0,1],this.curBlendMode=o.BLEND,this._cachedBlendMode=void 0,this.blendExt=this.GL.getExtension("EXT_blend_minmax"),this._isBlending=!1,this._useSpecularMaterial=!1,this._useEmissiveMaterial=!1,this._useNormalMaterial=!1,this._useShininess=1,this._tint=[255,255,255,255],this.constantAttenuation=1,this.linearAttenuation=0,this.quadraticAttenuation=0,this.uMVMatrix=new n.default.Matrix,this.uPMatrix=new n.default.Matrix,this.uNMatrix=new n.default.Matrix("mat3"),this._curCamera=new n.default.Camera(this),this._curCamera._computeCameraDefaultSettings(),this._curCamera._setDefaultCamera(),this._defaultLightShader=void 0,this._defaultImmediateModeShader=void 0,this._defaultNormalShader=void 0,this._defaultColorShader=void 0,this._defaultPointShader=void 0,this.userFillShader=void 0,this.userStrokeShader=void 0,this.userPointShader=void 0,this.retainedMode={geometry:{},buffers:{stroke:[new n.default.RenderBuffer(3,"lineVertices","lineVertexBuffer","aPosition",this,this._flatten),new n.default.RenderBuffer(4,"lineNormals","lineNormalBuffer","aDirection",this,this._flatten)],fill:[new n.default.RenderBuffer(3,"vertices","vertexBuffer","aPosition",this,this._vToNArray),new n.default.RenderBuffer(3,"vertexNormals","normalBuffer","aNormal",this,this._vToNArray),new n.default.RenderBuffer(4,"vertexColors","colorBuffer","aMaterialColor",this),new n.default.RenderBuffer(3,"vertexAmbients","ambientBuffer","aAmbientColor",this),new n.default.RenderBuffer(2,"uvs","uvBuffer","aTexCoord",this,this._flatten)],text:[new n.default.RenderBuffer(3,"vertices","vertexBuffer","aPosition",this,this._vToNArray),new n.default.RenderBuffer(2,"uvs","uvBuffer","aTexCoord",this,this._flatten)]}},this.immediateMode={geometry:new n.default.Geometry,shapeMode:o.TRIANGLE_FAN,_bezierVertex:[],_quadraticVertex:[],_curveVertex:[],buffers:{fill:[new n.default.RenderBuffer(3,"vertices","vertexBuffer","aPosition",this,this._vToNArray),new n.default.RenderBuffer(3,"vertexNormals","normalBuffer","aNormal",this,this._vToNArray),new n.default.RenderBuffer(4,"vertexColors","colorBuffer","aVertexColor",this),new n.default.RenderBuffer(3,"vertexAmbients","ambientBuffer","aAmbientColor",this),new n.default.RenderBuffer(2,"uvs","uvBuffer","aTexCoord",this,this._flatten)],stroke:[new n.default.RenderBuffer(3,"lineVertices","lineVertexBuffer","aPosition",this,this._flatten),new n.default.RenderBuffer(4,"lineNormals","lineNormalBuffer","aDirection",this,this._flatten)],point:this.GL.createBuffer()}},this.pointSize=5,this.curStrokeWeight=1,this.textures=[],this.textureMode=o.IMAGE,this.textureWrapX=o.CLAMP,this.textureWrapY=o.CLAMP,this._tex=null,this._curveTightness=6,this._lookUpTableBezier=[],this._lookUpTableQuadratic=[],this._lutBezierDetail=0,this._lutQuadraticDetail=0,this._tessy=this._initTessy(),this.fontInfos={},this._curShader=void 0,this},n.default.RendererGL.prototype=Object.create(n.default.Renderer.prototype),n.default.RendererGL.prototype._setAttributeDefaults=function(e){var t={alpha:!0,depth:!0,stencil:!0,antialias:navigator.userAgent.toLowerCase().includes("safari"),premultipliedAlpha:!1,preserveDrawingBuffer:!0,perPixelLighting:!0};null===e._glAttributes?e._glAttributes=t:e._glAttributes=Object.assign(t,e._glAttributes)},n.default.RendererGL.prototype._initContext=function(){try{if(this.drawingContext=this.canvas.getContext("webgl",this._pInst._glAttributes)||this.canvas.getContext("experimental-webgl",this._pInst._glAttributes),null===this.drawingContext)throw new Error("Error creating webgl context");var e=this.drawingContext;e.enable(e.DEPTH_TEST),e.depthFunc(e.LEQUAL),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),this._viewport=this.drawingContext.getParameter(this.drawingContext.VIEWPORT)}catch(e){throw e}},n.default.RendererGL.prototype._resetContext=function(e,t){var r=this.width,i=this.height,o=this.canvas.id,a=this._pInst instanceof n.default.Graphics;if(a){var s=this._pInst;s.canvas.parentNode.removeChild(s.canvas),s.canvas=document.createElement("canvas"),(s._pInst._userNode||document.body).appendChild(s.canvas),n.default.Element.call(s,s.canvas,s._pInst),s.width=r,s.height=i}else{var l=this.canvas;l&&l.parentNode.removeChild(l),(l=document.createElement("canvas")).id=o,this._pInst._userNode?this._pInst._userNode.appendChild(l):document.body.appendChild(l),this._pInst.canvas=l}var u=new n.default.RendererGL(this._pInst.canvas,this._pInst,!a);this._pInst._setProperty("_renderer",u),u.resize(r,i),u._applyDefaults(),a||this._pInst._elements.push(u),"function"==typeof t&&setTimeout((function(){t.apply(window._renderer,e)}),0)},n.default.prototype.setAttributes=function(e,t){if(void 0!==this._glAttributes){var r=!0;if(void 0!==t?(null===this._glAttributes&&(this._glAttributes={}),this._glAttributes[e]!==t&&(this._glAttributes[e]=t,r=!1)):e instanceof Object&&this._glAttributes!==e&&(this._glAttributes=e,r=!1),this._renderer.isP3D&&!r){if(!this._setupDone)for(var i in this._renderer.retainedMode.geometry)if(this._renderer.retainedMode.geometry.hasOwnProperty(i))return void console.error("Sorry, Could not set the attributes, you need to call setAttributes() before calling the other drawing methods in setup()");this.push(),this._renderer._resetContext(),this.pop(),this._renderer._curCamera&&(this._renderer._curCamera._renderer=this._renderer)}}else console.log("You are trying to use setAttributes on a p5.Graphics object that does not use a WEBGL renderer.")},n.default.RendererGL.prototype._update=function(){this.uMVMatrix.set(this._curCamera.cameraMatrix.mat4[0],this._curCamera.cameraMatrix.mat4[1],this._curCamera.cameraMatrix.mat4[2],this._curCamera.cameraMatrix.mat4[3],this._curCamera.cameraMatrix.mat4[4],this._curCamera.cameraMatrix.mat4[5],this._curCamera.cameraMatrix.mat4[6],this._curCamera.cameraMatrix.mat4[7],this._curCamera.cameraMatrix.mat4[8],this._curCamera.cameraMatrix.mat4[9],this._curCamera.cameraMatrix.mat4[10],this._curCamera.cameraMatrix.mat4[11],this._curCamera.cameraMatrix.mat4[12],this._curCamera.cameraMatrix.mat4[13],this._curCamera.cameraMatrix.mat4[14],this._curCamera.cameraMatrix.mat4[15]),this.ambientLightColors.length=0,this.specularColors=[1,1,1],this.directionalLightDirections.length=0,this.directionalLightDiffuseColors.length=0,this.directionalLightSpecularColors.length=0,this.pointLightPositions.length=0,this.pointLightDiffuseColors.length=0,this.pointLightSpecularColors.length=0,this.spotLightPositions.length=0,this.spotLightDirections.length=0,this.spotLightDiffuseColors.length=0,this.spotLightSpecularColors.length=0,this.spotLightAngle.length=0,this.spotLightConc.length=0,this._enableLighting=!1,this._tint=[255,255,255,255],this.GL.clear(this.GL.DEPTH_BUFFER_BIT)},n.default.RendererGL.prototype.background=function(){var e,t=(e=this._pInst).color.apply(e,arguments),r=t.levels[0]/255,i=t.levels[1]/255,n=t.levels[2]/255,o=t.levels[3]/255;this.GL.clearColor(r,i,n,o),this.GL.clear(this.GL.COLOR_BUFFER_BIT)},n.default.RendererGL.prototype.fill=function(e,t,r,i){var a=n.default.prototype.color.apply(this._pInst,arguments);this.curFillColor=a._array,this.drawMode=o.FILL,this._useNormalMaterial=!1,this._tex=null},n.default.RendererGL.prototype.stroke=function(e,t,r,i){arguments[3]=255;var o=n.default.prototype.color.apply(this._pInst,arguments);this.curStrokeColor=o._array},n.default.RendererGL.prototype.strokeCap=function(e){console.error("Sorry, strokeCap() is not yet implemented in WEBGL mode")},n.default.RendererGL.prototype.strokeJoin=function(e){console.error("Sorry, strokeJoin() is not yet implemented in WEBGL mode")},n.default.RendererGL.prototype.filter=function(e){console.error("filter() does not work in WEBGL mode")},n.default.RendererGL.prototype.blendMode=function(e){e===o.DARKEST||e===o.LIGHTEST||e===o.ADD||e===o.BLEND||e===o.SUBTRACT||e===o.SCREEN||e===o.EXCLUSION||e===o.REPLACE||e===o.MULTIPLY||e===o.REMOVE?this.curBlendMode=e:e!==o.BURN&&e!==o.OVERLAY&&e!==o.HARD_LIGHT&&e!==o.SOFT_LIGHT&&e!==o.DODGE||console.warn("BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.")},n.default.RendererGL.prototype.erase=function(e,t){this._isErasing||(this._applyBlendMode(o.REMOVE),this._isErasing=!0,this._cachedFillStyle=this.curFillColor.slice(),this.curFillColor=[1,1,1,e/255],this._cachedStrokeStyle=this.curStrokeColor.slice(),this.curStrokeColor=[1,1,1,t/255])},n.default.RendererGL.prototype.noErase=function(){this._isErasing&&(this._isErasing=!1,this.curFillColor=this._cachedFillStyle.slice(),this.curStrokeColor=this._cachedStrokeStyle.slice(),this.blendMode(this._cachedBlendMode))},n.default.RendererGL.prototype.strokeWeight=function(e){this.curStrokeWeight!==e&&(this.pointSize=e,this.curStrokeWeight=e)},n.default.RendererGL.prototype._getPixel=function(e,t){var r;return r=new Uint8Array(4),this.drawingContext.readPixels(e,t,1,1,this.drawingContext.RGBA,this.drawingContext.UNSIGNED_BYTE,r),[r[0],r[1],r[2],r[3]]},n.default.RendererGL.prototype.loadPixels=function(){var e=this._pixelsState;if(!0===this._pInst._glAttributes.preserveDrawingBuffer){var t=e.pixels,r=this.GL.drawingBufferWidth*this.GL.drawingBufferHeight*4;t instanceof Uint8Array&&t.length===r||(t=new Uint8Array(r),this._pixelsState._setProperty("pixels",t));var i=this._pInst._pixelDensity;this.GL.readPixels(0,0,this.width*i,this.height*i,this.GL.RGBA,this.GL.UNSIGNED_BYTE,t)}else console.log("loadPixels only works in WebGL when preserveDrawingBuffer is true.")},n.default.RendererGL.prototype.geometryInHash=function(e){return void 0!==this.retainedMode.geometry[e]},n.default.RendererGL.prototype.resize=function(e,t){n.default.Renderer.prototype.resize.call(this,e,t),this.GL.viewport(0,0,this.GL.drawingBufferWidth,this.GL.drawingBufferHeight),this._viewport=this.GL.getParameter(this.GL.VIEWPORT),this._curCamera._resize();var r=this._pixelsState;void 0!==r.pixels&&r._setProperty("pixels",new Uint8Array(this.GL.drawingBufferWidth*this.GL.drawingBufferHeight*4))},n.default.RendererGL.prototype.clear=function(){var e=(arguments.length<=0?void 0:arguments[0])||0,t=(arguments.length<=1?void 0:arguments[1])||0,r=(arguments.length<=2?void 0:arguments[2])||0,i=(arguments.length<=3?void 0:arguments[3])||0;this.GL.clearColor(e,t,r,i),this.GL.clear(this.GL.COLOR_BUFFER_BIT|this.GL.DEPTH_BUFFER_BIT)},n.default.RendererGL.prototype.applyMatrix=function(e,t,r,i,o,a){16===arguments.length?n.default.Matrix.prototype.apply.apply(this.uMVMatrix,arguments):this.uMVMatrix.apply([e,t,0,0,r,i,0,0,0,0,1,0,o,a,0,1])},n.default.RendererGL.prototype.translate=function(e,t,r){return e instanceof n.default.Vector&&(r=e.z,t=e.y,e=e.x),this.uMVMatrix.translate([e,t,r]),this},n.default.RendererGL.prototype.scale=function(e,t,r){return this.uMVMatrix.scale(e,t,r),this},n.default.RendererGL.prototype.rotate=function(e,t){return void 0===t?this.rotateZ(e):(n.default.Matrix.prototype.rotate.apply(this.uMVMatrix,arguments),this)},n.default.RendererGL.prototype.rotateX=function(e){return this.rotate(e,1,0,0),this},n.default.RendererGL.prototype.rotateY=function(e){return this.rotate(e,0,1,0),this},n.default.RendererGL.prototype.rotateZ=function(e){return this.rotate(e,0,0,1),this},n.default.RendererGL.prototype.push=function(){var e=n.default.Renderer.prototype.push.apply(this),t=e.properties;return t.uMVMatrix=this.uMVMatrix.copy(),t.uPMatrix=this.uPMatrix.copy(),t._curCamera=this._curCamera,this._curCamera=this._curCamera.copy(),t.ambientLightColors=this.ambientLightColors.slice(),t.specularColors=this.specularColors.slice(),t.directionalLightDirections=this.directionalLightDirections.slice(),t.directionalLightDiffuseColors=this.directionalLightDiffuseColors.slice(),t.directionalLightSpecularColors=this.directionalLightSpecularColors.slice(),t.pointLightPositions=this.pointLightPositions.slice(),t.pointLightDiffuseColors=this.pointLightDiffuseColors.slice(),t.pointLightSpecularColors=this.pointLightSpecularColors.slice(),t.spotLightPositions=this.spotLightPositions.slice(),t.spotLightDirections=this.spotLightDirections.slice(),t.spotLightDiffuseColors=this.spotLightDiffuseColors.slice(),t.spotLightSpecularColors=this.spotLightSpecularColors.slice(),t.spotLightAngle=this.spotLightAngle.slice(),t.spotLightConc=this.spotLightConc.slice(),t.userFillShader=this.userFillShader,t.userStrokeShader=this.userStrokeShader,t.userPointShader=this.userPointShader,t.pointSize=this.pointSize,t.curStrokeWeight=this.curStrokeWeight,t.curStrokeColor=this.curStrokeColor,t.curFillColor=this.curFillColor,t._useSpecularMaterial=this._useSpecularMaterial,t._useEmissiveMaterial=this._useEmissiveMaterial,t._useShininess=this._useShininess,t.constantAttenuation=this.constantAttenuation,t.linearAttenuation=this.linearAttenuation,t.quadraticAttenuation=this.quadraticAttenuation,t._enableLighting=this._enableLighting,t._useNormalMaterial=this._useNormalMaterial,t._tex=this._tex,t.drawMode=this.drawMode,e},n.default.RendererGL.prototype.resetMatrix=function(){return this.uMVMatrix=n.default.Matrix.identity(this._pInst),this},n.default.RendererGL.prototype._getImmediateStrokeShader=function(){var e=this.userStrokeShader;return e&&e.isStrokeShader()?e:this._getLineShader()},n.default.RendererGL.prototype._getRetainedStrokeShader=n.default.RendererGL.prototype._getImmediateStrokeShader,n.default.RendererGL.prototype._getImmediateFillShader=function(){var e=this.userFillShader;if(this._useNormalMaterial&&(!e||!e.isNormalShader()))return this._getNormalShader();if(this._enableLighting){if(!e||!e.isLightShader())return this._getLightShader()}else if(this._tex){if(!e||!e.isTextureShader())return this._getLightShader()}else if(!e)return this._getImmediateModeShader();return e},n.default.RendererGL.prototype._getRetainedFillShader=function(){if(this._useNormalMaterial)return this._getNormalShader();var e=this.userFillShader;if(this._enableLighting){if(!e||!e.isLightShader())return this._getLightShader()}else if(this._tex){if(!e||!e.isTextureShader())return this._getLightShader()}else if(!e)return this._getColorShader();return e},n.default.RendererGL.prototype._getImmediatePointShader=function(){var e=this.userPointShader;return e&&e.isPointShader()?e:this._getPointShader()},n.default.RendererGL.prototype._getRetainedLineShader=n.default.RendererGL.prototype._getImmediateLineShader,n.default.RendererGL.prototype._getLightShader=function(){return this._defaultLightShader||(this._pInst._glAttributes.perPixelLighting?this._defaultLightShader=new n.default.Shader(this,c.phongVert,c.phongFrag):this._defaultLightShader=new n.default.Shader(this,c.lightVert,c.lightTextureFrag)),this._defaultLightShader},n.default.RendererGL.prototype._getImmediateModeShader=function(){return this._defaultImmediateModeShader||(this._defaultImmediateModeShader=new n.default.Shader(this,c.immediateVert,c.vertexColorFrag)),this._defaultImmediateModeShader},n.default.RendererGL.prototype._getNormalShader=function(){return this._defaultNormalShader||(this._defaultNormalShader=new n.default.Shader(this,c.normalVert,c.normalFrag)),this._defaultNormalShader},n.default.RendererGL.prototype._getColorShader=function(){return this._defaultColorShader||(this._defaultColorShader=new n.default.Shader(this,c.normalVert,c.basicFrag)),this._defaultColorShader},n.default.RendererGL.prototype._getPointShader=function(){return this._defaultPointShader||(this._defaultPointShader=new n.default.Shader(this,c.pointVert,c.pointFrag)),this._defaultPointShader},n.default.RendererGL.prototype._getLineShader=function(){return this._defaultLineShader||(this._defaultLineShader=new n.default.Shader(this,c.lineVert,c.lineFrag)),this._defaultLineShader},n.default.RendererGL.prototype._getFontShader=function(){return this._defaultFontShader||(this.GL.getExtension("OES_standard_derivatives"),this._defaultFontShader=new n.default.Shader(this,c.fontVert,c.fontFrag)),this._defaultFontShader},n.default.RendererGL.prototype._getEmptyTexture=function(){if(!this._emptyTexture){var e=new n.default.Image(1,1);e.set(0,0,255),this._emptyTexture=new n.default.Texture(this,e)}return this._emptyTexture},n.default.RendererGL.prototype.getTexture=function(e){var t=this.textures,r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0){var l=a.value;if(l.src===e)return l}}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}var u=new n.default.Texture(this,e);return t.push(u),u},n.default.RendererGL.prototype._setStrokeUniforms=function(e){e.bindShader(),e.setUniform("uMaterialColor",this.curStrokeColor),e.setUniform("uStrokeWeight",this.curStrokeWeight)},n.default.RendererGL.prototype._setFillUniforms=function(e){e.bindShader(),e.setUniform("uMaterialColor",this.curFillColor),e.setUniform("isTexture",!!this._tex),this._tex&&e.setUniform("uSampler",this._tex),e.setUniform("uTint",this._tint),e.setUniform("uSpecular",this._useSpecularMaterial),e.setUniform("uEmissive",this._useEmissiveMaterial),e.setUniform("uShininess",this._useShininess),e.setUniform("uUseLighting",this._enableLighting);var t=this.pointLightDiffuseColors.length/3;e.setUniform("uPointLightCount",t),e.setUniform("uPointLightLocation",this.pointLightPositions),e.setUniform("uPointLightDiffuseColors",this.pointLightDiffuseColors),e.setUniform("uPointLightSpecularColors",this.pointLightSpecularColors);var r=this.directionalLightDiffuseColors.length/3;e.setUniform("uDirectionalLightCount",r),e.setUniform("uLightingDirection",this.directionalLightDirections),e.setUniform("uDirectionalDiffuseColors",this.directionalLightDiffuseColors),e.setUniform("uDirectionalSpecularColors",this.directionalLightSpecularColors);var i=this.ambientLightColors.length/3;e.setUniform("uAmbientLightCount",i),e.setUniform("uAmbientColor",this.ambientLightColors);var n=this.spotLightDiffuseColors.length/3;e.setUniform("uSpotLightCount",n),e.setUniform("uSpotLightAngle",this.spotLightAngle),e.setUniform("uSpotLightConc",this.spotLightConc),e.setUniform("uSpotLightDiffuseColors",this.spotLightDiffuseColors),e.setUniform("uSpotLightSpecularColors",this.spotLightSpecularColors),e.setUniform("uSpotLightLocation",this.spotLightPositions),e.setUniform("uSpotLightDirection",this.spotLightDirections),e.setUniform("uConstantAttenuation",this.constantAttenuation),e.setUniform("uLinearAttenuation",this.linearAttenuation),e.setUniform("uQuadraticAttenuation",this.quadraticAttenuation),e.bindTextures()},n.default.RendererGL.prototype._setPointUniforms=function(e){e.bindShader(),e.setUniform("uMaterialColor",this.curStrokeColor),e.setUniform("uPointSize",this.pointSize*this._pInst._pixelDensity)},n.default.RendererGL.prototype._bindBuffer=function(e,t,r,i,n){if(t=t||this.GL.ARRAY_BUFFER,this.GL.bindBuffer(t,e),void 0!==r){var o=new(i||Float32Array)(r);this.GL.bufferData(t,o,n||this.GL.STATIC_DRAW)}},n.default.RendererGL.prototype._arraysEqual=function(e,t){var r=e.length;if(r!==t.length)return!1;for(var i=0;i<r;i++)if(e[i]!==t[i])return!1;return!0},n.default.RendererGL.prototype._isTypedArray=function(e){return Float32Array,Float64Array,Int16Array,Uint16Array,e instanceof Uint32Array},n.default.RendererGL.prototype._flatten=function(e){if(0===e.length)return[];if(2e4<e.length){var t,r=Object.prototype.toString,i=[],n=e.slice();for(t=n.pop();"[object Array]"===r.call(t)?n.push.apply(n,u(t)):i.push(t),n.length&&void 0!==(t=n.pop()););return i.reverse(),i}var o;return(o=[]).concat.apply(o,u(e))},n.default.RendererGL.prototype._vToNArray=function(e){var t=[],r=!0,i=!1,n=void 0;try{for(var o,a=e[Symbol.iterator]();!(r=(o=a.next()).done);r=!0){var s=o.value;t.push(s.x,s.y,s.z)}}catch(e){i=!0,n=e}finally{try{r||null==a.return||a.return()}finally{if(i)throw n}}return t},n.default.prototype._assert3d=function(e){if(!this._renderer.isP3D)throw new Error("".concat(e,"() is only supported in WEBGL mode. If you'd like to use 3D graphics and WebGL, see https://p5js.org/examples/form-3d-primitives.html for more information."))},n.default.RendererGL.prototype._initTessy=function(){var e=new a.default.GluTesselator;return e.gluTessCallback(a.default.gluEnum.GLU_TESS_VERTEX_DATA,(function(e,t){t[t.length]=e[0],t[t.length]=e[1],t[t.length]=e[2]})),e.gluTessCallback(a.default.gluEnum.GLU_TESS_BEGIN,(function(e){e!==a.default.primitiveType.GL_TRIANGLES&&console.log("expected TRIANGLES but got type: ".concat(e))})),e.gluTessCallback(a.default.gluEnum.GLU_TESS_ERROR,(function(e){console.log("error callback"),console.log("error number: ".concat(e))})),e.gluTessCallback(a.default.gluEnum.GLU_TESS_COMBINE,(function(e,t,r){return[e[0],e[1],e[2]]})),e.gluTessCallback(a.default.gluEnum.GLU_TESS_EDGE_FLAG,(function(e){})),e},n.default.RendererGL.prototype._triangulate=function(e){this._tessy.gluTessNormal(0,0,1);var t=[];this._tessy.gluTessBeginPolygon(t);for(var r=0;r<e.length;r++){this._tessy.gluTessBeginContour();for(var i=e[r],n=0;n<i.length;n+=3){var o=[i[n],i[n+1],i[n+2]];this._tessy.gluTessVertex(o,o)}this._tessy.gluTessEndContour()}return this._tessy.gluTessEndPolygon(),t},n.default.RendererGL.prototype._bezierCoefficients=function(e){var t=e*e,r=1-e,i=r*r;return[i*r,3*i*e,3*r*t,t*e]},n.default.RendererGL.prototype._quadraticCoefficients=function(e){var t=1-e;return[t*t,2*t*e,e*e]},n.default.RendererGL.prototype._bezierToCatmull=function(e){return[e[1],e[1]+(e[2]-e[0])/this._curveTightness,e[2]-(e[3]-e[1])/this._curveTightness,e[2]]};var d=n.default.RendererGL;r.default=d},{"../core/constants":26,"../core/main":36,"../core/p5.Renderer":39,"./p5.Camera":84,"./p5.Matrix":86,"./p5.Shader":91,libtess:10,path:13}],91:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i,n=(i=e("../core/main"))&&i.__esModule?i:{default:i};n.default.Shader=function(e,t,r){this._renderer=e,this._vertSrc=t,this._fragSrc=r,this._vertShader=-1,this._fragShader=-1,this._glProgram=0,this._loadedAttributes=!1,this.attributes={},this._loadedUniforms=!1,this.uniforms={},this._bound=!1,this.samplers=[]},n.default.Shader.prototype.init=function(){if(0===this._glProgram){var e=this._renderer.GL;if(this._vertShader=e.createShader(e.VERTEX_SHADER),e.shaderSource(this._vertShader,this._vertSrc),e.compileShader(this._vertShader),!e.getShaderParameter(this._vertShader,e.COMPILE_STATUS))return console.error("Yikes! An error occurred compiling the vertex shader:".concat(e.getShaderInfoLog(this._vertShader))),null;if(this._fragShader=e.createShader(e.FRAGMENT_SHADER),e.shaderSource(this._fragShader,this._fragSrc),e.compileShader(this._fragShader),!e.getShaderParameter(this._fragShader,e.COMPILE_STATUS))return console.error("Darn! An error occurred compiling the fragment shader:".concat(e.getShaderInfoLog(this._fragShader))),null;this._glProgram=e.createProgram(),e.attachShader(this._glProgram,this._vertShader),e.attachShader(this._glProgram,this._fragShader),e.linkProgram(this._glProgram),e.getProgramParameter(this._glProgram,e.LINK_STATUS)||console.error("Snap! Error linking shader program: ".concat(e.getProgramInfoLog(this._glProgram))),this._loadAttributes(),this._loadUniforms()}return this},n.default.Shader.prototype._loadAttributes=function(){if(!this._loadedAttributes){this.attributes={};for(var e=this._renderer.GL,t=e.getProgramParameter(this._glProgram,e.ACTIVE_ATTRIBUTES),r=0;r<t;++r){var i=e.getActiveAttrib(this._glProgram,r),n=i.name,o=e.getAttribLocation(this._glProgram,n),a={};a.name=n,a.location=o,a.index=r,a.type=i.type,a.size=i.size,this.attributes[n]=a}this._loadedAttributes=!0}},n.default.Shader.prototype._loadUniforms=function(){if(!this._loadedUniforms){for(var e=this._renderer.GL,t=e.getProgramParameter(this._glProgram,e.ACTIVE_UNIFORMS),r=0,i=0;i<t;++i){var n=e.getActiveUniform(this._glProgram,i),o={};o.location=e.getUniformLocation(this._glProgram,n.name),o.size=n.size;var a=n.name;1<n.size&&(a=a.substring(0,a.indexOf("[0]"))),o.name=a,o.type=n.type,o._cachedData=void 0,o.type===e.SAMPLER_2D&&(o.samplerIndex=r,r++,this.samplers.push(o)),o.isArray=o.type===e.FLOAT_MAT3||o.type===e.FLOAT_MAT4||o.type===e.FLOAT_VEC2||o.type===e.FLOAT_VEC3||o.type===e.FLOAT_VEC4||o.type===e.INT_VEC2||o.type===e.INT_VEC3||o.type===e.INT_VEC4,this.uniforms[a]=o}this._loadedUniforms=!0}},n.default.Shader.prototype.compile=function(){},n.default.Shader.prototype.bindShader=function(){this.init(),this._bound||(this.useProgram(),this._bound=!0,this._setMatrixUniforms(),this.setUniform("uViewport",this._renderer._viewport))},n.default.Shader.prototype.unbindShader=function(){return this._bound&&(this.unbindTextures(),this._bound=!1),this},n.default.Shader.prototype.bindTextures=function(){var e=this._renderer.GL,t=!0,r=!1,i=void 0;try{for(var n,o=this.samplers[Symbol.iterator]();!(t=(n=o.next()).done);t=!0){var a=n.value,s=a.texture;void 0===s&&(s=this._renderer._getEmptyTexture()),e.activeTexture(e.TEXTURE0+a.samplerIndex),s.bindTexture(),s.update(),e.uniform1i(a.location,a.samplerIndex)}}catch(e){r=!0,i=e}finally{try{t||null==o.return||o.return()}finally{if(r)throw i}}},n.default.Shader.prototype.updateTextures=function(){var e=!0,t=!1,r=void 0;try{for(var i,n=this.samplers[Symbol.iterator]();!(e=(i=n.next()).done);e=!0){var o=i.value.texture;o&&o.update()}}catch(e){t=!0,r=e}finally{try{e||null==n.return||n.return()}finally{if(t)throw r}}},n.default.Shader.prototype.unbindTextures=function(){},n.default.Shader.prototype._setMatrixUniforms=function(){this.setUniform("uProjectionMatrix",this._renderer.uPMatrix.mat4),this.isStrokeShader()&&("default"===this._renderer._curCamera.cameraType?this.setUniform("uPerspective",1):this.setUniform("uPerspective",0)),this.setUniform("uModelViewMatrix",this._renderer.uMVMatrix.mat4),this.setUniform("uViewMatrix",this._renderer._curCamera.cameraMatrix.mat4),this.uniforms.uNormalMatrix&&(this._renderer.uNMatrix.inverseTranspose(this._renderer.uMVMatrix),this.setUniform("uNormalMatrix",this._renderer.uNMatrix.mat3))},n.default.Shader.prototype.useProgram=function(){var e=this._renderer.GL;return this._renderer._curShader!==this&&(e.useProgram(this._glProgram),this._renderer._curShader=this),this},n.default.Shader.prototype.setUniform=function(e,t){var r=this.uniforms[e];if(r){var i=this._renderer.GL;if(r.isArray){if(r._cachedData&&this._renderer._arraysEqual(r._cachedData,t))return;r._cachedData=t.slice(0)}else{if(r._cachedData&&r._cachedData===t)return;r._cachedData=t}var n=r.location;switch(this.useProgram(),r.type){case i.BOOL:!0===t?i.uniform1i(n,1):i.uniform1i(n,0);break;case i.INT:1<r.size?t.length&&i.uniform1iv(n,t):i.uniform1i(n,t);break;case i.FLOAT:1<r.size?t.length&&i.uniform1fv(n,t):i.uniform1f(n,t);break;case i.FLOAT_MAT3:i.uniformMatrix3fv(n,!1,t);break;case i.FLOAT_MAT4:i.uniformMatrix4fv(n,!1,t);break;case i.FLOAT_VEC2:1<r.size?t.length&&i.uniform2fv(n,t):i.uniform2f(n,t[0],t[1]);break;case i.FLOAT_VEC3:1<r.size?t.length&&i.uniform3fv(n,t):i.uniform3f(n,t[0],t[1],t[2]);break;case i.FLOAT_VEC4:1<r.size?t.length&&i.uniform4fv(n,t):i.uniform4f(n,t[0],t[1],t[2],t[3]);break;case i.INT_VEC2:1<r.size?t.length&&i.uniform2iv(n,t):i.uniform2i(n,t[0],t[1]);break;case i.INT_VEC3:1<r.size?t.length&&i.uniform3iv(n,t):i.uniform3i(n,t[0],t[1],t[2]);break;case i.INT_VEC4:1<r.size?t.length&&i.uniform4iv(n,t):i.uniform4i(n,t[0],t[1],t[2],t[3]);break;case i.SAMPLER_2D:i.activeTexture(i.TEXTURE0+r.samplerIndex),r.texture=this._renderer.getTexture(t),i.uniform1i(r.location,r.samplerIndex)}return this}},n.default.Shader.prototype.isLightShader=function(){return void 0!==this.attributes.aNormal||void 0!==this.uniforms.uUseLighting||void 0!==this.uniforms.uAmbientLightCount||void 0!==this.uniforms.uDirectionalLightCount||void 0!==this.uniforms.uPointLightCount||void 0!==this.uniforms.uAmbientColor||void 0!==this.uniforms.uDirectionalDiffuseColors||void 0!==this.uniforms.uDirectionalSpecularColors||void 0!==this.uniforms.uPointLightLocation||void 0!==this.uniforms.uPointLightDiffuseColors||void 0!==this.uniforms.uPointLightSpecularColors||void 0!==this.uniforms.uLightingDirection||void 0!==this.uniforms.uSpecular},n.default.Shader.prototype.isNormalShader=function(){return void 0!==this.attributes.aNormal},n.default.Shader.prototype.isTextureShader=function(){return 0<this.samplerIndex},n.default.Shader.prototype.isColorShader=function(){return void 0!==this.attributes.aVertexColor||void 0!==this.uniforms.uMaterialColor},n.default.Shader.prototype.isTexLightShader=function(){return this.isLightShader()&&this.isTextureShader()},n.default.Shader.prototype.isStrokeShader=function(){return void 0!==this.uniforms.uStrokeWeight},n.default.Shader.prototype.enableAttrib=function(e,t,r,i,n,o){if(e){var a=e.location;if(-1!==a){var s=this._renderer.GL;e.enabled||(s.enableVertexAttribArray(a),e.enabled=!0),this._renderer.GL.vertexAttribPointer(a,t,r||s.FLOAT,i||!1,n||0,o||0)}}return this};var o=n.default.Shader;r.default=o},{"../core/main":36}],92:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}o.default.Texture=function(e,t){this._renderer=e;var r=this._renderer.GL;this.src=t,this.glTex=void 0,this.glTarget=r.TEXTURE_2D,this.glFormat=r.RGBA,this.mipmaps=!1,this.glMinFilter=r.LINEAR,this.glMagFilter=r.LINEAR,this.glWrapS=r.CLAMP_TO_EDGE,this.glWrapT=r.CLAMP_TO_EDGE,this.isSrcMediaElement=void 0!==o.default.MediaElement&&t instanceof o.default.MediaElement,this._videoPrevUpdateTime=0,this.isSrcHTMLElement=void 0!==o.default.Element&&t instanceof o.default.Element&&!(t instanceof o.default.Graphics),this.isSrcP5Image=t instanceof o.default.Image,this.isSrcP5Graphics=t instanceof o.default.Graphics,this.isImageData="undefined"!=typeof ImageData&&t instanceof ImageData;var i=this._getTextureDataFromSource();return this.width=i.width,this.height=i.height,this.init(i),this},o.default.Texture.prototype._getTextureDataFromSource=function(){var e;return this.isSrcP5Image?e=this.src.canvas:this.isSrcMediaElement||this.isSrcP5Graphics||this.isSrcHTMLElement?e=this.src.elt:this.isImageData&&(e=this.src),e},o.default.Texture.prototype.init=function(e){var t=this._renderer.GL;if(this.glTex=t.createTexture(),this.glWrapS=this._renderer.textureWrapX,this.glWrapT=this._renderer.textureWrapY,this.setWrapMode(this.glWrapS,this.glWrapT),this.bindTexture(),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,this.glMagFilter),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,this.glMinFilter),0===this.width||0===this.height||this.isSrcMediaElement&&!this.src.loadedmetadata){var r=new Uint8Array([1,1,1,1]);t.texImage2D(this.glTarget,0,t.RGBA,1,1,0,this.glFormat,t.UNSIGNED_BYTE,r)}else t.texImage2D(this.glTarget,0,this.glFormat,this.glFormat,t.UNSIGNED_BYTE,e)},o.default.Texture.prototype.update=function(){var e=this.src;if(0===e.width||0===e.height)return!1;var t=this._getTextureDataFromSource(),r=!1,i=this._renderer.GL;return t.width!==this.width||t.height!==this.height?(r=!0,this.width=t.width,this.height=t.height,this.isSrcP5Image?e.setModified(!1):(this.isSrcMediaElement||this.isSrcHTMLElement)&&e.setModified(!0)):this.isSrcP5Image?e.isModified()&&(r=!0,e.setModified(!1)):this.isSrcMediaElement?e.isModified()?(r=!0,e.setModified(!1)):e.loadedmetadata&&this._videoPrevUpdateTime!==e.time()&&(this._videoPrevUpdateTime=e.time(),r=!0):this.isImageData?e._dirty&&(r=!(e._dirty=!1)):r=!0,r&&(this.bindTexture(),i.texImage2D(this.glTarget,0,this.glFormat,this.glFormat,i.UNSIGNED_BYTE,t)),r},o.default.Texture.prototype.bindTexture=function(){return this._renderer.GL.bindTexture(this.glTarget,this.glTex),this},o.default.Texture.prototype.unbindTexture=function(){this._renderer.GL.bindTexture(this.glTarget,null)},o.default.Texture.prototype.setInterpolation=function(e,t){var r=this._renderer.GL;e===a.NEAREST?this.glMinFilter=r.NEAREST:this.glMinFilter=r.LINEAR,t===a.NEAREST?this.glMagFilter=r.NEAREST:this.glMagFilter=r.LINEAR,this.bindTexture(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,this.glMinFilter),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,this.glMagFilter),this.unbindTexture()},o.default.Texture.prototype.setWrapMode=function(e,t){function r(e){return 0==(e&e-1)}var i=this._renderer.GL,n=r(this.width),o=r(this.height);e===a.REPEAT?n&&o?this.glWrapS=i.REPEAT:(console.warn("You tried to set the wrap mode to REPEAT but the texture size is not a power of two. Setting to CLAMP instead"),this.glWrapS=i.CLAMP_TO_EDGE):e===a.MIRROR?n&&o?this.glWrapS=i.MIRRORED_REPEAT:(console.warn("You tried to set the wrap mode to MIRROR but the texture size is not a power of two. Setting to CLAMP instead"),this.glWrapS=i.CLAMP_TO_EDGE):this.glWrapS=i.CLAMP_TO_EDGE,t===a.REPEAT?n&&o?this.glWrapT=i.REPEAT:(console.warn("You tried to set the wrap mode to REPEAT but the texture size is not a power of two. Setting to CLAMP instead"),this.glWrapT=i.CLAMP_TO_EDGE):t===a.MIRROR?n&&o?this.glWrapT=i.MIRRORED_REPEAT:(console.warn("You tried to set the wrap mode to MIRROR but the texture size is not a power of two. Setting to CLAMP instead"),this.glWrapT=i.CLAMP_TO_EDGE):this.glWrapT=i.CLAMP_TO_EDGE,this.bindTexture(),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,this.glWrapS),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,this.glWrapT),this.unbindTexture()};var l=o.default.Texture;r.default=l},{"../core/constants":26,"../core/main":36}],93:[function(e,t,r){"use strict";function i(e){return(i="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})(e)}var n,o=(n=e("../core/main"))&&n.__esModule?n:{default:n},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e("../core/constants"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e,t){this.width=e,this.height=t,this.infos=[],this.findImage=function(e){var t,r,i=this.width*this.height;if(i<e)throw new Error("font is too complex to render in 3D");for(var n=this.infos.length-1;0<=n;--n){var o=this.infos[n];if(o.index+e<i){r=(t=o).imageData;break}}if(!t){try{r=new ImageData(this.width,this.height)}catch(e){var a=document.getElementsByTagName("canvas")[0],s=!a;a||((a=document.createElement("canvas")).style.display="none",document.body.appendChild(a));var l=a.getContext("2d");l&&(r=l.createImageData(this.width,this.height)),s&&document.body.removeChild(a)}t={index:0,imageData:r},this.infos.push(t)}var u=t.index;return t.index+=e,r._dirty=!0,{imageData:r,index:u}}}function u(e,t,r,i,n){var o=e.imageData.data,a=4*e.index++;o[a++]=t,o[a++]=r,o[a++]=i,o[a++]=n}function h(e){this.font=e,this.strokeImageInfos=new l(64,64),this.colDimImageInfos=new l(64,64),this.rowDimImageInfos=new l(64,64),this.colCellImageInfos=new l(64,64),this.rowCellImageInfos=new l(64,64),this.glyphInfos={},this.getGlyphInfo=function(e){var t=this.glyphInfos[e.index];if(t)return t;var r,i=e.getBoundingBox(),n=i.x1,a=i.y1,s=i.x2-n,l=i.y2-a,h=e.path.commands;if(0==s||0==l||!h.length)return this.glyphInfos[e.index]={};var d,f,p,m,y=[],v=[],g=[];for(r=8;0<=r;--r)g.push([]);for(r=8;0<=r;--r)v.push([]);function b(e,t,r){var i=y.length;function n(e,t,r){for(var i=e.length;0<i--;){var n=e[i];n<t&&(t=n),r<n&&(r=n)}return{min:t,max:r}}y.push(r);for(var o=n(e,1,0),a=Math.max(Math.floor(9*o.min),0),s=Math.min(Math.ceil(9*o.max),9),l=a;l<s;++l)g[l].push(i);for(var u=n(t,1,0),h=Math.max(Math.floor(9*u.min),0),c=Math.min(Math.ceil(9*u.max),9),d=h;d<c;++d)v[d].push(i)}function _(e){return(t=255*e)<0?0:255<t?255:t;var t}function x(e,t,r,i){this.p0=e,this.c0=t,this.c1=r,this.p1=i,this.toQuadratic=function(){return{x:this.p0.x,y:this.p0.y,x1:this.p1.x,y1:this.p1.y,cx:(3*(this.c0.x+this.c1.x)-(this.p0.x+this.p1.x))/4,cy:(3*(this.c0.y+this.c1.y)-(this.p0.y+this.p1.y))/4}},this.quadError=function(){return o.default.Vector.sub(o.default.Vector.sub(this.p1,this.p0),o.default.Vector.mult(o.default.Vector.sub(this.c1,this.c0),3)).mag()/2},this.split=function(e){var t=o.default.Vector.lerp(this.p0,this.c0,e),r=o.default.Vector.lerp(this.c0,this.c1,e),i=o.default.Vector.lerp(t,r,e);this.c1=o.default.Vector.lerp(this.c1,this.p1,e),this.c0=o.default.Vector.lerp(r,this.c1,e);var n=o.default.Vector.lerp(i,this.c0,e),a=new x(this.p0,t,i,n);return this.p0=n,a},this.splitInflections=function(){var e=o.default.Vector.sub(this.c0,this.p0),t=o.default.Vector.sub(o.default.Vector.sub(this.c1,this.c0),e),r=o.default.Vector.sub(o.default.Vector.sub(o.default.Vector.sub(this.p1,this.c1),e),o.default.Vector.mult(t,2)),i=[],n=t.x*r.y-t.y*r.x;if(0!==n){var a=e.x*r.y-e.y*r.x,s=e.x*t.y-e.y*t.x,l=a*a-4*n*s;if(0<=l){n<0&&(n=-n,a=-a,s=-s);var u=Math.sqrt(l),h=(-a-u)/(2*n),c=(-a+u)/(2*n);0<h&&h<1&&(i.push(this.split(h)),c=1-(1-c)/(1-h)),0<c&&c<1&&i.push(this.split(c))}}return i.push(this),i}}function w(e,t,r,i,n,a,s,l){var u=new x(new o.default.Vector(e,t),new o.default.Vector(r,i),new o.default.Vector(n,a),new o.default.Vector(s,l)).splitInflections(),h=[],d=30/c,f=!0,p=!1,m=void 0;try{for(var y,v=u[Symbol.iterator]();!(f=(y=v.next()).done);f=!0){for(var g=y.value,b=[],_=void 0;!(.125<=(_=d/g.quadError()));){var w=Math.pow(_,1/3),S=g.split(w),M=g.split(1-w/(1-w));h.push(S),b.push(g),g=M}_<1&&h.push(g.split(.5)),h.push(g),Array.prototype.push.apply(h,b.reverse())}}catch(e){p=!0,m=e}finally{try{f||null==v.return||v.return()}finally{if(p)throw m}}return h}function S(e,t,r,i){b([e,r],[t,i],{x:e,y:t,cx:(e+r)/2,cy:(t+i)/2})}function M(e,t,r,i){return Math.abs(r-e)<1e-5&&Math.abs(i-t)<1e-5}var E=!0,T=!1,C=void 0;try{for(var O,P=h[Symbol.iterator]();!(E=(O=P.next()).done);E=!0){var L=O.value,k=(L.x-n)/s,A=(L.y-a)/l;if(!M(d,f,k,A)){switch(L.type){case"M":p=k,m=A;break;case"L":S(d,f,k,A);break;case"Q":var R=(L.x1-n)/s,D=(L.y1-a)/l;b([d,k,R],[f,A,D],{x:d,y:f,cx:R,cy:D});break;case"Z":M(d,f,p,m)?y.push({x:d,y:f}):(S(d,f,p,m),y.push({x:p,y:m}));break;case"C":for(var I=w(d,f,(L.x1-n)/s,(L.y1-a)/l,(L.x2-n)/s,(L.y2-a)/l,k,A),U=0;U<I.length;U++){var N=I[U].toQuadratic();b([N.x,N.x1,N.cx],[N.y,N.y1,N.cy],N)}break;default:throw new Error("unknown command type: ".concat(L.type))}d=k,f=A}}}catch(e){T=!0,C=e}finally{try{E||null==P.return||P.return()}finally{if(T)throw C}}for(var F=y.length,B=this.strokeImageInfos.findImage(F),G=B.index,j=0;j<F;++j){var V=y[j];u(B,_(V.x),_(V.y),_(V.cx),_(V.cy))}function z(e,t,r){for(var i=e.length,n=t.findImage(i),o=n.index,a=0,s=0;s<i;++s)a+=e[s].length;for(var l=r.findImage(a),h=0;h<i;++h){var c=e[h],d=c.length,f=l.index;u(n,f>>7,127&f,d>>7,127&d);for(var p=0;p<d;++p){var m=c[p]+G;u(l,m>>7,127&m,0,0)}}return{cellImageInfo:l,dimOffset:o,dimImageInfo:n}}return(t=this.glyphInfos[e.index]={glyph:e,uGlyphRect:[i.x1,-i.y1,i.x2,-i.y2],strokeImageInfo:B,strokes:y,colInfo:z(g,this.colDimImageInfos,this.colCellImageInfos),rowInfo:z(v,this.rowDimImageInfos,this.rowCellImageInfos)}).uGridOffset=[t.colInfo.dimOffset,t.rowInfo.dimOffset],t}}e("./p5.Shader"),e("./p5.RendererGL.Retained"),o.default.RendererGL.prototype._applyTextProperties=function(){},o.default.RendererGL.prototype.textWidth=function(e){return this._isOpenType()?this._textFont._textWidth(e,this._textSize):0};var c=Math.sqrt(3);o.default.RendererGL.prototype._renderText=function(e,t,r,i,n){if(this._textFont&&"string"!=typeof this._textFont){if(!(n<=i)&&this._doFill){if(!this._isOpenType())return console.log("WEBGL: only Opentype (.otf) and Truetype (.ttf) fonts are supported"),e;e.push();var s=this._doStroke,l=this.drawMode;this._doStroke=!1,this.drawMode=a.TEXTURE;var u=this._textFont.font,c=this._textFont._fontInfo;c=c||(this._textFont._fontInfo=new h(u));var d=this._textFont._handleAlignment(this,t,r,i),f=this._textSize/u.unitsPerEm;this.translate(d.x,d.y,0),this.scale(f,f,1);var p=this.GL,m=!this._defaultFontShader,y=this._getFontShader();y.init(),y.bindShader(),m&&(y.setUniform("uGridImageSize",[64,64]),y.setUniform("uCellsImageSize",[64,64]),y.setUniform("uStrokeImageSize",[64,64]),y.setUniform("uGridSize",[9,9])),this._applyColorBlend(this.curFillColor);var v=this.retainedMode.geometry.glyph;if(!v){var g=this._textGeom=new o.default.Geometry(1,1,(function(){for(var e=0;e<=1;e++)for(var t=0;t<=1;t++)this.vertices.push(new o.default.Vector(t,e,0)),this.uvs.push(t,e)}));g.computeFaces().computeNormals(),v=this.createBuffers("glyph",g)}var b=!0,_=!1,x=void 0;try{for(var w,S=this.retainedMode.buffers.text[Symbol.iterator]();!(b=(w=S.next()).done);b=!0)w.value._prepareBuffer(v,y)}catch(e){_=!0,x=e}finally{try{b||null==S.return||S.return()}finally{if(_)throw x}}this._bindBuffer(v.indexBuffer,p.ELEMENT_ARRAY_BUFFER),y.setUniform("uMaterialColor",this.curFillColor);try{var M=0,E=null,T=u.stringToGlyphs(t),C=!0,O=!1,P=void 0;try{for(var L,k=T[Symbol.iterator]();!(C=(L=k.next()).done);C=!0){var A=L.value;E&&(M+=u.getKerningValue(E,A));var R=c.getGlyphInfo(A);if(R.uGlyphRect){var D=R.rowInfo,I=R.colInfo;y.setUniform("uSamplerStrokes",R.strokeImageInfo.imageData),y.setUniform("uSamplerRowStrokes",D.cellImageInfo.imageData),y.setUniform("uSamplerRows",D.dimImageInfo.imageData),y.setUniform("uSamplerColStrokes",I.cellImageInfo.imageData),y.setUniform("uSamplerCols",I.dimImageInfo.imageData),y.setUniform("uGridOffset",R.uGridOffset),y.setUniform("uGlyphRect",R.uGlyphRect),y.setUniform("uGlyphOffset",M),y.bindTextures(),p.drawElements(p.TRIANGLES,6,this.GL.UNSIGNED_SHORT,0)}M+=A.advanceWidth,E=A}}catch(e){O=!0,P=e}finally{try{C||null==k.return||k.return()}finally{if(O)throw P}}}finally{y.unbindShader(),this._doStroke=s,this.drawMode=l,e.pop()}return e}}else console.log("WEBGL: you must load and set a font before drawing text. See `loadFont` and `textFont` for more details.")}},{"../core/constants":26,"../core/main":36,"./p5.RendererGL.Retained":89,"./p5.Shader":91}]},{},[21])(21)},830:(e,t)=>{t.encode=function(e){var t="";for(var r in e)e.hasOwnProperty(r)&&(t.length&&(t+="&"),t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t},t.decode=function(e){for(var t={},r=e.split("&"),i=0,n=r.length;i<n;i++){var o=r[i].split("=");t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}},187:e=>{var t=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var i,n,o=e,a=e.indexOf("["),s=e.indexOf("]");-1!=a&&-1!=s&&(e=e.substring(0,a)+e.substring(a,s).replace(/:/g,";")+e.substring(s,e.length));for(var l,u,h=t.exec(e||""),c={},d=14;d--;)c[r[d]]=h[d]||"";return-1!=a&&-1!=s&&(c.source=o,c.host=c.host.substring(1,c.host.length-1).replace(/;/g,":"),c.authority=c.authority.replace("[","").replace("]","").replace(/;/g,":"),c.ipv6uri=!0),c.pathNames=(i=c.path,n=i.replace(/\/{2,9}/g,"/").split("/"),"/"!=i.substr(0,1)&&0!==i.length||n.splice(0,1),"/"==i.substr(i.length-1,1)&&n.splice(n.length-1,1),n),c.queryKey=(l=c.query,u={},l.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,r){t&&(u[t]=r)})),u),c}},751:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Socket=t.io=t.Manager=t.protocol=void 0;const i=r(744),n=r(703),o=r(277);Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return o.Socket}});const a=r(227)("socket.io-client");e.exports=t=l;const s=t.managers={};function l(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};const r=i.url(e),o=r.source,l=r.id,u=r.path,h=s[l]&&u in s[l].nsps;let c;return t.forceNew||t["force new connection"]||!1===t.multiplex||h?(a("ignoring socket cache for %s",o),c=new n.Manager(o,t)):(s[l]||(a("new io instance for %s",o),s[l]=new n.Manager(o,t)),c=s[l]),r.query&&!t.query&&(t.query=r.query),c.socket(r.path,t)}t.io=l;var u=r(485);Object.defineProperty(t,"protocol",{enumerable:!0,get:function(){return u.protocol}}),t.connect=l;var h=r(703);Object.defineProperty(t,"Manager",{enumerable:!0,get:function(){return h.Manager}})},703:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Manager=void 0;const i=r(983),n=r(277),o=r(767),a=r(485),s=r(657),l=r(10),u=r(227)("socket.io-client:manager");t.Manager=class extends o{constructor(e,t){super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor||.5),this.backoff=new l({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;const r=t.parser||a;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(u("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;u("opening %s",this.uri),this.engine=i(this.uri,this.opts);const t=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const n=s.on(t,"open",(function(){r.onopen(),e&&e()})),o=s.on(t,"error",(t=>{u("error"),r.cleanup(),r._readyState="closed",super.emit("error",t),e?e(t):r.maybeReconnectOnOpen()}));if(!1!==this._timeout){const e=this._timeout;u("connect attempt will timeout after %d",e),0===e&&n();const r=setTimeout((()=>{u("connect attempt timed out after %d",e),n(),t.close(),t.emit("error",new Error("timeout"))}),e);this.subs.push((function(){clearTimeout(r)}))}return this.subs.push(n),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){u("open"),this.cleanup(),this._readyState="open",super.emit("open");const e=this.engine;this.subs.push(s.on(e,"ping",this.onping.bind(this)),s.on(e,"data",this.ondata.bind(this)),s.on(e,"error",this.onerror.bind(this)),s.on(e,"close",this.onclose.bind(this)),s.on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){super.emit("ping")}ondata(e){this.decoder.add(e)}ondecoded(e){super.emit("packet",e)}onerror(e){u("error",e),super.emit("error",e)}socket(e,t){let r=this.nsps[e];return r||(r=new n.Socket(this,e,t),this.nsps[e]=r),r}_destroy(e){const t=Object.keys(this.nsps);for(const e of t)if(this.nsps[e].active)return void u("socket %s is still active, skipping close",e);this._close()}_packet(e){u("writing packet %j",e),e.query&&0===e.type&&(e.nsp+="?"+e.query);const t=this.encoder.encode(e);for(let r=0;r<t.length;r++)this.engine.write(t[r],e.options)}cleanup(){u("cleanup"),this.subs.forEach((e=>e())),this.subs.length=0,this.decoder.destroy()}_close(){u("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,"opening"===this._readyState&&this.cleanup(),this.backoff.reset(),this._readyState="closed",this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e){u("onclose"),this.cleanup(),this.backoff.reset(),this._readyState="closed",super.emit("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)u("reconnect failed"),this.backoff.reset(),super.emit("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();u("will wait %dms before reconnect attempt",t),this._reconnecting=!0;const r=setTimeout((()=>{e.skipReconnect||(u("attempting reconnect"),super.emit("reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open((t=>{t?(u("reconnect attempt error"),e._reconnecting=!1,e.reconnect(),super.emit("reconnect_error",t)):(u("reconnect success"),e.onreconnect())})))}),t);this.subs.push((function(){clearTimeout(r)}))}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),super.emit("reconnect",e)}}},657:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.on=void 0,t.on=function(e,t,r){return e.on(t,r),function(){e.off(t,r)}}},277:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Socket=void 0;const i=r(485),n=r(767),o=r(657),a=r(227)("socket.io-client:socket"),s=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});t.Socket=class extends n{constructor(e,t,r){super(),this.receiveBuffer=[],this.sendBuffer=[],this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.flags={},r&&r.auth&&(this.auth=r.auth),this.io._autoConnect&&this.open()}subEvents(){if(this.subs)return;const e=this.io;this.subs=[o.on(e,"open",this.onopen.bind(this)),o.on(e,"packet",this.onpacket.bind(this)),o.on(e,"error",this.onerror.bind(this)),o.on(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){if(s.hasOwnProperty(e))throw new Error('"'+e+'" is a reserved event name');t.unshift(e);const r={type:i.PacketType.EVENT,data:t,options:{}};r.options.compress=!1!==this.flags.compress,"function"==typeof t[t.length-1]&&(a("emitting packet with ack id %d",this.ids),this.acks[this.ids]=t.pop(),r.id=this.ids++);const n=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return!this.flags.volatile||n&&this.connected?this.connected?this.packet(r):this.sendBuffer.push(r):a("discard packet as the transport is not currently writable"),this.flags={},this}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){a("transport is open - connecting"),"function"==typeof this.auth?this.auth((e=>{this.packet({type:i.PacketType.CONNECT,data:e})})):this.packet({type:i.PacketType.CONNECT,data:this.auth})}onerror(e){this.connected||super.emit("connect_error",e)}onclose(e){a("close (%s)",e),this.connected=!1,this.disconnected=!0,delete this.id,super.emit("disconnect",e)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case i.PacketType.CONNECT:if(e.data&&e.data.sid){const t=e.data.sid;this.onconnect(t)}else super.emit("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case i.PacketType.EVENT:case i.PacketType.BINARY_EVENT:this.onevent(e);break;case i.PacketType.ACK:case i.PacketType.BINARY_ACK:this.onack(e);break;case i.PacketType.DISCONNECT:this.ondisconnect();break;case i.PacketType.CONNECT_ERROR:const t=new Error(e.data.message);t.data=e.data.data,super.emit("connect_error",t)}}onevent(e){const t=e.data||[];a("emitting event %j",t),null!=e.id&&(a("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const r of t)r.apply(this,e)}super.emit.apply(this,e)}ack(e){const t=this;let r=!1;return function(...n){r||(r=!0,a("sending ack %j",n),t.packet({type:i.PacketType.ACK,id:e,data:n}))}}onack(e){const t=this.acks[e.id];"function"==typeof t?(a("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):a("bad ack %s",e.id)}onconnect(e){a("socket connected with id %s",e),this.id=e,this.connected=!0,this.disconnected=!1,super.emit("connect"),this.emitBuffered()}emitBuffered(){this.receiveBuffer.forEach((e=>this.emitEvent(e))),this.receiveBuffer=[],this.sendBuffer.forEach((e=>this.packet(e))),this.sendBuffer=[]}ondisconnect(){a("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((e=>e())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(a("performing disconnect (%s)",this.nsp),this.packet({type:i.PacketType.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let r=0;r<t.length;r++)if(e===t[r])return t.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}}},744:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.url=void 0;const i=r(187),n=r(227)("socket.io-client:url");t.url=function(e,t){let r=e;t=t||"undefined"!=typeof location&&location,null==e&&(e=t.protocol+"//"+t.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?t.protocol+e:t.host+e),/^(https?|wss?):\/\//.test(e)||(n("protocol-less url %s",e),e=void 0!==t?t.protocol+"//"+e:"https://"+e),n("parse %s",e),r=i(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const o=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+o+":"+r.port,r.href=r.protocol+"://"+o+(t&&t.port===r.port?"":":"+r.port),r}},719:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reconstructPacket=t.deconstructPacket=void 0;const i=r(986);function n(e,t){if(!e)return e;if(i.isBinary(e)){const r={_placeholder:!0,num:t.length};return t.push(e),r}if(Array.isArray(e)){const r=new Array(e.length);for(let i=0;i<e.length;i++)r[i]=n(e[i],t);return r}if("object"==typeof e&&!(e instanceof Date)){const r={};for(const i in e)e.hasOwnProperty(i)&&(r[i]=n(e[i],t));return r}return e}function o(e,t){if(!e)return e;if(e&&e._placeholder)return t[e.num];if(Array.isArray(e))for(let r=0;r<e.length;r++)e[r]=o(e[r],t);else if("object"==typeof e)for(const r in e)e.hasOwnProperty(r)&&(e[r]=o(e[r],t));return e}t.deconstructPacket=function(e){const t=[],r=e.data,i=e;return i.data=n(r,t),i.attachments=t.length,{packet:i,buffers:t}},t.reconstructPacket=function(e,t){return e.data=o(e.data,t),e.attachments=void 0,e}},485:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Decoder=t.Encoder=t.PacketType=t.protocol=void 0;const i=r(767),n=r(719),o=r(986),a=r(227)("socket.io-parser");var s;t.protocol=5,function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(s=t.PacketType||(t.PacketType={})),t.Encoder=class{encode(e){return a("encoding packet %j",e),e.type!==s.EVENT&&e.type!==s.ACK||!o.hasBinary(e)?[this.encodeAsString(e)]:(e.type=e.type===s.EVENT?s.BINARY_EVENT:s.BINARY_ACK,this.encodeAsBinary(e))}encodeAsString(e){let t=""+e.type;return e.type!==s.BINARY_EVENT&&e.type!==s.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data)),a("encoded %j as %s",e,t),t}encodeAsBinary(e){const t=n.deconstructPacket(e),r=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(r),i}};class l extends i{constructor(){super()}add(e){let t;if("string"==typeof e)t=this.decodeString(e),t.type===s.BINARY_EVENT||t.type===s.BINARY_ACK?(this.reconstructor=new u(t),0===t.attachments&&super.emit("decoded",t)):super.emit("decoded",t);else{if(!o.isBinary(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emit("decoded",t))}}decodeString(e){let t=0;const r={type:Number(e.charAt(0))};if(void 0===s[r.type])throw new Error("unknown packet type "+r.type);if(r.type===s.BINARY_EVENT||r.type===s.BINARY_ACK){const i=t+1;for(;"-"!==e.charAt(++t)&&t!=e.length;);const n=e.substring(i,t);if(n!=Number(n)||"-"!==e.charAt(t))throw new Error("Illegal attachments");r.attachments=Number(n)}if("/"===e.charAt(t+1)){const i=t+1;for(;++t&&","!==e.charAt(t)&&t!==e.length;);r.nsp=e.substring(i,t)}else r.nsp="/";const i=e.charAt(t+1);if(""!==i&&Number(i)==i){const i=t+1;for(;++t;){const r=e.charAt(t);if(null==r||Number(r)!=r){--t;break}if(t===e.length)break}r.id=Number(e.substring(i,t+1))}if(e.charAt(++t)){const i=function(e){try{return JSON.parse(e)}catch(e){return!1}}(e.substr(t));if(!l.isPayloadValid(r.type,i))throw new Error("invalid payload");r.data=i}return a("decoded %s as %j",e,r),r}static isPayloadValid(e,t){switch(e){case s.CONNECT:return"object"==typeof t;case s.DISCONNECT:return void 0===t;case s.CONNECT_ERROR:return"string"==typeof t||"object"==typeof t;case s.EVENT:case s.BINARY_EVENT:return Array.isArray(t)&&t.length>0;case s.ACK:case s.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&this.reconstructor.finishedReconstruction()}}t.Decoder=l;class u{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const e=n.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}},986:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasBinary=t.isBinary=void 0;const r="function"==typeof ArrayBuffer,i=Object.prototype.toString,n="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===i.call(Blob),o="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===i.call(File);function a(e){return r&&(e instanceof ArrayBuffer||(e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer)(e))||n&&e instanceof Blob||o&&e instanceof File}t.isBinary=a,t.hasBinary=function e(t,r){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let r=0,i=t.length;r<i;r++)if(e(t[r]))return!0;return!1}if(a(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return e(t.toJSON(),!0);for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return!0;return!1}},281:e=>{"use strict";var t,r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),i={},n=0,o=0;function a(e){var t="";do{t=r[e%64]+t,e=Math.floor(e/64)}while(e>0);return t}function s(){var e=a(+new Date);return e!==t?(n=0,t=e):e+"."+a(n++)}for(;o<64;o++)i[r[o]]=o;s.encode=a,s.decode=function(e){var t=0;for(o=0;o<e.length;o++)t=64*t+i[e.charAt(o)];return t},e.exports=s}},t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={exports:{}};return e[i](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=r(35),t=r.n(e),i=r(751);i.Manager;const n=i("https://blobbystrike.ioi.lt",{secure:!0});let o;var a,s=[];let l={id:"",name:"",position:{x:0,y:0},color:"#"+Math.floor(256*Math.random()).toString(16)+Math.floor(256*Math.random()).toString(16)+Math.floor(256*Math.random()).toString(16),keysPressed:[!1]};var u=[];let h;function c(e){l.keysPressed[e.keyCode]=!0}function d(e){l.keysPressed[e.keyCode]=!1}function f(){l.keysPressed=[]}function p(){var e=window.innerWidth,t=window.innerHeight;16/9>e/t?(o.style.width=e+"px",o.style.height=e/16*9+"px"):(o.style.width=t/9*16+"px",o.style.height=t+"px")}function m(e,t,r,i){e.stroke(0,0,0),e.strokeWeight(5),e.fill(t.color),e.ellipse(r,i,80,80),e.textSize(32),e.fill(255,255,255),e.textAlign(e.CENTER,e.CENTER),e.text(t.name,r-300,i-100,600,50)}n.on("your-info",(function(e){l.name=e.name,l.position=e.position,l.color=e.color,l.id=e.id})),n.on("players-info",(function(e){for(let t of e)l.id!==t.id&&u.push({name:t.name,position:t.position,color:t.color,id:t.id})})),n.on("new-player-joined",(function(e){l.id!==e.id&&u.push({name:e.name,position:e.position,color:e.color,id:e.id})})),n.on("player-moved",(function(e){for(let t of u)l.id!==e.id&&e.id===t.id&&(t.position=e.position)})),new(t())((e=>{e.setup=()=>{!function(){a={grass:{image:h}};for(let e=0;e<10;e++){s[e]=[];for(let t=0;t<6;t++)s[e][t]={tile:a.grass.image,x:380*e,y:380*t}}console.log(s)}(),e.createCanvas(1920,1080),o=document.querySelector("canvas"),p(),window.addEventListener("resize",p),document.addEventListener("keydown",c),document.addEventListener("keyup",d),document.addEventListener("contextmenu",f)},e.preload=()=>{h=e.loadImage("grass.png")},e.draw=()=>{e.translate(-l.position.x,l.position.y),function(e){for(let i of s)for(let n of i)t=l.position,r={x:n.x,y:n.y},Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2))<2e3&&e.image(n.tile,n.x+e.width/2,n.y+e.height/2);var t,r}(e);for(let t of u)m(e,t,t.position.x+e.width/2,-t.position.y+e.height/2);e.translate(l.position.x,-l.position.y),m(e,l,e.width/2,e.height/2),e.text(Math.floor(l.position.x)+":"+Math.floor(l.position.y),e.width/2,50);let t=l.position.x,r=l.position.y;l.keysPressed[65]&&(l.position.x-=10),l.keysPressed[68]&&(l.position.x+=10),l.keysPressed[87]&&(l.position.y+=10),l.keysPressed[83]&&(l.position.y-=10),l.position.x===t&&l.position.y===r||n.emit("i-moved",{x:l.position.x,y:l.position.y})}}))})()})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2JhY2tvMi9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2Jhc2U2NC1hcnJheWJ1ZmZlci9saWIvYmFzZTY0LWFycmF5YnVmZmVyLmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvY29tcG9uZW50LWVtaXR0ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi9nbG9iYWxUaGlzLmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3NvY2tldC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3RyYW5zcG9ydC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3RyYW5zcG9ydHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi90cmFuc3BvcnRzL3BvbGxpbmctanNvbnAuanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi90cmFuc3BvcnRzL3BvbGxpbmcteGhyLmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9saWIvdHJhbnNwb3J0cy9wb2xsaW5nLmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9saWIvdHJhbnNwb3J0cy93ZWJzb2NrZXQtY29uc3RydWN0b3IuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3RyYW5zcG9ydHMvd2Vic29ja2V0LmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9saWIvdXRpbC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3htbGh0dHByZXF1ZXN0LmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9saWIvY29tbW9ucy5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1wYXJzZXIvbGliL2RlY29kZVBhY2tldC5icm93c2VyLmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9saWIvZW5jb2RlUGFja2V0LmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tcGFyc2VyL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL2hhcy1jb3JzL2luZGV4LmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvbXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9wNS9saWIvcDUubWluLmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvcGFyc2Vxcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3BhcnNldXJpL2luZGV4LmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9idWlsZC9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvbWFuYWdlci5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvb24uanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L2J1aWxkL3NvY2tldC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvdXJsLmpzIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLXBhcnNlci9kaXN0L2JpbmFyeS5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvZGlzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvZGlzdC9pcy1iaW5hcnkuanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL25vZGVfbW9kdWxlcy95ZWFzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2dsb2JhZ2FtZWphbTIwMjEvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9nbG9iYWdhbWVqYW0yMDIxLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvd3JhcHBlci5tanMiLCJ3ZWJwYWNrOi8vZ2xvYmFnYW1lamFtMjAyMS8uL3NyYy9hcHAudHMiXSwibmFtZXMiOlsiQmFja29mZiIsIm9wdHMiLCJ0aGlzIiwibXMiLCJtaW4iLCJtYXgiLCJmYWN0b3IiLCJqaXR0ZXIiLCJhdHRlbXB0cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJwcm90b3R5cGUiLCJkdXJhdGlvbiIsIk1hdGgiLCJwb3ciLCJyYW5kIiwicmFuZG9tIiwiZGV2aWF0aW9uIiwiZmxvb3IiLCJyZXNldCIsInNldE1pbiIsInNldE1heCIsInNldEppdHRlciIsImNoYXJzIiwiZW5jb2RlIiwiYXJyYXlidWZmZXIiLCJpIiwiYnl0ZXMiLCJVaW50OEFycmF5IiwibGVuIiwibGVuZ3RoIiwiYmFzZTY0Iiwic3Vic3RyaW5nIiwiZGVjb2RlIiwiZW5jb2RlZDEiLCJlbmNvZGVkMiIsImVuY29kZWQzIiwiZW5jb2RlZDQiLCJidWZmZXJMZW5ndGgiLCJwIiwiQXJyYXlCdWZmZXIiLCJpbmRleE9mIiwiRW1pdHRlciIsIm9iaiIsImtleSIsIm1peGluIiwib24iLCJhZGRFdmVudExpc3RlbmVyIiwiZXZlbnQiLCJmbiIsIl9jYWxsYmFja3MiLCJwdXNoIiwib25jZSIsIm9mZiIsImFwcGx5IiwiYXJndW1lbnRzIiwicmVtb3ZlTGlzdGVuZXIiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2IiLCJjYWxsYmFja3MiLCJzcGxpY2UiLCJlbWl0IiwiYXJncyIsIkFycmF5Iiwic2xpY2UiLCJsaXN0ZW5lcnMiLCJoYXNMaXN0ZW5lcnMiLCJmb3JtYXRBcmdzIiwidXNlQ29sb3JzIiwibmFtZXNwYWNlIiwiaHVtYW5pemUiLCJkaWZmIiwiYyIsImNvbG9yIiwiaW5kZXgiLCJsYXN0QyIsInJlcGxhY2UiLCJtYXRjaCIsInNhdmUiLCJuYW1lc3BhY2VzIiwic3RvcmFnZSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwiZXJyb3IiLCJsb2FkIiwiciIsImdldEl0ZW0iLCJwcm9jZXNzIiwiZW52IiwiREVCVUciLCJ3aW5kb3ciLCJ0eXBlIiwiX19ud2pzIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwidG9Mb3dlckNhc2UiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInN0eWxlIiwiV2Via2l0QXBwZWFyYW5jZSIsImNvbnNvbGUiLCJmaXJlYnVnIiwiZXhjZXB0aW9uIiwidGFibGUiLCJwYXJzZUludCIsIlJlZ0V4cCIsIiQxIiwibG9jYWxTdG9yYWdlIiwibG9jYWxzdG9yYWdlIiwiZGVzdHJveSIsIndhcm5lZCIsIndhcm4iLCJjb2xvcnMiLCJsb2ciLCJkZWJ1ZyIsImZvcm1hdHRlcnMiLCJqIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZXNzYWdlIiwiY3JlYXRlRGVidWciLCJwcmV2VGltZSIsImVuYWJsZU92ZXJyaWRlIiwiZW5hYmxlZCIsInNlbGYiLCJjdXJyIiwiTnVtYmVyIiwiRGF0ZSIsInByZXYiLCJjb2VyY2UiLCJ1bnNoaWZ0IiwiZm9ybWF0IiwiZm9ybWF0dGVyIiwidmFsIiwiY2FsbCIsInNlbGVjdENvbG9yIiwiZXh0ZW5kIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwiZ2V0Iiwic2V0IiwiaW5pdCIsImRlbGltaXRlciIsIm5ld0RlYnVnIiwidG9OYW1lc3BhY2UiLCJyZWdleHAiLCJ0b1N0cmluZyIsImRlZmF1bHQiLCJFcnJvciIsInN0YWNrIiwiZGlzYWJsZSIsIm5hbWVzIiwibWFwIiwic2tpcHMiLCJqb2luIiwiZW5hYmxlIiwic3BsaXQiLCJzdWJzdHIiLCJuYW1lIiwidGVzdCIsImtleXMiLCJmb3JFYWNoIiwiaGFzaCIsImNoYXJDb2RlQXQiLCJhYnMiLCJGdW5jdGlvbiIsIlNvY2tldCIsInVyaSIsInByb3RvY29sIiwiVHJhbnNwb3J0IiwidHJhbnNwb3J0cyIsInBhcnNlciIsInBhcnNldXJpIiwicGFyc2VxcyIsInN1cGVyIiwiaG9zdG5hbWUiLCJob3N0Iiwic2VjdXJlIiwicG9ydCIsInF1ZXJ5IiwibG9jYXRpb24iLCJyZWFkeVN0YXRlIiwid3JpdGVCdWZmZXIiLCJwcmV2QnVmZmVyTGVuIiwiYXNzaWduIiwicGF0aCIsImFnZW50Iiwid2l0aENyZWRlbnRpYWxzIiwidXBncmFkZSIsImpzb25wIiwidGltZXN0YW1wUGFyYW0iLCJyZW1lbWJlclVwZ3JhZGUiLCJyZWplY3RVbmF1dGhvcml6ZWQiLCJwZXJNZXNzYWdlRGVmbGF0ZSIsInRocmVzaG9sZCIsInRyYW5zcG9ydE9wdGlvbnMiLCJpZCIsInVwZ3JhZGVzIiwicGluZ0ludGVydmFsIiwicGluZ1RpbWVvdXQiLCJwaW5nVGltZW91dFRpbWVyIiwib3BlbiIsIm8iLCJoYXNPd25Qcm9wZXJ0eSIsImNsb25lIiwiRUlPIiwidHJhbnNwb3J0Iiwic2lkIiwic29ja2V0IiwicHJpb3JXZWJzb2NrZXRTdWNjZXNzIiwic2V0VGltZW91dCIsImNyZWF0ZVRyYW5zcG9ydCIsImUiLCJzaGlmdCIsInNldFRyYW5zcG9ydCIsIm9uRHJhaW4iLCJwYWNrZXQiLCJvblBhY2tldCIsIm9uRXJyb3IiLCJvbkNsb3NlIiwicHJvYmUiLCJmYWlsZWQiLCJvblRyYW5zcG9ydE9wZW4iLCJvbmx5QmluYXJ5VXBncmFkZXMiLCJ1cGdyYWRlTG9zZXNCaW5hcnkiLCJzdXBwb3J0c0JpbmFyeSIsInNlbmQiLCJkYXRhIiwibXNnIiwidXBncmFkaW5nIiwicGF1c2UiLCJjbGVhbnVwIiwiZmx1c2giLCJlcnIiLCJmcmVlemVUcmFuc3BvcnQiLCJjbG9zZSIsIm9uZXJyb3IiLCJvblRyYW5zcG9ydENsb3NlIiwib25jbG9zZSIsIm9udXBncmFkZSIsInRvIiwibCIsIm9uSGFuZHNoYWtlIiwicGFyc2UiLCJyZXNldFBpbmdUaW1lb3V0Iiwic2VuZFBhY2tldCIsImNvZGUiLCJmaWx0ZXJVcGdyYWRlcyIsIm9uT3BlbiIsImNsZWFyVGltZW91dCIsIndyaXRhYmxlIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsImNvbXByZXNzIiwiY2xlYW51cEFuZENsb3NlIiwid2FpdEZvclVwZ3JhZGUiLCJyZWFzb24iLCJkZXNjIiwicGluZ0ludGVydmFsVGltZXIiLCJmaWx0ZXJlZFVwZ3JhZGVzIiwiZGVzY3JpcHRpb24iLCJkb09wZW4iLCJkb0Nsb3NlIiwicGFja2V0cyIsIndyaXRlIiwiZGVjb2RlUGFja2V0IiwiYmluYXJ5VHlwZSIsIlhNTEh0dHBSZXF1ZXN0IiwiWEhSIiwiSlNPTlAiLCJ3ZWJzb2NrZXQiLCJwb2xsaW5nIiwieGhyIiwieGQiLCJ4cyIsImlzU1NMIiwieGRvbWFpbiIsInhzY2hlbWUiLCJmb3JjZUpTT05QIiwiUG9sbGluZyIsImdsb2JhbFRoaXMiLCJyTmV3bGluZSIsInJFc2NhcGVkTmV3bGluZSIsImVtcHR5IiwiX19fZWlvIiwib25EYXRhIiwic2NyaXB0IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwiZm9ybSIsImlmcmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJhc3luYyIsInNyYyIsImluc2VydEF0IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpbnNlcnRCZWZvcmUiLCJoZWFkIiwiYm9keSIsImFwcGVuZENoaWxkIiwiYXJlYSIsImlmcmFtZUlkIiwiY2xhc3NOYW1lIiwicG9zaXRpb24iLCJ0b3AiLCJsZWZ0IiwidGFyZ2V0IiwibWV0aG9kIiwic2V0QXR0cmlidXRlIiwiY29tcGxldGUiLCJpbml0SWZyYW1lIiwiaHRtbCIsImFjdGlvbiIsInZhbHVlIiwic3VibWl0IiwiYXR0YWNoRXZlbnQiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJvbmxvYWQiLCJwaWNrIiwiaGFzWEhSMiIsInJlc3BvbnNlVHlwZSIsIlJlcXVlc3QiLCJjcmVhdGUiLCJleHRyYUhlYWRlcnMiLCJzZXREaXNhYmxlSGVhZGVyQ2hlY2siLCJzZXRSZXF1ZXN0SGVhZGVyIiwicmVxdWVzdFRpbWVvdXQiLCJ0aW1lb3V0IiwiaGFzWERSIiwib25Mb2FkIiwicmVzcG9uc2VUZXh0Iiwic3RhdHVzIiwicmVxdWVzdHNDb3VudCIsInJlcXVlc3RzIiwib25TdWNjZXNzIiwiZnJvbUVycm9yIiwiYWJvcnQiLCJYRG9tYWluUmVxdWVzdCIsImVuYWJsZXNYRFIiLCJ1bmxvYWRIYW5kbGVyIiwiZm9yY2VCYXNlNjQiLCJyZXEiLCJyZXF1ZXN0IiwicG9sbFhociIsInllYXN0IiwicG9sbCIsIm9uUGF1c2UiLCJ0b3RhbCIsImRvUG9sbCIsImRlY29kZVBheWxvYWQiLCJlbmNvZGVQYXlsb2FkIiwiZG9Xcml0ZSIsInNjaGVtYSIsInRpbWVzdGFtcFJlcXVlc3RzIiwiYjY0IiwiV2ViU29ja2V0IiwiTW96V2ViU29ja2V0IiwidXNpbmdCcm93c2VyV2ViU29ja2V0IiwiZGVmYXVsdEJpbmFyeVR5cGUiLCJpc1JlYWN0TmF0aXZlIiwicHJvZHVjdCIsIldTIiwiY2hlY2siLCJwcm90b2NvbHMiLCJoZWFkZXJzIiwid3MiLCJhZGRFdmVudExpc3RlbmVycyIsIm9ub3BlbiIsIm9ubWVzc2FnZSIsImV2IiwiZW5jb2RlUGFja2V0IiwiQnVmZmVyIiwiYnl0ZUxlbmd0aCIsImF0dHIiLCJyZWR1Y2UiLCJhY2MiLCJrIiwiaGFzQ09SUyIsImNvbmNhdCIsIlBBQ0tFVF9UWVBFUyIsIlBBQ0tFVF9UWVBFU19SRVZFUlNFIiwiRVJST1JfUEFDS0VUIiwiYmFzZTY0ZGVjb2RlciIsImRlY29kZUJhc2U2NFBhY2tldCIsImRlY29kZWQiLCJtYXBCaW5hcnkiLCJCbG9iIiwiZW5jb2RlZFBhY2tldCIsImNoYXJBdCIsIndpdGhOYXRpdmVCbG9iIiwid2l0aE5hdGl2ZUFycmF5QnVmZmVyIiwiZW5jb2RlQmxvYkFzQmFzZTY0IiwiY2FsbGJhY2siLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsImNvbnRlbnQiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwiaXNWaWV3IiwiYnVmZmVyIiwiU0VQQVJBVE9SIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiZW5jb2RlZFBhY2tldHMiLCJjb3VudCIsImVuY29kZWRQYXlsb2FkIiwiZGVjb2RlZFBhY2tldCIsInMiLCJtIiwiaCIsImQiLCJwbHVyYWwiLCJtc0FicyIsIm4iLCJpc1BsdXJhbCIsInJvdW5kIiwic3RyIiwiZXhlYyIsInBhcnNlRmxvYXQiLCJpc0Zpbml0ZSIsImxvbmciLCJmbXRTaG9ydCIsImEiLCJ1IiwidCIsIjEiLCJ0b0J5dGVBcnJheSIsImZyb21CeXRlQXJyYXkiLCIyIiwiMyIsImR1cCIsIjQiLCJOIiwiRiIsIlN5bWJvbCIsImZvciIsIlNsb3dCdWZmZXIiLCJhbGxvYyIsIklOU1BFQ1RfTUFYX0JZVEVTIiwiUmFuZ2VFcnJvciIsInNldFByb3RvdHlwZU9mIiwiVHlwZUVycm9yIiwiaXNFbmNvZGluZyIsImYiLCJBIiwidmFsdWVPZiIsImZyb20iLCJpc0J1ZmZlciIsImNvcHkiLCJJIiwiaXNBcnJheSIsInRvUHJpbWl0aXZlIiwiUiIsIkQiLCJsYXN0SW5kZXhPZiIsInJlYWRVSW50MTZCRSIsInkiLCJnIiwiYiIsIl8iLCJ4Iiwia01heExlbmd0aCIsIlRZUEVEX0FSUkFZX1NVUFBPUlQiLCJmb28iLCJieXRlT2Zmc2V0Iiwic3BlY2llcyIsInBvb2xTaXplIiwiZmlsbCIsImFsbG9jVW5zYWZlIiwiYWxsb2NVbnNhZmVTbG93IiwiX2lzQnVmZmVyIiwiY29tcGFyZSIsIm9mZnNldCIsInN3YXAxNiIsInN3YXAzMiIsInN3YXA2NCIsInRvTG9jYWxlU3RyaW5nIiwiTSIsInciLCJTIiwiVCIsImVxdWFscyIsImluc3BlY3QiLCJ0cmltIiwiaW5jbHVkZXMiLCJ0b0pTT04iLCJfYXJyIiwiVSIsIkUiLCJDIiwiTCIsIk8iLCJQIiwic3ViYXJyYXkiLCJyZWFkVUludExFIiwicmVhZFVJbnRCRSIsInJlYWRVSW50OCIsInJlYWRVSW50MTZMRSIsInJlYWRVSW50MzJMRSIsInJlYWRVSW50MzJCRSIsInJlYWRJbnRMRSIsInJlYWRJbnRCRSIsInJlYWRJbnQ4IiwicmVhZEludDE2TEUiLCJyZWFkSW50MTZCRSIsInJlYWRJbnQzMkxFIiwicmVhZEludDMyQkUiLCJyZWFkRmxvYXRMRSIsInJlYWQiLCJyZWFkRmxvYXRCRSIsInJlYWREb3VibGVMRSIsInJlYWREb3VibGVCRSIsIndyaXRlVUludExFIiwid3JpdGVVSW50QkUiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsIndyaXRlVUludDE2QkUiLCJ3cml0ZVVJbnQzMkxFIiwid3JpdGVVSW50MzJCRSIsIndyaXRlSW50TEUiLCJ3cml0ZUludEJFIiwid3JpdGVJbnQ4Iiwid3JpdGVJbnQxNkxFIiwid3JpdGVJbnQxNkJFIiwid3JpdGVJbnQzMkxFIiwid3JpdGVJbnQzMkJFIiwid3JpdGVGbG9hdExFIiwid3JpdGVGbG9hdEJFIiwid3JpdGVEb3VibGVMRSIsIndyaXRlRG91YmxlQkUiLCJjb3B5V2l0aGluIiwiY29uc3RydWN0b3IiLCJpZWVlNzU0IiwiNSIsInBvbHlmaWxsIiwiNiIsInoiLCJWIiwiTXV0YXRpb25PYnNlcnZlciIsIldlYktpdE11dGF0aW9uT2JzZXJ2ZXIiLCJVaW50OENsYW1wZWRBcnJheSIsImltcG9ydFNjcmlwdHMiLCJNZXNzYWdlQ2hhbm5lbCIsIl9zdGF0ZSIsIl9yZXN1bHQiLCJuZXh0VGljayIsImNyZWF0ZVRleHROb2RlIiwib2JzZXJ2ZSIsImNoYXJhY3RlckRhdGEiLCJwb3J0MSIsInBvcnQyIiwicG9zdE1lc3NhZ2UiLCJyZXF1aXJlIiwicnVuT25Mb29wIiwicnVuT25Db250ZXh0IiwicmVzb2x2ZSIsIl9sYWJlbCIsInRoZW4iLCJfb25lcnJvciIsIl9zdWJzY3JpYmVycyIsIl9lbnVtZXJhdGUiLCJfZWFjaEVudHJ5IiwiX2luc3RhbmNlQ29uc3RydWN0b3IiLCJfc2V0dGxlZEF0IiwiX3JlbWFpbmluZyIsIkIiLCJfd2lsbFNldHRsZUF0IiwicHJvbWlzZSIsIkciLCJjYXRjaCIsImZpbmFsbHkiLCJhbGwiLCJyYWNlIiwicmVqZWN0IiwiX3NldFNjaGVkdWxlciIsIl9zZXRBc2FwIiwiX2FzYXAiLCJQcm9taXNlIiwiY2FzdCIsIkVTNlByb21pc2UiLCJfcHJvY2VzcyIsIjciLCJmZXRjaEpzb25wIiwiZ2V0RWxlbWVudEJ5SWQiLCJqc29ucENhbGxiYWNrIiwianNvbnBDYWxsYmFja0Z1bmN0aW9uIiwibm93IiwiY2VpbCIsIm9rIiwianNvbiIsImNoYXJzZXQiLCI4IiwiVVJMIiwid2Via2l0VVJMIiwiY3JlYXRlRWxlbWVudE5TIiwiSFRNTEVsZW1lbnQiLCJzYWZhcmkiLCJzZXRJbW1lZGlhdGUiLCJyZXZva2VPYmplY3RVUkwiLCJyZW1vdmUiLCJJTklUIiwiY3JlYXRlT2JqZWN0VVJMIiwiaHJlZiIsImRvd25sb2FkIiwiTW91c2VFdmVudCIsImRpc3BhdGNoRXZlbnQiLCJET05FIiwib25sb2FkZW5kIiwibXNTYXZlT3JPcGVuQmxvYiIsIldSSVRJTkciLCJvbndyaXRlc3RhcnQiLCJvbnByb2dyZXNzIiwib253cml0ZSIsIm9uYWJvcnQiLCJvbndyaXRlZW5kIiwic2F2ZUFzIiwiOSIsIk5hTiIsImlzTmFOIiwiTE4yIiwiMTAiLCJKIiwiSyIsImVlIiwiUSIsImZlIiwiY2UiLCJoZSIsIlciLCJaIiwibGUiLCJ1ZSIsInJlIiwiSCIsInEiLCJYIiwiWSIsIiQiLCJ0ZSIsIm5lIiwiYWUiLCJpZSIsInNlIiwib2UiLCJzb3J0IiwibGlidGVzcyIsIkdsdVRlc3NlbGF0b3IiLCJ3aW5kaW5nUnVsZSIsIkdMVV9URVNTX1dJTkRJTkdfT0REIiwiR0xVX1RFU1NfV0lORElOR19OT05aRVJPIiwiR0xVX1RFU1NfV0lORElOR19QT1NJVElWRSIsIkdMVV9URVNTX1dJTkRJTkdfTkVHQVRJVkUiLCJHTFVfVEVTU19XSU5ESU5HX0FCU19HRVFfVFdPIiwicHJpbWl0aXZlVHlwZSIsIkdMX0xJTkVfTE9PUCIsIkdMX1RSSUFOR0xFUyIsIkdMX1RSSUFOR0xFX1NUUklQIiwiR0xfVFJJQU5HTEVfRkFOIiwiZXJyb3JUeXBlIiwiR0xVX1RFU1NfTUlTU0lOR19CRUdJTl9QT0xZR09OIiwiR0xVX1RFU1NfTUlTU0lOR19FTkRfUE9MWUdPTiIsIkdMVV9URVNTX01JU1NJTkdfQkVHSU5fQ09OVE9VUiIsIkdMVV9URVNTX01JU1NJTkdfRU5EX0NPTlRPVVIiLCJHTFVfVEVTU19DT09SRF9UT09fTEFSR0UiLCJHTFVfVEVTU19ORUVEX0NPTUJJTkVfQ0FMTEJBQ0siLCJnbHVFbnVtIiwiR0xVX1RFU1NfTUVTSCIsIkdMVV9URVNTX1RPTEVSQU5DRSIsIkdMVV9URVNTX1dJTkRJTkdfUlVMRSIsIkdMVV9URVNTX0JPVU5EQVJZX09OTFkiLCJHTFVfSU5WQUxJRF9FTlVNIiwiR0xVX0lOVkFMSURfVkFMVUUiLCJHTFVfVEVTU19CRUdJTiIsIkdMVV9URVNTX1ZFUlRFWCIsIkdMVV9URVNTX0VORCIsIkdMVV9URVNTX0VSUk9SIiwiR0xVX1RFU1NfRURHRV9GTEFHIiwiR0xVX1RFU1NfQ09NQklORSIsIkdMVV9URVNTX0JFR0lOX0RBVEEiLCJHTFVfVEVTU19WRVJURVhfREFUQSIsIkdMVV9URVNTX0VORF9EQVRBIiwiR0xVX1RFU1NfRVJST1JfREFUQSIsIkdMVV9URVNTX0VER0VfRkxBR19EQVRBIiwiR0xVX1RFU1NfQ09NQklORV9EQVRBIiwiZ2x1RGVsZXRlVGVzcyIsImdsdVRlc3NQcm9wZXJ0eSIsImdsdUdldFRlc3NQcm9wZXJ0eSIsImdsdVRlc3NOb3JtYWwiLCJnbHVUZXNzQ2FsbGJhY2siLCJnbHVUZXNzVmVydGV4IiwiZ2x1VGVzc0JlZ2luUG9seWdvbiIsImdsdVRlc3NCZWdpbkNvbnRvdXIiLCJnbHVUZXNzRW5kQ29udG91ciIsImdsdVRlc3NFbmRQb2x5Z29uIiwiMTEiLCJJbnQzMkFycmF5IiwiR2lmV3JpdGVyIiwibG9vcCIsInBhbGV0dGUiLCJiYWNrZ3JvdW5kIiwiYWRkRnJhbWUiLCJkZWxheSIsImRpc3Bvc2FsIiwidHJhbnNwYXJlbnQiLCJlbmQiLCJnZXRPdXRwdXRCdWZmZXIiLCJzZXRPdXRwdXRCdWZmZXIiLCJnZXRPdXRwdXRCdWZmZXJQb3NpdGlvbiIsInNldE91dHB1dEJ1ZmZlclBvc2l0aW9uIiwiR2lmUmVhZGVyIiwid2lkdGgiLCJoZWlnaHQiLCJoYXNfbG9jYWxfcGFsZXR0ZSIsInBhbGV0dGVfb2Zmc2V0IiwicGFsZXR0ZV9zaXplIiwiZGF0YV9vZmZzZXQiLCJkYXRhX2xlbmd0aCIsInRyYW5zcGFyZW50X2luZGV4IiwiaW50ZXJsYWNlZCIsIm51bUZyYW1lcyIsImxvb3BDb3VudCIsImZyYW1lSW5mbyIsImRlY29kZUFuZEJsaXRGcmFtZUJHUkEiLCJkZWNvZGVBbmRCbGl0RnJhbWVSR0JBIiwiMTIiLCJqciIsIkdyIiwiY29kZVBvaW50QXQiLCJVaW50MTZBcnJheSIsInRyYW5zIiwic291cmNlIiwic291cmNlSW5kZXgiLCJ0YWciLCJiaXRjb3VudCIsImRlc3QiLCJkZXN0TGVuIiwibHRyZWUiLCJkdHJlZSIsIngxIiwieTEiLCJ4MiIsInkyIiwiY29tbWFuZHMiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsImlzRW1wdHkiLCJhZGRQb2ludCIsImFkZFgiLCJhZGRZIiwiYWRkQmV6aWVyIiwic3FydCIsImFkZFF1YWQiLCJtb3ZlVG8iLCJsaW5lVG8iLCJjdXJ2ZVRvIiwiYmV6aWVyQ3VydmVUbyIsInF1YWRUbyIsInF1YWRyYXRpY0N1cnZlVG8iLCJjbG9zZVBhdGgiLCJnZXRCb3VuZGluZ0JveCIsImRyYXciLCJiZWdpblBhdGgiLCJmaWxsU3R5bGUiLCJzdHJva2VTdHlsZSIsImxpbmVXaWR0aCIsInRvUGF0aERhdGEiLCJ0b0ZpeGVkIiwidG9TVkciLCJ0b0RPTUVsZW1lbnQiLCJmYWlsIiwiYXJndW1lbnQiLCJhc3NlcnQiLCJCWVRFIiwiQ0hBUiIsIkNIQVJBUlJBWSIsIlVTSE9SVCIsIlNIT1JUIiwiVUlOVDI0IiwiVUxPTkciLCJMT05HIiwiRklYRUQiLCJGV09SRCIsIlVGV09SRCIsIkxPTkdEQVRFVElNRSIsIlRBRyIsIkNhcmQ4IiwiQ2FyZDE2IiwiT2ZmU2l6ZSIsIlNJRCIsIk5VTUJFUiIsIk5VTUJFUjE2IiwiTlVNQkVSMzIiLCJSRUFMIiwiTkFNRSIsIlNUUklORyIsIlVURjgiLCJnZXRVaW50OCIsIlVURjE2IiwiZ2V0VWludDE2IiwibWFjaW50b3NoIiwiTUFDU1RSSU5HIiwiV2Vha01hcCIsIlZBUkRFTFRBUyIsIklOREVYIiwiT0JKRUNUIiwiRElDVCIsIk9QRVJBTkQiLCJPUEVSQVRPUiIsIk9QIiwidGFibGVOYW1lIiwiZmllbGRzIiwiZ2x5cGhzIiwiZGVmYXVsdExhbmdTeXMiLCJyZXFGZWF0dXJlSW5kZXgiLCJmZWF0dXJlSW5kZXhlcyIsImxhbmdTeXNSZWNvcmRzIiwibGFuZ1N5cyIsImZlYXR1cmUiLCJmZWF0dXJlUGFyYW1zIiwibG9va3VwTGlzdEluZGV4ZXMiLCJsb29rdXBUeXBlIiwibG9va3VwRmxhZyIsInN1YnRhYmxlcyIsIkNIQVJTVFJJTkciLCJUQUJMRSIsIlJFQ09SRCIsIkxJVEVSQUwiLCJzaXplT2YiLCJUYWJsZSIsIlJlY29yZCIsIkNvdmVyYWdlIiwiU2NyaXB0TGlzdCIsIkZlYXR1cmVMaXN0IiwiTG9va3VwTGlzdCIsInVzaG9ydExpc3QiLCJ0YWJsZUxpc3QiLCJyZWNvcmRMaXN0IiwiZ2V0VWludDMyIiwiZ2V0SW50MTYiLCJieXRlIiwidVNob3J0Iiwic2hvcnQiLCJ1TG9uZyIsImZpeGVkIiwibG9uZ0RhdGVUaW1lIiwicmVsYXRpdmVPZmZzZXQiLCJwYXJzZUJ5dGUiLCJwYXJzZUNoYXIiLCJnZXRJbnQ4IiwicGFyc2VDYXJkOCIsInBhcnNlQ2FyZDE2IiwicGFyc2VVU2hvcnQiLCJwYXJzZVNJRCIsInBhcnNlT2Zmc2V0MTYiLCJwYXJzZVNob3J0IiwicGFyc2VGMkRvdDE0IiwicGFyc2VPZmZzZXQzMiIsInBhcnNlVUxvbmciLCJwYXJzZUZpeGVkIiwicGFyc2VTdHJpbmciLCJwYXJzZVRhZyIsInBhcnNlTG9uZ0RhdGVUaW1lIiwicGFyc2VWZXJzaW9uIiwic2tpcCIsInBhcnNlVUxvbmdMaXN0IiwicGFyc2VPZmZzZXQxNkxpc3QiLCJwYXJzZVVTaG9ydExpc3QiLCJwYXJzZVNob3J0TGlzdCIsInBhcnNlQnl0ZUxpc3QiLCJwYXJzZUxpc3QiLCJwYXJzZUxpc3QzMiIsInBhcnNlUmVjb3JkTGlzdCIsInBhcnNlUmVjb3JkTGlzdDMyIiwicGFyc2VTdHJ1Y3QiLCJwYXJzZVZhbHVlUmVjb3JkIiwieFBsYWNlbWVudCIsInlQbGFjZW1lbnQiLCJ4QWR2YW5jZSIsInlBZHZhbmNlIiwieFBsYURldmljZSIsInlQbGFEZXZpY2UiLCJ4QWR2RGV2aWNlIiwieUFkdkRldmljZSIsInBhcnNlVmFsdWVSZWNvcmRMaXN0IiwicGFyc2VQb2ludGVyIiwicGFyc2VQb2ludGVyMzIiLCJwYXJzZUxpc3RPZkxpc3RzIiwicGFyc2VDb3ZlcmFnZSIsInN0YXJ0IiwicmFuZ2VzIiwicGFyc2VDbGFzc0RlZiIsInN0YXJ0R2x5cGgiLCJjbGFzc2VzIiwiY2xhc3NJZCIsImxpc3QiLCJsaXN0MzIiLCJyZWNvcmRMaXN0MzIiLCJwb2ludGVyIiwicG9pbnRlcjMyIiwib2Zmc2V0MTYiLCJ1U2hvcnRMaXN0Iiwib2Zmc2V0MzIiLCJ1TG9uZ0xpc3QiLCJzdHJ1Y3QiLCJjb3ZlcmFnZSIsImNsYXNzRGVmIiwicmVzZXJ2ZWQiLCJwYXJzZVNjcmlwdExpc3QiLCJwYXJzZUZlYXR1cmVMaXN0IiwicGFyc2VMb29rdXBMaXN0IiwibWFya0ZpbHRlcmluZ1NldCIsInBhcnNlRmVhdHVyZVZhcmlhdGlvbnNMaXN0IiwiY29uZGl0aW9uU2V0T2Zmc2V0IiwiZmVhdHVyZVRhYmxlU3Vic3RpdHV0aW9uT2Zmc2V0IiwiZ2V0Qnl0ZSIsImdldENhcmQ4IiwiZ2V0VVNob3J0IiwiZ2V0Q2FyZDE2IiwiZ2V0U2hvcnQiLCJnZXRVTG9uZyIsImdldEZpeGVkIiwiZ2V0VGFnIiwiZ2V0T2Zmc2V0IiwiZ2V0Qnl0ZXMiLCJieXRlc1RvU3RyaW5nIiwiUGFyc2VyIiwidmVyc2lvbiIsIm51bVRhYmxlcyIsImxhbmd1YWdlIiwiZ3JvdXBDb3VudCIsImdseXBoSW5kZXhNYXAiLCJzZWdDb3VudCIsInVuaWNvZGUiLCJzZWdtZW50cyIsInVuaWNvZGVzIiwiZGVsdGEiLCJnbHlwaEluZGV4IiwiZ2x5cGhJZCIsInNlZ0NvdW50WDIiLCJzZWFyY2hSYW5nZSIsImVudHJ5U2VsZWN0b3IiLCJyYW5nZVNoaWZ0IiwiY21hcDRMZW5ndGgiLCJjbWFwMTJPZmZzZXQiLCJkZSIsImZvbnQiLCJwZSIsImNtYXAiLCJtZSIsImVuY29kaW5nIiwidmUiLCJudW1iZXJPZkdseXBocyIsImdseXBoTmFtZUluZGV4IiwiY2hhclRvR2x5cGhJbmRleCIsIm5hbWVUb0dseXBoSW5kZXgiLCJnbHlwaEluZGV4VG9OYW1lIiwieWUiLCJnZSIsImJpbmRDb25zdHJ1Y3RvclZhbHVlcyIsImJlIiwiX2UiLCJ4TWluIiwieU1pbiIsInhNYXgiLCJ5TWF4IiwiYWR2YW5jZVdpZHRoIiwiYWRkVW5pY29kZSIsImdldFBhdGgiLCJ4U2NhbGUiLCJ5U2NhbGUiLCJoaW50aW5nIiwiZ2V0Q29tbWFuZHMiLCJ1bml0c1BlckVtIiwiZ2V0Q29udG91cnMiLCJwb2ludHMiLCJsYXN0UG9pbnRPZkNvbnRvdXIiLCJnZXRNZXRyaWNzIiwibGVmdFNpZGVCZWFyaW5nIiwicmlnaHRTaWRlQmVhcmluZyIsImRyYXdQb2ludHMiLCJQSSIsImFyYyIsImRyYXdNZXRyaWNzIiwieGUiLCJHbHlwaFNldCIsImdseXBoTG9hZGVyIiwidHRmR2x5cGhMb2FkZXIiLCJjZmZHbHlwaExvYWRlciIsIndlIiwiU2UiLCJNZSIsIm9iamVjdHMiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsIlRlIiwiRWUiLCJDZSIsIkxlIiwib3AiLCJPZSIsIlBlIiwiUmUiLCJEZSIsIkRhdGFWaWV3IiwiX3N1YnJzIiwiX3N1YnJzQmlhcyIsInByaXZhdGUiLCJfZGVmYXVsdFdpZHRoWCIsImRlZmF1bHRXaWR0aFgiLCJfbm9taW5hbFdpZHRoWCIsIm5vbWluYWxXaWR0aFgiLCJzdWJycyIsIl9wcml2YXRlRGljdCIsImtlIiwiaXNDSURGb250IiwidGFibGVzIiwiY2ZmIiwidG9wRGljdCIsIl9mZFNlbGVjdCIsIl9mZEFycmF5IiwicG9wIiwiZ3N1YnJzQmlhcyIsImdzdWJycyIsIkFlIiwiSWUiLCJVZSIsImRpY3QiLCJOZSIsInRvcERpY3RzIiwiRmUiLCJCZSIsImZvcm1hdE1ham9yIiwiZm9ybWF0TWlub3IiLCJzaXplIiwib2Zmc2V0U2l6ZSIsInJvcyIsImZkQXJyYXkiLCJmZFNlbGVjdCIsIm51bUdseXBocyIsInN1YnJzQmlhcyIsImNoYXJTdHJpbmdzIiwibkdseXBocyIsImNmZkVuY29kaW5nIiwiZnVsbE5hbWUiLCJmYW1pbHlOYW1lIiwid2VpZ2h0Iiwid2VpZ2h0TmFtZSIsImZvbnRCQm94IiwiZm9udE1hdHJpeCIsImhlYWRlciIsIm5hbWVJbmRleCIsInBvc3RTY3JpcHROYW1lIiwidG9wRGljdEluZGV4IiwiZ2xvYmFsU3VickluZGV4IiwiY2hhcnNldHMiLCJjaGFyU3RyaW5nc0luZGV4IiwicHJpdmF0ZURpY3QiLCJzdHJpbmdJbmRleCIsInN0cmluZ3MiLCJHZSIsImZvbnRSZXZpc2lvbiIsImNoZWNrU3VtQWRqdXN0bWVudCIsIm1hZ2ljTnVtYmVyIiwiZmxhZ3MiLCJjcmVhdGVkIiwibW9kaWZpZWQiLCJtYWNTdHlsZSIsImxvd2VzdFJlY1BQRU0iLCJmb250RGlyZWN0aW9uSGludCIsImluZGV4VG9Mb2NGb3JtYXQiLCJnbHlwaERhdGFGb3JtYXQiLCJnZXRUaW1lIiwiY3JlYXRlZFRpbWVzdGFtcCIsImplIiwiYXNjZW5kZXIiLCJkZXNjZW5kZXIiLCJsaW5lR2FwIiwiYWR2YW5jZVdpZHRoTWF4IiwibWluTGVmdFNpZGVCZWFyaW5nIiwibWluUmlnaHRTaWRlQmVhcmluZyIsInhNYXhFeHRlbnQiLCJjYXJldFNsb3BlUmlzZSIsImNhcmV0U2xvcGVSdW4iLCJjYXJldE9mZnNldCIsIm1ldHJpY0RhdGFGb3JtYXQiLCJudW1iZXJPZkhNZXRyaWNzIiwiVmUiLCJ6ZSIsIkhlIiwibWF4UG9pbnRzIiwibWF4Q29udG91cnMiLCJtYXhDb21wb3NpdGVQb2ludHMiLCJtYXhDb21wb3NpdGVDb250b3VycyIsIm1heFpvbmVzIiwibWF4VHdpbGlnaHRQb2ludHMiLCJtYXhTdG9yYWdlIiwibWF4RnVuY3Rpb25EZWZzIiwibWF4SW5zdHJ1Y3Rpb25EZWZzIiwibWF4U3RhY2tFbGVtZW50cyIsIm1heFNpemVPZkluc3RydWN0aW9ucyIsIm1heENvbXBvbmVudEVsZW1lbnRzIiwibWF4Q29tcG9uZW50RGVwdGgiLCJXZSIsInFlIiwiMCIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciLCIxOCIsIjE5IiwiMjAiLCIyMSIsIjIyIiwiMjMiLCIyNCIsIjI1IiwiMjYiLCIyNyIsIjI4IiwiMjkiLCIzMCIsIjMxIiwiMzIiLCIzMyIsIjM0IiwiMzUiLCIzNiIsIjM3IiwiMzgiLCIzOSIsIjQwIiwiNDEiLCI0MiIsIjQzIiwiNDQiLCI0NSIsIjQ2IiwiNDciLCI0OCIsIjQ5IiwiNTAiLCI1MSIsIjUyIiwiNTMiLCI1NCIsIjU1IiwiNTYiLCI1NyIsIjU4IiwiNTkiLCI2MCIsIjYxIiwiNjIiLCI2MyIsIjY0IiwiNjUiLCI2NiIsIjY3IiwiNjgiLCI2OSIsIjcwIiwiNzEiLCI3MiIsIjczIiwiNzQiLCI3NSIsIjc2IiwiNzciLCI3OCIsIjc5IiwiODAiLCI4MSIsIjgyIiwiODMiLCI4NCIsIjg1IiwiODYiLCI4NyIsIjg4IiwiODkiLCI5MCIsIjkxIiwiOTIiLCI5MyIsIjk0IiwiMTI4IiwiMTI5IiwiMTMwIiwiMTMxIiwiMTMyIiwiMTMzIiwiMTM0IiwiMTM1IiwiMTM2IiwiMTM3IiwiMTM4IiwiMTM5IiwiMTQwIiwiMTQxIiwiMTQyIiwiMTQzIiwiMTQ0IiwiMTQ1IiwiMTQ2IiwiMTQ3IiwiMTQ4IiwiMTQ5IiwiMTUwIiwiMTUxIiwiWGUiLCJZZSIsIjEwNzgiLCIxMDUyIiwiMTE1NiIsIjExMTgiLCI1MTIxIiwiMTUzNjEiLCIzMDczIiwiMjA0OSIsIjExMjY1IiwiMTMzMTMiLCIxMjI4OSIsIjQwOTciLCI2MTQ1IiwiODE5MyIsIjE2Mzg1IiwiMTAyNSIsIjEwMjQxIiwiNzE2OSIsIjE0MzM3IiwiOTIxNyIsIjEwNjciLCIxMTAxIiwiMjA5MiIsIjEwNjgiLCIxMTMzIiwiMTA2OSIsIjEwNTkiLCIyMTE3IiwiMTA5MyIsIjgyMTgiLCI1MTQ2IiwiMTE1MCIsIjEwMjYiLCIxMDI3IiwiMzA3NiIsIjUxMjQiLCIyMDUyIiwiNDEwMCIsIjEwMjgiLCIxMTU1IiwiMTA1MCIsIjQxMjIiLCIxMDI5IiwiMTAzMCIsIjExNjQiLCIxMTI1IiwiMjA2NyIsIjEwNDMiLCIzMDgxIiwiMTAyNDkiLCI0MTA1IiwiOTIyNSIsIjE2MzkzIiwiNjE1MyIsIjgyMDEiLCIxNzQxNyIsIjUxMjkiLCIxMzMyMSIsIjE4NDQxIiwiNzE3NyIsIjExMjczIiwiMjA1NyIsIjEwMzMiLCIxMjI5NyIsIjEwNjEiLCIxMDgwIiwiMTEyNCIsIjEwMzUiLCIyMDYwIiwiMzA4NCIsIjEwMzYiLCI1MTMyIiwiNjE1NiIsIjQxMDgiLCIxMTIyIiwiMTExMCIsIjEwNzkiLCIzMDc5IiwiMTAzMSIsIjUxMjciLCI0MTAzIiwiMjA1NSIsIjEwMzIiLCIxMTM1IiwiMTA5NSIsIjExMjgiLCIxMDM3IiwiMTA4MSIsIjEwMzgiLCIxMDM5IiwiMTEzNiIsIjEwNTciLCIxMTE3IiwiMjE0MSIsIjIxMDgiLCIxMDc2IiwiMTA3NyIsIjEwNDAiLCIyMDY0IiwiMTA0MSIsIjEwOTkiLCIxMDg3IiwiMTEwNyIsIjExNTgiLCIxMTU5IiwiMTA4OSIsIjExMTEiLCIxMDQyIiwiMTA4OCIsIjExMDgiLCIxMDYyIiwiMTA2MyIsIjIwOTQiLCIxMTM0IiwiMTA3MSIsIjIxMTAiLCIxMDg2IiwiMTEwMCIsIjEwODIiLCIxMTUzIiwiMTE0NiIsIjExMDIiLCIxMTQ4IiwiMTEwNCIsIjIxMjgiLCIxMTIxIiwiMTA0NCIsIjIwNjgiLCIxMTU0IiwiMTA5NiIsIjExMjMiLCIxMDQ1IiwiMTA0NiIsIjIwNzAiLCIxMDk0IiwiMTEzMSIsIjIxNTUiLCIzMTc5IiwiMTA0OCIsIjEwNDciLCIxMDQ5IiwiOTI3NSIsIjQxNTUiLCI1MTc5IiwiMzEzMSIsIjEwODMiLCIyMTA3IiwiODI1MSIsIjYyMDMiLCI3MjI3IiwiMTEwMyIsIjcxOTQiLCIzMDk4IiwiNjE3MCIsIjIwNzQiLCIxMTMyIiwiMTA3NCIsIjExMTUiLCIxMDUxIiwiMTA2MCIsIjExMjc0IiwiMTYzOTQiLCIxMzMyMiIsIjkyMjYiLCI1MTMwIiwiNzE3OCIsIjEyMjk4IiwiMTc0MTgiLCI0MTA2IiwiMTg0NDIiLCIyMDU4IiwiMTk0NjYiLCI2MTU0IiwiMTUzNzAiLCIxMDI1MCIsIjIwNDkwIiwiMzA4MiIsIjEwMzQiLCIyMTUxNCIsIjE0MzQ2IiwiODIwMiIsIjIwNzciLCIxMDUzIiwiMTExNCIsIjEwNjQiLCIyMTQzIiwiMTA5NyIsIjEwOTIiLCIxMDk4IiwiMTA1NCIsIjExMDUiLCIxMDU1IiwiMTA5MCIsIjExNTIiLCIxMDU4IiwiMTA3MCIsIjEwNTYiLCIyMTE1IiwiMTA5MSIsIjEwNjYiLCIxMTA2IiwiMTE2MCIsIjExNTciLCIxMTQ0IiwiMTEzMCIsIlplIiwiUWUiLCJLZSIsIkplIiwiJGUiLCJldCIsInR0IiwicnQiLCJpdCIsInBsYXRmb3JtSUQiLCJlbmNvZGluZ0lEIiwibGFuZ3VhZ2VJRCIsIm5hbWVJRCIsIm50IiwiYmVnaW4iLCJhdCIsInhBdmdDaGFyV2lkdGgiLCJ1c1dlaWdodENsYXNzIiwidXNXaWR0aENsYXNzIiwiZnNUeXBlIiwieVN1YnNjcmlwdFhTaXplIiwieVN1YnNjcmlwdFlTaXplIiwieVN1YnNjcmlwdFhPZmZzZXQiLCJ5U3Vic2NyaXB0WU9mZnNldCIsInlTdXBlcnNjcmlwdFhTaXplIiwieVN1cGVyc2NyaXB0WVNpemUiLCJ5U3VwZXJzY3JpcHRYT2Zmc2V0IiwieVN1cGVyc2NyaXB0WU9mZnNldCIsInlTdHJpa2VvdXRTaXplIiwieVN0cmlrZW91dFBvc2l0aW9uIiwic0ZhbWlseUNsYXNzIiwicGFub3NlIiwidWxVbmljb2RlUmFuZ2UxIiwidWxVbmljb2RlUmFuZ2UyIiwidWxVbmljb2RlUmFuZ2UzIiwidWxVbmljb2RlUmFuZ2U0IiwiYWNoVmVuZElEIiwiZnNTZWxlY3Rpb24iLCJ1c0ZpcnN0Q2hhckluZGV4IiwidXNMYXN0Q2hhckluZGV4Iiwic1R5cG9Bc2NlbmRlciIsInNUeXBvRGVzY2VuZGVyIiwic1R5cG9MaW5lR2FwIiwidXNXaW5Bc2NlbnQiLCJ1c1dpbkRlc2NlbnQiLCJ1bENvZGVQYWdlUmFuZ2UxIiwidWxDb2RlUGFnZVJhbmdlMiIsInN4SGVpZ2h0Iiwic0NhcEhlaWdodCIsInVzRGVmYXVsdENoYXIiLCJ1c0JyZWFrQ2hhciIsInVzTWF4Q29udGVudCIsIm90IiwiaXRhbGljQW5nbGUiLCJ1bmRlcmxpbmVQb3NpdGlvbiIsInVuZGVybGluZVRoaWNrbmVzcyIsImlzRml4ZWRQaXRjaCIsIm1pbk1lbVR5cGU0MiIsIm1heE1lbVR5cGU0MiIsIm1pbk1lbVR5cGUxIiwibWF4TWVtVHlwZTEiLCJzdCIsInN1YnN0Rm9ybWF0IiwiZGVsdGFHbHlwaElkIiwic3Vic3RpdHV0ZSIsInNlcXVlbmNlcyIsImFsdGVybmF0ZVNldHMiLCJsaWdhdHVyZVNldHMiLCJsaWdHbHlwaCIsImNvbXBvbmVudHMiLCJsdCIsInNlcXVlbmNlSW5kZXgiLCJsb29rdXBMaXN0SW5kZXgiLCJydWxlU2V0cyIsImlucHV0IiwibG9va3VwUmVjb3JkcyIsImNsYXNzU2V0cyIsImNvdmVyYWdlcyIsImNoYWluUnVsZVNldHMiLCJiYWNrdHJhY2siLCJsb29rYWhlYWQiLCJiYWNrdHJhY2tDbGFzc0RlZiIsImlucHV0Q2xhc3NEZWYiLCJsb29rYWhlYWRDbGFzc0RlZiIsImNoYWluQ2xhc3NTZXQiLCJiYWNrdHJhY2tDb3ZlcmFnZSIsImlucHV0Q292ZXJhZ2UiLCJsb29rYWhlYWRDb3ZlcmFnZSIsImV4dGVuc2lvbiIsInN1YnN0aXR1dGVzIiwidXQiLCJodCIsInNjcmlwdHMiLCJmZWF0dXJlcyIsImxvb2t1cHMiLCJ2YXJpYXRpb25zIiwiY3QiLCJmdCIsImR0IiwicHQiLCJtdCIsInZ0IiwieXQiLCJhZHZhbmNlV2lkdGhBdmciLCJtYXhMZWZ0U2lkZUJlYXJpbmciLCJvczIiLCJoYXNDaGFyIiwiZ2V0RW5nbGlzaE5hbWUiLCJ1bmlxdWVJRCIsImVuIiwicHJlZmVycmVkRmFtaWx5IiwiZm9udEZhbWlseSIsInByZWZlcnJlZFN1YmZhbWlseSIsImZvbnRTdWJmYW1pbHkiLCJtZXRhcyIsImdzdWIiLCJndCIsImJ0IiwiX3QiLCJ4dCIsInd0IiwiU3QiLCJNdCIsIlR0IiwiRXQiLCJDdCIsIkx0IiwiT3QiLCJudW1iZXJPZkNvbnRvdXJzIiwiX3hNaW4iLCJfeU1pbiIsIl94TWF4IiwiX3lNYXgiLCJlbmRQb2ludEluZGljZXMiLCJpbnN0cnVjdGlvbkxlbmd0aCIsImluc3RydWN0aW9ucyIsIm9uQ3VydmUiLCJpc0NvbXBvc2l0ZSIsInNjYWxlMDEiLCJzY2FsZTEwIiwiZHgiLCJkeSIsIm1hdGNoZWRQb2ludHMiLCJQdCIsIlJ0IiwiRHQiLCJzZWFyY2hUYWciLCJiaW5TZWFyY2giLCJnZXRUYWJsZSIsImNyZWF0ZURlZmF1bHRUYWJsZSIsImdldFNjcmlwdE5hbWVzIiwiZ2V0RGVmYXVsdFNjcmlwdE5hbWUiLCJnZXRTY3JpcHRUYWJsZSIsImdldExhbmdTeXNUYWJsZSIsImdldEZlYXR1cmVUYWJsZSIsInBhcmFtcyIsImdldExvb2t1cFRhYmxlcyIsImdldEdseXBoQ2xhc3MiLCJnZXRDb3ZlcmFnZUluZGV4IiwiZXhwYW5kQ292ZXJhZ2UiLCJkZWZhdWx0S2VybmluZ1RhYmxlcyIsImdldEtlcm5pbmdUYWJsZXMiLCJnZXRLZXJuaW5nVmFsdWUiLCJwb3NGb3JtYXQiLCJwYWlyU2V0cyIsInNlY29uZEdseXBoIiwidmFsdWUxIiwiY2xhc3NEZWYxIiwiY2xhc3NEZWYyIiwiY2xhc3NSZWNvcmRzIiwiZ3BvcyIsImdldFNpbmdsZSIsInN1YiIsImJ5IiwiZ2V0QWx0ZXJuYXRlcyIsImdldExpZ2F0dXJlcyIsImFkZFNpbmdsZSIsImFkZEFsdGVybmF0ZSIsImFkZExpZ2F0dXJlIiwiZ2V0RmVhdHVyZSIsImFkZCIsImt0IiwiQXQiLCJJdCIsIlV0IiwiTnQiLCJGdCIsIl9mcGdtU3RhdGUiLCJfcHJlcFN0YXRlIiwiX2Vycm9yU3RhdGUiLCJCdCIsIkd0Iiwic2lnbiIsImp0IiwiVnQiLCJ6dCIsIkh0IiwiV3QiLCJzclBlcmlvZCIsInNyUGhhc2UiLCJzclRocmVzaG9sZCIsInRydW5jIiwicXQiLCJheGlzIiwiZGlzdGFuY2UiLCJ4byIsImludGVycG9sYXRlIiwic2V0UmVsYXRpdmUiLCJub3JtYWxTbG9wZSIsIk5FR0FUSVZFX0lORklOSVRZIiwieW8iLCJzbG9wZSIsInRvdWNoIiwieFRvdWNoZWQiLCJ0b3VjaGVkIiwidW50b3VjaCIsIlh0IiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJ5VG91Y2hlZCIsIll0IiwiZnJlZXplIiwiWnQiLCJRdCIsInByZXZQb2ludE9uQ29udG91ciIsIm5leHRQb2ludE9uQ29udG91ciIsInByZXZlbnRFeHRlbnNpb25zIiwibmV4dFRvdWNoZWQiLCJwcmV2VG91Y2hlZCIsIkt0IiwiSnQiLCJjdkN1dEluIiwiZGVsdGFCYXNlIiwiZGVsdGFTaGlmdCIsIm1pbkRpcyIsImF1dG9GbGlwIiwiJHQiLCJwcm9nIiwienAwIiwienAxIiwienAyIiwicnAwIiwicnAxIiwicnAyIiwiZnYiLCJwdiIsImRwdiIsImVyIiwidFpvbmUiLCJnWm9uZSIsInRyIiwiaXAiLCJyciIsInN0ZXAiLCJpciIsIm5yIiwiYXIiLCJ6MiIsInoxIiwib3IiLCJzciIsImxyIiwiejAiLCJ1ciIsImhyIiwiY3IiLCJjb250b3VycyIsImZyIiwiZHIiLCJwciIsImN2dCIsIm1yIiwidnIiLCJ5ciIsInBwZW0iLCJnciIsImJyIiwiX3IiLCJ4ciIsIndyIiwiU3IiLCJmcGdtIiwiZnVuY3MiLCJwcmVwIiwiaW5oaWJpdEdyaWRGaXQiLCJiaW5kIiwic3RvcmUiLCJpZ25vcmVDdnQiLCJNciIsIlRyIiwic3R5bGVOYW1lIiwiZGVzaWduZXIiLCJkZXNpZ25lclVSTCIsIm1hbnVmYWN0dXJlciIsIm1hbnVmYWN0dXJlclVSTCIsImxpY2Vuc2UiLCJsaWNlbnNlVVJMIiwiY29weXJpZ2h0IiwidHJhZGVtYXJrIiwid2VpZ2h0Q2xhc3MiLCJ1c1dlaWdodENsYXNzZXMiLCJNRURJVU0iLCJ3aWR0aENsYXNzIiwidXNXaWR0aENsYXNzZXMiLCJmc1NlbGVjdGlvblZhbHVlcyIsIlJFR1VMQVIiLCJzdXBwb3J0ZWQiLCJzdWJzdGl0dXRpb24iLCJfaGludGluZyIsIm91dGxpbmVzRm9ybWF0IiwiTHIiLCJjb29yZGluYXRlcyIsImNoYXJUb0dseXBoIiwic3RyaW5nVG9HbHlwaHMiLCJkZWZhdWx0UmVuZGVyT3B0aW9ucyIsImxpZ2EiLCJybGlnIiwiZ2x5cGhOYW1lcyIsIm5hbWVUb0dseXBoIiwia2VybmluZ1BhaXJzIiwia2VybmluZyIsImZvckVhY2hHbHlwaCIsImxldHRlclNwYWNpbmciLCJ0cmFja2luZyIsImdldFBhdGhzIiwiZ2V0QWR2YW5jZVdpZHRoIiwidmFsaWRhdGUiLCJ0b1RhYmxlcyIsInRvQnVmZmVyIiwidG9BcnJheUJ1ZmZlciIsInJlcXVlc3RGaWxlU3lzdGVtIiwid2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0iLCJURU1QT1JBUlkiLCJyb290IiwiZ2V0RmlsZSIsImNyZWF0ZVdyaXRlciIsInRvVVJMIiwid3JpdGVGaWxlU3luYyIsIklUQUxJQyIsIlVOREVSU0NPUkUiLCJORUdBVElWRSIsIk9VVExJTkVEIiwiU1RSSUtFT1VUIiwiQk9MRCIsIlVTRVJfVFlQT19NRVRSSUNTIiwiV1dTIiwiT0JMSVFVRSIsIlVMVFJBX0NPTkRFTlNFRCIsIkVYVFJBX0NPTkRFTlNFRCIsIkNPTkRFTlNFRCIsIlNFTUlfQ09OREVOU0VEIiwiU0VNSV9FWFBBTkRFRCIsIkVYUEFOREVEIiwiRVhUUkFfRVhQQU5ERUQiLCJVTFRSQV9FWFBBTkRFRCIsIlRISU4iLCJFWFRSQV9MSUdIVCIsIkxJR0hUIiwiTk9STUFMIiwiU0VNSV9CT0xEIiwiRVhUUkFfQk9MRCIsIkJMQUNLIiwiT3IiLCJtaW5WYWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm1heFZhbHVlIiwiYXhlcyIsImluc3RhbmNlcyIsIlByIiwidmFsdWVzIiwidmFsdWVGb3JtYXQxIiwidmFsdWVGb3JtYXQyIiwidmFsdWUyIiwiY2xhc3MxQ291bnQiLCJjbGFzczJDb3VudCIsIkRyIiwia3IiLCJBciIsIklyIiwicmVhZEZpbGUiLCJVciIsInJlc3BvbnNlIiwic3RhdHVzVGV4dCIsIk5yIiwiY2hlY2tzdW0iLCJjb21wcmVzc2lvbiIsIkZyIiwiY29tcHJlc3NlZExlbmd0aCIsIkJyIiwiaGhlYSIsIm1heHAiLCJwb3N0IiwiZnZhciIsIm1ldGEiLCJGb250IiwiR2x5cGgiLCJQYXRoIiwiQm91bmRpbmdCb3giLCJfcGFyc2UiLCJsb2FkU3luYyIsInJlYWRGaWxlU3luYyIsIm9wZW50eXBlIiwiZnMiLCJmaWx0ZXIiLCJjd2QiLCJub3JtYWxpemUiLCJpc0Fic29sdXRlIiwicmVsYXRpdmUiLCJzZXAiLCJkaXJuYW1lIiwiYmFzZW5hbWUiLCJleHRuYW1lIiwicnVuIiwiZnVuIiwiYXJyYXkiLCJ0aXRsZSIsImJyb3dzZXIiLCJhcmd2IiwidmVyc2lvbnMiLCJhZGRMaXN0ZW5lciIsInByZXBlbmRMaXN0ZW5lciIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJiaW5kaW5nIiwiY2hkaXIiLCJ1bWFzayIsImZldGNoIiwiaXNQcm90b3R5cGVPZiIsImFwcGVuZCIsImRlbGV0ZSIsImhhcyIsImVudHJpZXMiLCJpdGVyYXRvciIsIl9ib2R5SW5pdCIsInVybCIsInJlZGlyZWN0IiwiSGVhZGVycyIsIlJlc3BvbnNlIiwiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiwicmVzcG9uc2VVUkwiLCJvbnRpbWVvdXQiLCJjcmVkZW50aWFscyIsIm5leHQiLCJkb25lIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImJvZHlVc2VkIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJfaW5pdEJvZHkiLCJfYm9keVRleHQiLCJfYm9keUJsb2IiLCJGb3JtRGF0YSIsIl9ib2R5Rm9ybURhdGEiLCJVUkxTZWFyY2hQYXJhbXMiLCJfYm9keUFycmF5QnVmZmVyIiwiYmxvYiIsImFycmF5QnVmZmVyIiwidGV4dCIsInJlYWRBc1RleHQiLCJmb3JtRGF0YSIsIm1vZGUiLCJ0b1VwcGVyQ2FzZSIsInJlZmVycmVyIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiX19lc01vZHVsZSIsIl9yZ2JDb2xvck5hbWUiLCJfcmdiYVRvSFNCQSIsImVuZHNXaXRoIiwiZGVzY3JpYmUiLCJfdmFsaWRhdGVQYXJhbWV0ZXJzIiwiY2FudmFzIiwiZHVtbXlET00iLCJkZXNjcmlwdGlvbnMiLCJmYWxsYmFjayIsImlubmVySFRNTCIsIl9kZXNjcmliZUhUTUwiLCJMQUJFTCIsImxhYmVsIiwiZGVzY3JpYmVFbGVtZW50IiwiZmFsbGJhY2tFbGVtZW50cyIsIl9kZXNjcmliZUVsZW1lbnRIVE1MIiwibGFiZWxFbGVtZW50cyIsInF1ZXJ5U2VsZWN0b3IiLCJpbnNlcnRBZGphY2VudEhUTUwiLCJfdXBkYXRlR3JpZE91dHB1dCIsIl9hY2Nlc3NpYmxlT3V0cHV0cyIsInBvcyIsIm51bVNoYXBlcyIsImRldGFpbHMiLCJpbmdyZWRpZW50cyIsInNoYXBlcyIsImxvYyIsImxvY1kiLCJsb2NYIiwic3VtbWFyeSIsInNoYXBlRGV0YWlscyIsInRleHRPdXRwdXQiLCJfY3JlYXRlT3V0cHV0IiwidGV4dExhYmVsIiwiZ3JpZE91dHB1dCIsImdyaWQiLCJncmlkTGFiZWwiLCJfYWRkQWNjc091dHB1dCIsInBTaGFwZXMiLCJfdXBkYXRlQWNjc091dHB1dCIsIl91cGRhdGVUZXh0T3V0cHV0IiwiX2FjY3NCYWNrZ3JvdW5kIiwiYmFja2dyb3VuZFJHQkEiLCJfYWNjc0NhbnZhc0NvbG9ycyIsImZpbGxSR0JBIiwic3Ryb2tlUkdCQSIsIl9hY2NzT3V0cHV0IiwiZGlzdCIsImNvcyIsInNpbiIsImxpc3RTaGFwZXMiLCJDb2xvckNvbnZlcnNpb24iLCJfaHNiYVRvSFNMQSIsIl9oc2JhVG9SR0JBIiwiX2hzbGFUb0hTQkEiLCJfaHNsYVRvUkdCQSIsIl9yZ2JhVG9IU0xBIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiYWxwaGEiLCJfZ2V0QWxwaGEiLCJibHVlIiwiX2dldEJsdWUiLCJicmlnaHRuZXNzIiwiX2dldEJyaWdodG5lc3MiLCJDb2xvciIsImdyZWVuIiwiX2dldEdyZWVuIiwiaHVlIiwiX2dldEh1ZSIsImxlcnBDb2xvciIsIl9jb2xvck1vZGUiLCJfY29sb3JNYXhlcyIsIlJHQiIsImxldmVscyIsIkhTQiIsImhzYmEiLCJIU0wiLCJfZ2V0TGlnaHRuZXNzIiwiaHNsYSIsImxlcnAiLCJsaWdodG5lc3MiLCJyZWQiLCJfZ2V0UmVkIiwic2F0dXJhdGlvbiIsIl9nZXRTYXR1cmF0aW9uIiwiX3N0b3JlTW9kZUFuZE1heGVzIiwiX2FycmF5IiwiX3BhcnNlSW5wdXRzIiwiX2NhbGN1bGF0ZUxldmVscyIsInRvUHJlY2lzaW9uIiwibWF4ZXMiLCJzZXRSZWQiLCJzZXRHcmVlbiIsInNldEJsdWUiLCJzZXRBbHBoYSIsIl9nZXRNb2RlIiwiX2dldE1heGVzIiwiYWxpY2VibHVlIiwiYW50aXF1ZXdoaXRlIiwiYXF1YSIsImFxdWFtYXJpbmUiLCJhenVyZSIsImJlaWdlIiwiYmlzcXVlIiwiYmxhY2siLCJibGFuY2hlZGFsbW9uZCIsImJsdWV2aW9sZXQiLCJicm93biIsImJ1cmx5d29vZCIsImNhZGV0Ymx1ZSIsImNoYXJ0cmV1c2UiLCJjaG9jb2xhdGUiLCJjb3JhbCIsImNvcm5mbG93ZXJibHVlIiwiY29ybnNpbGsiLCJjcmltc29uIiwiY3lhbiIsImRhcmtibHVlIiwiZGFya2N5YW4iLCJkYXJrZ29sZGVucm9kIiwiZGFya2dyYXkiLCJkYXJrZ3JlZW4iLCJkYXJrZ3JleSIsImRhcmtraGFraSIsImRhcmttYWdlbnRhIiwiZGFya29saXZlZ3JlZW4iLCJkYXJrb3JhbmdlIiwiZGFya29yY2hpZCIsImRhcmtyZWQiLCJkYXJrc2FsbW9uIiwiZGFya3NlYWdyZWVuIiwiZGFya3NsYXRlYmx1ZSIsImRhcmtzbGF0ZWdyYXkiLCJkYXJrc2xhdGVncmV5IiwiZGFya3R1cnF1b2lzZSIsImRhcmt2aW9sZXQiLCJkZWVwcGluayIsImRlZXBza3libHVlIiwiZGltZ3JheSIsImRpbWdyZXkiLCJkb2RnZXJibHVlIiwiZmlyZWJyaWNrIiwiZmxvcmFsd2hpdGUiLCJmb3Jlc3RncmVlbiIsImZ1Y2hzaWEiLCJnYWluc2Jvcm8iLCJnaG9zdHdoaXRlIiwiZ29sZCIsImdvbGRlbnJvZCIsImdyYXkiLCJncmVlbnllbGxvdyIsImdyZXkiLCJob25leWRldyIsImhvdHBpbmsiLCJpbmRpYW5yZWQiLCJpbmRpZ28iLCJpdm9yeSIsImtoYWtpIiwibGF2ZW5kZXIiLCJsYXZlbmRlcmJsdXNoIiwibGF3bmdyZWVuIiwibGVtb25jaGlmZm9uIiwibGlnaHRibHVlIiwibGlnaHRjb3JhbCIsImxpZ2h0Y3lhbiIsImxpZ2h0Z29sZGVucm9keWVsbG93IiwibGlnaHRncmF5IiwibGlnaHRncmVlbiIsImxpZ2h0Z3JleSIsImxpZ2h0cGluayIsImxpZ2h0c2FsbW9uIiwibGlnaHRzZWFncmVlbiIsImxpZ2h0c2t5Ymx1ZSIsImxpZ2h0c2xhdGVncmF5IiwibGlnaHRzbGF0ZWdyZXkiLCJsaWdodHN0ZWVsYmx1ZSIsImxpZ2h0eWVsbG93IiwibGltZSIsImxpbWVncmVlbiIsImxpbmVuIiwibWFnZW50YSIsIm1hcm9vbiIsIm1lZGl1bWFxdWFtYXJpbmUiLCJtZWRpdW1ibHVlIiwibWVkaXVtb3JjaGlkIiwibWVkaXVtcHVycGxlIiwibWVkaXVtc2VhZ3JlZW4iLCJtZWRpdW1zbGF0ZWJsdWUiLCJtZWRpdW1zcHJpbmdncmVlbiIsIm1lZGl1bXR1cnF1b2lzZSIsIm1lZGl1bXZpb2xldHJlZCIsIm1pZG5pZ2h0Ymx1ZSIsIm1pbnRjcmVhbSIsIm1pc3R5cm9zZSIsIm1vY2Nhc2luIiwibmF2YWpvd2hpdGUiLCJuYXZ5Iiwib2xkbGFjZSIsIm9saXZlIiwib2xpdmVkcmFiIiwib3JhbmdlIiwib3JhbmdlcmVkIiwib3JjaGlkIiwicGFsZWdvbGRlbnJvZCIsInBhbGVncmVlbiIsInBhbGV0dXJxdW9pc2UiLCJwYWxldmlvbGV0cmVkIiwicGFwYXlhd2hpcCIsInBlYWNocHVmZiIsInBlcnUiLCJwaW5rIiwicGx1bSIsInBvd2RlcmJsdWUiLCJwdXJwbGUiLCJyZWJlY2NhcHVycGxlIiwicm9zeWJyb3duIiwicm95YWxibHVlIiwic2FkZGxlYnJvd24iLCJzYWxtb24iLCJzYW5keWJyb3duIiwic2VhZ3JlZW4iLCJzZWFzaGVsbCIsInNpZW5uYSIsInNpbHZlciIsInNreWJsdWUiLCJzbGF0ZWJsdWUiLCJzbGF0ZWdyYXkiLCJzbGF0ZWdyZXkiLCJzbm93Iiwic3ByaW5nZ3JlZW4iLCJzdGVlbGJsdWUiLCJ0YW4iLCJ0ZWFsIiwidGhpc3RsZSIsInRvbWF0byIsInR1cnF1b2lzZSIsInZpb2xldCIsIndoZWF0Iiwid2hpdGUiLCJ3aGl0ZXNtb2tlIiwieWVsbG93IiwieWVsbG93Z3JlZW4iLCJIRVgzIiwiSEVYNCIsIkhFWDYiLCJIRVg4IiwiUkdCX1BFUkNFTlQiLCJSR0JBIiwiUkdCQV9QRVJDRU5UIiwiSFNMQSIsIkhTQkEiLCJfcmVuZGVyZXIiLCJjbGVhciIsImNvbG9yTW9kZSIsIl9zZXRQcm9wZXJ0eSIsIm5vRmlsbCIsIm5vU3Ryb2tlIiwiZXJhc2UiLCJub0VyYXNlIiwiRklMTCIsIlNUUk9LRSIsIkNVUlZFIiwiQkVaSUVSIiwiUVVBRFJBVElDIiwiTElORUFSIiwiX0NUWF9NSURETEUiLCJfREVGQVVMVF9MRUFETVVMVCIsIl9ERUZBVUxUX1RFWFRfRklMTCIsIkJPTERJVEFMSUMiLCJCTFVSIiwiRVJPREUiLCJESUxBVEUiLCJQT1NURVJJWkUiLCJJTlZFUlQiLCJPUEFRVUUiLCJHUkFZIiwiVEhSRVNIT0xEIiwiQlVSTiIsIkRPREdFIiwiU09GVF9MSUdIVCIsIkhBUkRfTElHSFQiLCJPVkVSTEFZIiwiUkVQTEFDRSIsIlNDUkVFTiIsIk1VTFRJUExZIiwiRVhDTFVTSU9OIiwiU1VCVFJBQ1QiLCJESUZGRVJFTkNFIiwiTElHSFRFU1QiLCJEQVJLRVNUIiwiQUREIiwiUkVNT1ZFIiwiQkxFTkQiLCJVUF9BUlJPVyIsIlRBQiIsIlNISUZUIiwiUklHSFRfQVJST1ciLCJSRVRVUk4iLCJPUFRJT04iLCJMRUZUX0FSUk9XIiwiRVNDQVBFIiwiRU5URVIiLCJET1dOX0FSUk9XIiwiREVMRVRFIiwiQ09OVFJPTCIsIkJBQ0tTUEFDRSIsIkFMVCIsIkFVVE8iLCJNSVRFUiIsIkJFVkVMIiwiUk9VTkQiLCJTUVVBUkUiLCJQUk9KRUNUIiwiUElFIiwiQ0hPUkQiLCJPUEVOIiwiQ0xPU0UiLCJURVNTIiwiUVVBRF9TVFJJUCIsIlFVQURTIiwiVFJJQU5HTEVfU1RSSVAiLCJUUklBTkdMRV9GQU4iLCJUUklBTkdMRVMiLCJMSU5FX0xPT1AiLCJMSU5FX1NUUklQIiwiTElORVMiLCJQT0lOVFMiLCJCQVNFTElORSIsIkJPVFRPTSIsIlRPUCIsIkNFTlRFUiIsIkxFRlQiLCJSSUdIVCIsIlJBRElVUyIsIkNPUk5FUlMiLCJDT1JORVIiLCJSQURfVE9fREVHIiwiREVHX1RPX1JBRCIsIlJBRElBTlMiLCJERUdSRUVTIiwiVFdPX1BJIiwiVEFVIiwiUVVBUlRFUl9QSSIsIkhBTEZfUEkiLCJXQUlUIiwiVEVYVCIsIk1PVkUiLCJIQU5EIiwiQ1JPU1MiLCJBUlJPVyIsIldFQkdMIiwiUDJEIiwiRkFMTEJBQ0siLCJBWEVTIiwiR1JJRCIsIl9ERUZBVUxUX0ZJTEwiLCJfREVGQVVMVF9TVFJPS0UiLCJQT1JUUkFJVCIsIkxBTkRTQ0FQRSIsIk1JUlJPUiIsIkNMQU1QIiwiUkVQRUFUIiwiTkVBUkVTVCIsIklNQUdFIiwiSU1NRURJQVRFIiwiVEVYVFVSRSIsIl9mcmFtZVJhdGUiLCJfbGFzdEZyYW1lVGltZSIsInBlcmZvcm1hbmNlIiwiX3RhcmdldEZyYW1lUmF0ZSIsInByaW50IiwiaW5uZXJXaWR0aCIsImNsaWVudFdpZHRoIiwiaW5uZXJIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJmcmFtZUNvdW50IiwiZGVsdGFUaW1lIiwiZm9jdXNlZCIsImhhc0ZvY3VzIiwiY3Vyc29yIiwiX2N1ckVsZW1lbnQiLCJlbHQiLCJmcmFtZVJhdGUiLCJnZXRGcmFtZVJhdGUiLCJzZXRGcmFtZVJhdGUiLCJub0N1cnNvciIsImRpc3BsYXlXaWR0aCIsInNjcmVlbiIsImRpc3BsYXlIZWlnaHQiLCJ3aW5kb3dXaWR0aCIsIndpbmRvd0hlaWdodCIsIl9vbnJlc2l6ZSIsIl9pc0dsb2JhbCIsIndpbmRvd1Jlc2l6ZWQiLCJwcmV2ZW50RGVmYXVsdCIsImZ1bGxzY3JlZW4iLCJmdWxsc2NyZWVuRWxlbWVudCIsIndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJtc0Z1bGxzY3JlZW5FbGVtZW50IiwiZnVsbHNjcmVlbkVuYWJsZWQiLCJ3ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCIsIm1vekZ1bGxTY3JlZW5FbmFibGVkIiwibXNGdWxsc2NyZWVuRW5hYmxlZCIsInJlcXVlc3RGdWxsc2NyZWVuIiwibW96UmVxdWVzdEZ1bGxTY3JlZW4iLCJ3ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiIsIm1zUmVxdWVzdEZ1bGxzY3JlZW4iLCJleGl0RnVsbHNjcmVlbiIsIm1vekNhbmNlbEZ1bGxTY3JlZW4iLCJ3ZWJraXRFeGl0RnVsbHNjcmVlbiIsIm1zRXhpdEZ1bGxzY3JlZW4iLCJwaXhlbERlbnNpdHkiLCJfcGl4ZWxEZW5zaXR5IiwicmVzaXplQ2FudmFzIiwiZGlzcGxheURlbnNpdHkiLCJkZXZpY2VQaXhlbFJhdGlvIiwiZ2V0VVJMIiwiZ2V0VVJMUGF0aCIsInBhdGhuYW1lIiwiZ2V0VVJMUGFyYW1zIiwic2VhcmNoIiwibGFzdEluZGV4IiwiX2ZyaWVuZGx5RXJyb3IiLCJfY2hlY2tGb3JVc2VyRGVmaW5lZEZ1bmN0aW9ucyIsIl9mZXNFcnJvck1vbml0b3IiLCJzb21lIiwiX2hlbHBGb3JNaXN1c2VkQXRUb3BMZXZlbENvZGUiLCJfZnJpZW5kbHlGaWxlTG9hZEVycm9yIiwic3RhY2t0cmFjZSIsInBhcnNlT3BlcmEiLCJwYXJzZVY4T3JJRSIsInBhcnNlRkZPclNhZmFyaSIsImV4dHJhY3RMb2NhdGlvbiIsImZ1bmN0aW9uTmFtZSIsImZpbGVOYW1lIiwibGluZU51bWJlciIsImNvbHVtbk51bWJlciIsInBhcnNlT3BlcmE5IiwicGFyc2VPcGVyYTExIiwicGFyc2VPcGVyYTEwIiwiX2dldEVycm9yU3RhY2tQYXJzZXIiLCJfY2xlYXJWYWxpZGF0ZVBhcmFtc0NhY2hlIiwibW9kZUFkanVzdCIsIl9zZXR1cERvbmUiLCJtb2NoYSIsInNldHVwIiwiaW5zdGFuY2UiLCJpbml0aWFsaXplIiwidHJhbnNsYXRvciIsInNlcnZpY2VzIiwibG9hZFBhdGgiLCJpbnRlcnBvbGF0b3IiLCJsbmciLCJucyIsImxvYWRVcmwiLCJmZXRjaFdpdGhUaW1lb3V0IiwidXNlIiwiZmFsbGJhY2tMbmciLCJuZXN0aW5nUHJlZml4IiwibmVzdGluZ1N1ZmZpeCIsImRlZmF1bHROUyIsInJldHVybkVtcHR5U3RyaW5nIiwiaW50ZXJwb2xhdGlvbiIsImVzY2FwZVZhbHVlIiwiZGV0ZWN0aW9uIiwiY2hlY2tXaGl0ZWxpc3QiLCJvcmRlciIsImNhY2hlcyIsImJhY2tlbmQiLCJwYXJ0aWFsQnVuZGxlZExhbmd1YWdlcyIsInJlc291cmNlcyIsImkxOG5leHQiLCJwdXNoU3R5bGUiLCJwb3BTdHlsZSIsInBvcE1hdHJpeCIsInB1c2hNYXRyaXgiLCJfdXNlck5vZGUiLCJfZWxlbWVudHMiLCJfZ2xBdHRyaWJ1dGVzIiwiX3JlcXVlc3RBbmltSWQiLCJfcHJlbG9hZENvdW50IiwiX2xvb3AiLCJfaW5pdGlhbGl6ZUluc3RhbmNlVmFyaWFibGVzIiwiX2RlZmF1bHRDYW52YXNTaXplIiwiX2V2ZW50cyIsIm1vdXNlbW92ZSIsIm1vdXNlZG93biIsIm1vdXNldXAiLCJkcmFnZW5kIiwiZHJhZ292ZXIiLCJjbGljayIsImRibGNsaWNrIiwibW91c2VvdmVyIiwibW91c2VvdXQiLCJrZXlkb3duIiwia2V5dXAiLCJrZXlwcmVzcyIsInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIsInJlc2l6ZSIsImJsdXIiLCJfbWlsbGlzU3RhcnQiLCJfbGNnX3JhbmRvbV9zdGF0ZSIsIl9nYXVzc2lhbl9wcmV2aW91cyIsIndoZWVsIiwiX2xvYWRpbmdTY3JlZW5JZCIsIl9yZWdpc3RlcmVkTWV0aG9kcyIsInJldHVybiIsIkRldmljZU9yaWVudGF0aW9uRXZlbnQiLCJkZXZpY2VvcmllbnRhdGlvbiIsIkRldmljZU1vdGlvbkV2ZW50IiwiX2lzTm9kZVdlYmtpdCIsImRldmljZW1vdGlvbiIsIl9zdGFydCIsInByZWxvYWQiLCJfcHJlbG9hZE1ldGhvZHMiLCJfd3JhcFByZWxvYWQiLCJfcmVnaXN0ZXJlZFByZWxvYWRNZXRob2RzIiwiX3J1bklmUHJlbG9hZHNBcmVEb25lIiwiX3NldHVwIiwiX2RyYXciLCJfZGVjcmVtZW50UHJlbG9hZCIsIl9pbmNyZW1lbnRQcmVsb2FkIiwiY3JlYXRlQ2FudmFzIiwiZGF0YXNldCIsImhpZGRlbiIsInZpc2liaWxpdHkiLCJyZWRyYXciLCJfdXBkYXRlTW91c2VDb29yZHMiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9zZXR1cFByb21pc2VQcmVsb2FkcyIsIl9jcmVhdGVGcmllbmRseUdsb2JhbEZ1bmN0aW9uQmluZGVyIiwicGFzc2l2ZSIsInJlZ2lzdGVyTWV0aG9kIiwiX3N0eWxlcyIsIl9iZXppZXJEZXRhaWwiLCJfY3VydmVEZXRhaWwiLCJyZ2IiLCJoc2IiLCJoc2wiLCJfZG93bktleXMiLCJnbG9iYWxPYmplY3QiLCJkaXNhYmxlRnJpZW5kbHlFcnJvcnMiLCJsb2FkSlNPTiIsImxvYWRJbWFnZSIsImxvYWRTdHJpbmdzIiwibG9hZFhNTCIsImxvYWRCeXRlcyIsImxvYWRUYWJsZSIsImxvYWRGb250IiwibG9hZE1vZGVsIiwibG9hZFNoYWRlciIsInByZSIsIkVsZW1lbnQiLCJfcEluc3QiLCJfcGl4ZWxzU3RhdGUiLCJvZmZzZXRXaWR0aCIsIm9mZnNldEhlaWdodCIsInBhcmVudCIsImNsYXNzIiwibW91c2VQcmVzc2VkIiwiX2FkanVzdExpc3RlbmVyIiwiX3NldE1vdXNlQnV0dG9uIiwiZG91YmxlQ2xpY2tlZCIsIm1vdXNlV2hlZWwiLCJtb3VzZVJlbGVhc2VkIiwibW91c2VDbGlja2VkIiwibW91c2VNb3ZlZCIsIm1vdXNlT3ZlciIsIm1vdXNlT3V0IiwidG91Y2hTdGFydGVkIiwidG91Y2hNb3ZlZCIsInRvdWNoRW5kZWQiLCJkcmFnT3ZlciIsImRyYWdMZWF2ZSIsIl9kZXRhY2hMaXN0ZW5lciIsIl9hdHRhY2hMaXN0ZW5lciIsIkdyYXBoaWNzIiwiUmVuZGVyZXJHTCIsIlJlbmRlcmVyMkQiLCJfYXBwbHlEZWZhdWx0cyIsInJlc2V0TWF0cml4IiwiaXNQM0QiLCJfdXBkYXRlIiwib2Zmc2V0UGFyZW50Iiwib2Zmc2V0TGVmdCIsIm9mZnNldFRvcCIsIlJlbmRlcmVyIiwiX2lzTWFpbkNhbnZhcyIsImRpc3BsYXkiLCJfdGV4dFNpemUiLCJfdGV4dExlYWRpbmciLCJfdGV4dEZvbnQiLCJfdGV4dFN0eWxlIiwiX3RleHRBc2NlbnQiLCJfdGV4dERlc2NlbnQiLCJfdGV4dEFsaWduIiwiX3RleHRCYXNlbGluZSIsIl9yZWN0TW9kZSIsIl9lbGxpcHNlTW9kZSIsIl9jdXJ2ZVRpZ2h0bmVzcyIsIl9pbWFnZU1vZGUiLCJfdGludCIsIl9kb1N0cm9rZSIsIl9kb0ZpbGwiLCJfc3Ryb2tlU2V0IiwiX2ZpbGxTZXQiLCJwcm9wZXJ0aWVzIiwiX2dldFBpeGVsIiwiSW1hZ2UiLCJnZXRDb250ZXh0IiwiZHJhd0ltYWdlIiwidGV4dExlYWRpbmciLCJ0ZXh0U2l6ZSIsIl9hcHBseVRleHRQcm9wZXJ0aWVzIiwidGV4dFN0eWxlIiwidGV4dEFzY2VudCIsIl91cGRhdGVUZXh0TWV0cmljcyIsInRleHREZXNjZW50IiwidGV4dEFsaWduIiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwiTUFYX1ZBTFVFIiwidGV4dFdpZHRoIiwiX3JlbmRlclRleHQiLCJfaXNPcGVuVHlwZSIsImZvbnRTaXplIiwib3ZlcmZsb3ciLCJ2ZXJ0aWNhbEFsaWduIiwiZHJhd2luZ0NvbnRleHQiLCJfY2FjaGVkRmlsbFN0eWxlIiwiX2NhY2hlZFN0cm9rZVN0eWxlIiwiX2NhY2hlZEJsZW5kTW9kZSIsIl9zZXRGaWxsIiwiX3NldFN0cm9rZSIsImxpbmVDYXAiLCJzY2FsZSIsImltYWdlIiwiX2dldEZpbGwiLCJfaXNFcmFzaW5nIiwiYmxlbmRNb2RlIiwiZmlsbFJlY3QiLCJyZXN0b3JlIiwiY2xlYXJSZWN0IiwiZ2lmUHJvcGVydGllcyIsIl9hbmltYXRlR2lmIiwiTWVkaWFFbGVtZW50IiwibG9hZFBpeGVscyIsIl9nZXRUaW50ZWRJbWFnZUNhbnZhcyIsIl90b1BpeGVscyIsImNyZWF0ZUltYWdlRGF0YSIsInB1dEltYWdlRGF0YSIsImdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiIsImJsZW5kIiwiZ2V0SW1hZ2VEYXRhIiwic2V0VHJhbnNmb3JtIiwiaW1hZ2VEYXRhIiwicGl4ZWxzIiwidXBkYXRlUGl4ZWxzIiwiZnJhbWVzIiwiZGlzcGxheUluZGV4IiwiX2FjdXRlQXJjVG9CZXppZXIiLCJheCIsImF5IiwiYngiLCJjeCIsImN5IiwiZWxsaXBzZSIsIl9nZXRTdHJva2UiLCJsaW5lIiwicG9pbnQiLCJxdWFkIiwicmVjdCIsImFyY1RvIiwidHJpYW5nbGUiLCJlbmRTaGFwZSIsIlBPTFlHT04iLCJfZG9GaWxsU3Ryb2tlQ2xvc2UiLCJpc1ZlcnQiLCJzdHJva2VDYXAiLCJzdHJva2VKb2luIiwibGluZUpvaW4iLCJzdHJva2VXZWlnaHQiLCJiZXppZXIiLCJiZWdpblNoYXBlIiwidmVydGV4IiwiYmV6aWVyVmVydGV4IiwiY3VydmUiLCJjdXJ2ZVZlcnRleCIsImFwcGx5TWF0cml4IiwidHJhbnNmb3JtIiwicm90YXRlIiwidHJhbnNsYXRlIiwiVmVjdG9yIiwidGV4dEJhc2VsaW5lIiwiX3JlbmRlclBhdGgiLCJyZW5kZXJlciIsInN0cm9rZVRleHQiLCJmaWxsVGV4dCIsIl90ZXh0V2lkdGgiLCJtZWFzdXJlVGV4dCIsIl9wcm9taXNlUHJlbG9hZHMiLCJyZWdpc3RlclByb21pc2VQcmVsb2FkIiwiYWRkQ2FsbGJhY2tzIiwibGVnYWN5UHJlbG9hZFNldHVwIiwiX3dyYXBQcm9taXNlUHJlbG9hZCIsIl9sZWdhY3lQcmVsb2FkR2VuZXJhdG9yIiwiY3JlYXRlQmFzZU9iamVjdCIsImNsYXNzTGlzdCIsIl9kZWZhdWx0R3JhcGhpY3NDcmVhdGVkIiwibm9DYW52YXMiLCJjcmVhdGVHcmFwaGljcyIsIl9ub3JtYWxpemVBcmNBbmdsZXMiLCJhdGFuIiwic3RvcCIsImNvcnJlc3BvbmRUb1NhbWVQb2ludCIsIl90b1JhZGlhbnMiLCJfcmVuZGVyRWxsaXBzZSIsImNpcmNsZSIsIl9yZW5kZXJSZWN0Iiwic3F1YXJlIiwiZWxsaXBzZU1vZGUiLCJub1Ntb290aCIsInNldEF0dHJpYnV0ZXMiLCJpbWFnZVNtb290aGluZ0VuYWJsZWQiLCJyZWN0TW9kZSIsInNtb290aCIsImJlemllckRldGFpbCIsImJlemllclBvaW50IiwiYmV6aWVyVGFuZ2VudCIsImN1cnZlRGV0YWlsIiwiY3VydmVUaWdodG5lc3MiLCJjdXJ2ZVBvaW50IiwiY3VydmVUYW5nZW50IiwiYmVnaW5Db250b3VyIiwiZW5kQ29udG91ciIsInF1YWRyYXRpY1ZlcnRleCIsIl9jb250b3VySW5pdGVkIiwieDMiLCJ5MyIsIl9jb250b3VyVmVydGljZXMiLCJ3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJtb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJvUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwibXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm5vTG9vcCIsImlzTG9vcGluZyIsInByb3BzIiwiX2luVXNlckRyYXciLCJyb3RhdGVYIiwiX2Fzc2VydDNkIiwicm90YXRlWSIsInJvdGF0ZVoiLCJzaGVhclgiLCJzaGVhclkiLCJzdG9yZUl0ZW0iLCJjcmVhdGVWZWN0b3IiLCJjbGVhclN0b3JhZ2UiLCJjcmVhdGVTdHJpbmdEaWN0IiwiU3RyaW5nRGljdCIsImNyZWF0ZU51bWJlckRpY3QiLCJOdW1iZXJEaWN0IiwiVHlwZWREaWN0IiwiaGFzS2V5IiwiX3ZhbGlkYXRlIiwiX2FkZE9iaiIsInNhdmVUYWJsZSIsImRvd25sb2FkRmlsZSIsInNhdmVKU09OIiwibXVsdCIsImRpdiIsIl92YWx1ZVRlc3QiLCJfa2V5VGVzdCIsIm1pbktleSIsIm1heEtleSIsImxvYWRlZG1ldGFkYXRhIiwidmlkZW9XaWR0aCIsInZpZGVvSGVpZ2h0IiwicHJlc2V0UGxheWJhY2tSYXRlIiwicGxheWJhY2tSYXRlIiwidGltZSIsInNlbGVjdCIsIl9nZXRDb250YWluZXIiLCJfd3JhcEVsZW1lbnQiLCJzZWxlY3RBbGwiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY2hpbGRyZW4iLCJ0YWdOYW1lIiwiY3JlYXRlU2VsZWN0IiwiZXZlcnkiLCJjcmVhdGVSYWRpbyIsImNoZWNrZWQiLCJyZW1vdmVFbGVtZW50cyIsIkhUTUxDYW52YXNFbGVtZW50IiwiY2hhbmdlZCIsImNyZWF0ZURpdiIsImNyZWF0ZVAiLCJjcmVhdGVTcGFuIiwiY3JlYXRlSW1nIiwiYWx0IiwiY3Jvc3NPcmlnaW4iLCJjcmVhdGVBIiwiY3JlYXRlU2xpZGVyIiwiY3JlYXRlQnV0dG9uIiwiY3JlYXRlQ2hlY2tib3giLCJodG1sRm9yIiwiSFRNTFNlbGVjdEVsZW1lbnQiLCJvcHRpb24iLCJzZWxlY3RlZCIsInNlbGVjdGVkSW5kZXgiLCJnZXRBdHRyaWJ1dGUiLCJzZWxlY3RlZE9wdGlvbnMiLCJkaXNhYmxlZCIsIkhUTUxEaXZFbGVtZW50IiwiSFRNTFNwYW5FbGVtZW50IiwiSFRNTElucHV0RWxlbWVudCIsIm5leHRFbGVtZW50U2libGluZyIsIkhUTUxMYWJlbEVsZW1lbnQiLCJfbmFtZSIsIl9nZXRPcHRpb25zQXJyYXkiLCJpbnNlcnRBZGphY2VudEVsZW1lbnQiLCJjcmVhdGVDb2xvclBpY2tlciIsImNyZWF0ZUlucHV0IiwiY3JlYXRlRmlsZUlucHV0IiwiRmlsZSIsIkZpbGVMaXN0IiwiZmlsZXMiLCJfbG9hZCIsImNyZWF0ZVZpZGVvIiwiY3JlYXRlQXVkaW8iLCJWSURFTyIsIkFVRElPIiwibWVkaWFEZXZpY2VzIiwiZ2V0VXNlck1lZGlhIiwid2Via2l0R2V0VXNlck1lZGlhIiwibW96R2V0VXNlck1lZGlhIiwiY3JlYXRlQ2FwdHVyZSIsIkRPTUV4Y2VwdGlvbiIsInZpZGVvIiwiYXVkaW8iLCJzcmNPYmplY3QiLCJwbGF5IiwiYWRkQ2xhc3MiLCJoYXNDbGFzcyIsInJlbW92ZUNsYXNzIiwiY29udGFpbnMiLCJ0b2dnbGVDbGFzcyIsImNoaWxkIiwiY2hpbGROb2RlcyIsImNlbnRlciIsInNob3ciLCJoaWRlIiwiX3RyYW5zbGF0ZSIsInBhcmVudEVsZW1lbnQiLCJwZXJzcGVjdGl2ZSIsIl9yb3RhdGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsImF0dHJpYnV0ZSIsImZpcnN0Q2hpbGQiLCJyZW1vdmVBdHRyaWJ1dGUiLCJnZXRUcmFja3MiLCJkcm9wIiwiX2RyYWdEaXNhYmxlZCIsImRhdGFUcmFuc2ZlciIsIl9wcmV2VGltZSIsIl9jdWVJRENvdW50ZXIiLCJfY3VlcyIsIl9tb2RpZmllZCIsIl9vbmVuZGVkIiwib25lbmRlZCIsImN1cnJlbnRUaW1lIiwiX2ZyaWVuZGx5QXV0b3BsYXlFcnJvciIsIl9zZXR1cEF1dG9wbGF5RmFpbERldGVjdGlvbiIsImF1dG9wbGF5Iiwidm9sdW1lIiwic3BlZWQiLCJfZW5zdXJlQ2FudmFzIiwic2V0TW9kaWZpZWQiLCJtYXNrIiwiaXNNb2RpZmllZCIsImNvbm5lY3QiLCJnZXRBdWRpb0NvbnRleHQiLCJzb3VuZE91dCIsImNvbnRleHQiLCJkZXN0aW5hdGlvbiIsImF1ZGlvU291cmNlTm9kZSIsImNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSIsImRpc2Nvbm5lY3QiLCJzaG93Q29udHJvbHMiLCJjb250cm9scyIsImhpZGVDb250cm9scyIsImFkZEN1ZSIsIm9udGltZXVwZGF0ZSIsIl9vblRpbWVVcGRhdGUiLCJyZW1vdmVDdWUiLCJjbGVhckN1ZXMiLCJmaWxlIiwic3VidHlwZSIsIl9jcmVhdGVMb2FkZXIiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJYTUwiLCJkZXZpY2VPcmllbnRhdGlvbiIsImFjY2VsZXJhdGlvblgiLCJhY2NlbGVyYXRpb25ZIiwiYWNjZWxlcmF0aW9uWiIsInBBY2NlbGVyYXRpb25YIiwicEFjY2VsZXJhdGlvblkiLCJwQWNjZWxlcmF0aW9uWiIsIl91cGRhdGVQQWNjZWxlcmF0aW9ucyIsInJvdGF0aW9uWCIsInJvdGF0aW9uWSIsInJvdGF0aW9uWiIsInBSb3RhdGlvblgiLCJwUm90YXRpb25ZIiwicFJvdGF0aW9uWiIsInBSb3RhdGVEaXJlY3Rpb25YIiwicFJvdGF0ZURpcmVjdGlvblkiLCJwUm90YXRlRGlyZWN0aW9uWiIsIl91cGRhdGVQUm90YXRpb25zIiwidHVybkF4aXMiLCJzZXRNb3ZlVGhyZXNob2xkIiwic2V0U2hha2VUaHJlc2hvbGQiLCJfb25kZXZpY2VvcmllbnRhdGlvbiIsIl9hbmdsZU1vZGUiLCJyYWRpYW5zIiwiYmV0YSIsIl9QSSIsImdhbW1hIiwiX2hhbmRsZU1vdGlvbiIsIl9vbmRldmljZW1vdGlvbiIsImFjY2VsZXJhdGlvbiIsIm9yaWVudGF0aW9uIiwiZGV2aWNlTW92ZWQiLCJkZXZpY2VUdXJuZWQiLCJkZXZpY2VTaGFrZW4iLCJpc0tleVByZXNzZWQiLCJrZXlJc1ByZXNzZWQiLCJrZXlDb2RlIiwiX29ua2V5ZG93biIsIndoaWNoIiwia2V5UHJlc3NlZCIsImNoYXJDb2RlIiwiX29ua2V5dXAiLCJfYXJlRG93bktleXMiLCJrZXlSZWxlYXNlZCIsIl9vbmtleXByZXNzIiwiX2xhc3RLZXlDb2RlVHlwZWQiLCJrZXlUeXBlZCIsIl9vbmJsdXIiLCJrZXlJc0Rvd24iLCJtb3ZlZFgiLCJtb3ZlZFkiLCJfaGFzTW91c2VJbnRlcmFjdGVkIiwibW91c2VYIiwibW91c2VZIiwicG1vdXNlWCIsInBtb3VzZVkiLCJ3aW5Nb3VzZVgiLCJ3aW5Nb3VzZVkiLCJwd2luTW91c2VYIiwicHdpbk1vdXNlWSIsIm1vdXNlQnV0dG9uIiwibW91c2VJc1ByZXNzZWQiLCJfdXBkYXRlTmV4dE1vdXNlQ29vcmRzIiwidG91Y2hlcyIsImNsaWVudFgiLCJjaGFuZ2VkVG91Y2hlcyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInNjcm9sbFdpZHRoIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50WSIsIndpblgiLCJ3aW5ZIiwiaWRlbnRpZmllciIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsIl9tb3VzZVdoZWVsRGVsdGFZIiwiYnV0dG9uIiwiX29ubW91c2Vtb3ZlIiwibW91c2VEcmFnZ2VkIiwiX29ubW91c2Vkb3duIiwiX29ubW91c2V1cCIsIl9vbmRyYWdlbmQiLCJfb25kcmFnb3ZlciIsIl9vbmNsaWNrIiwiX29uZGJsY2xpY2siLCJfcG1vdXNlV2hlZWxEZWx0YVkiLCJfb253aGVlbCIsImRlbHRhWSIsInJlcXVlc3RQb2ludGVyTG9jayIsIm1velJlcXVlc3RQb2ludGVyTG9jayIsImV4aXRQb2ludGVyTG9jayIsIl91cGRhdGVUb3VjaENvb3JkcyIsIl9vbnRvdWNoc3RhcnQiLCJfb250b3VjaG1vdmUiLCJfb250b3VjaGVuZCIsIkltYWdlRGF0YSIsIl9nZXRBUkdCIiwiX3NldFBpeGVscyIsIl90b0ltYWdlRGF0YSIsIl9jcmVhdGVJbWFnZURhdGEiLCJfdG1wQ2FudmFzIiwiX3RtcEN0eCIsIm9wYXF1ZSIsImludmVydCIsInBvc3Rlcml6ZSIsImRpbGF0ZSIsImVyb2RlIiwiY3JlYXRlSW1hZ2UiLCJzYXZlQ2FudmFzIiwiX2NoZWNrRmlsZUV4dGVuc2lvbiIsInRvQmxvYiIsInNhdmVHaWYiLCJsb29wTGltaXQiLCJTZXQiLCJVaW50MzJBcnJheSIsImZyZXEiLCJmcmFtZU9wdHMiLCJwaXhlbFBhbGV0dGVJbmRleCIsInNhdmVGcmFtZXMiLCJjb25zdHJhaW4iLCJfbWFrZUZyYW1lIiwic2V0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwiZmlsZW5hbWUiLCJleHQiLCJ0b0RhdGFVUkwiLCJvbWdnaWYiLCJwbGF5aW5nIiwidGltZURpc3BsYXllZCIsImxhc3RDaGFuZ2VUaW1lIiwidGludCIsIm5vVGludCIsImltYWdlTW9kZSIsInRpbWVTaW5jZVN0YXJ0IiwiZ2V0Q3VycmVudEZyYW1lIiwic2V0RnJhbWUiLCJfY29weUhlbHBlciIsImh0dHBEbyIsImN1cnJlbnRTdGF0ZSIsInRva2VuIiwiZXNjYXBlZCIsImNvbHVtbnMiLCJUYWJsZVJvdyIsImFyciIsImFkZFJvdyIsImh0dHBHZXQiLCJodHRwUG9zdCIsInNlcmlhbGl6ZSIsIl9wV3JpdGVycyIsIlByaW50V3JpdGVyIiwibWlsbGlzIiwid3JpdGVGaWxlIiwic2F2ZVN0cmluZ3MiLCJTb3VuZEZpbGUiLCJzYXZlU291bmQiLCJzYXZlSlNPTk9iamVjdCIsInNhdmVKU09OQXJyYXkiLCJyb3dzIiwiZ2V0U3RyaW5nIiwiX2lzU2FmYXJpIiwib25jbGljayIsInN0b3BQcm9wYWdhdGlvbiIsImFsZXJ0IiwicmVtb3ZlUm93IiwiZ2V0Um93IiwiZ2V0Um93cyIsImZpbmRSb3ciLCJmaW5kUm93cyIsIm1hdGNoUm93IiwibWF0Y2hSb3dzIiwiZ2V0Q29sdW1uIiwiY2xlYXJSb3dzIiwiYWRkQ29sdW1uIiwiZ2V0Q29sdW1uQ291bnQiLCJnZXRSb3dDb3VudCIsInJlbW92ZVRva2VucyIsInJlbW92ZUNvbHVtbiIsInNldE51bSIsInNldFN0cmluZyIsImdldE51bSIsImdldE9iamVjdCIsImdldEFycmF5IiwiRE9NIiwiaW1wbGVtZW50YXRpb24iLCJjcmVhdGVEb2N1bWVudCIsImdldFBhcmVudCIsImdldE5hbWUiLCJzZXROYW1lIiwiYXR0cmlidXRlcyIsIm5vZGVOYW1lIiwibm9kZVZhbHVlIiwiaGFzQ2hpbGRyZW4iLCJsaXN0Q2hpbGRyZW4iLCJnZXRDaGlsZHJlbiIsImdldENoaWxkIiwiYWRkQ2hpbGQiLCJnZXRBdHRyaWJ1dGVDb3VudCIsImxpc3RBdHRyaWJ1dGVzIiwiaGFzQXR0cmlidXRlIiwiZ2V0Q29udGVudCIsInRleHRDb250ZW50Iiwic2V0Q29udGVudCIsIlhNTFNlcmlhbGl6ZXIiLCJzZXJpYWxpemVUb1N0cmluZyIsImh5cG90IiwiZXhwIiwibWFnIiwibm9ybSIsInNxIiwiZnJhY3QiLCJub2lzZSIsIm5vaXNlRGV0YWlsIiwibm9pc2VTZWVkIiwic2V0U2VlZCIsImdldFNlZWQiLCJwNSIsInJlbSIsIm1hZ1NxIiwiZG90IiwiY3Jvc3MiLCJsaW1pdCIsInNldE1hZyIsImhlYWRpbmciLCJhdGFuMiIsIl9mcm9tUmFkaWFucyIsInNldEhlYWRpbmciLCJhbmdsZUJldHdlZW4iLCJhY29zIiwicmVmbGVjdCIsImZyb21BbmdsZSIsImZyb21BbmdsZXMiLCJyYW5kb20yRCIsInJhbmRvbTNEIiwiX2xjZyIsIl9sY2dTZXRTZWVkIiwicmFuZG9tU2VlZCIsInJhbmRvbUdhdXNzaWFuIiwiYXNpbiIsImRlZ3JlZXMiLCJhbmdsZU1vZGUiLCJfdG9EZWdyZWVzIiwidGV4dEZvbnQiLCJzYW1wbGVGYWN0b3IiLCJzaW1wbGlmeVRocmVzaG9sZCIsInRtcFBvaW50MSIsInRtcFBvaW50MiIsInF4IiwicXkiLCJjYWNoZSIsInRleHRCb3VuZHMiLCJfc2NhbGUiLCJhZHZhbmNlIiwiX2hhbmRsZUFsaWdubWVudCIsInRleHRUb1BvaW50cyIsIl9nZXRHbHlwaHMiLCJfZ2V0UGF0aCIsIl9nZXRQYXRoRGF0YSIsImRlY2ltYWxzIiwiX2dldFNWRyIsImFycmF5Q29weSIsInJldmVyc2UiLCJzaG9ydGVuIiwic2h1ZmZsZSIsInN1YnNldCIsImZsb2F0IiwiaW50IiwiYm9vbGVhbiIsImNoYXIiLCJ1bmNoYXIiLCJoZXgiLCJyZXBlYXQiLCJ1bmhleCIsIm1hdGNoQWxsIiwibmYiLCJuZmMiLCJuZnAiLCJuZnMiLCJzcGxpdFRva2VucyIsImRheSIsImdldERhdGUiLCJob3VyIiwiZ2V0SG91cnMiLCJtaW51dGUiLCJnZXRNaW51dGVzIiwibW9udGgiLCJnZXRNb250aCIsInNlY29uZCIsImdldFNlY29uZHMiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJ2ZXJ0aWNlcyIsInZlcnRleE5vcm1hbHMiLCJ1dnMiLCJmYWNlcyIsInBsYW5lIiwiZ2VvbWV0cnlJbkhhc2giLCJHZW9tZXRyeSIsImRldGFpbFkiLCJkZXRhaWxYIiwiY29tcHV0ZUZhY2VzIiwiY29tcHV0ZU5vcm1hbHMiLCJfbWFrZVRyaWFuZ2xlRWRnZXMiLCJfZWRnZXNUb1ZlcnRpY2VzIiwiY3JlYXRlQnVmZmVycyIsImRyYXdCdWZmZXJzU2NhbGVkIiwiYm94IiwicGVyUGl4ZWxMaWdodGluZyIsInN0cm9rZUluZGljZXMiLCJzcGhlcmUiLCJlbGxpcHNvaWQiLCJjeWxpbmRlciIsImNvbmUiLCJ0b3J1cyIsIl9kcmF3UG9pbnRzIiwiaW1tZWRpYXRlTW9kZSIsImJ1ZmZlcnMiLCJ1TVZNYXRyaXgiLCJNYXRyaXgiLCJkcmF3QnVmZmVycyIsIl9iZXppZXJWZXJ0ZXgiLCJfbG9va1VwVGFibGVCZXppZXIiLCJfbHV0QmV6aWVyRGV0YWlsIiwiX2JlemllckNvZWZmaWNpZW50cyIsImlzQmV6aWVyIiwiX3F1YWRyYXRpY1ZlcnRleCIsIl9sb29rVXBUYWJsZVF1YWRyYXRpYyIsIl9sdXRRdWFkcmF0aWNEZXRhaWwiLCJfcXVhZHJhdGljQ29lZmZpY2llbnRzIiwiaXNRdWFkcmF0aWMiLCJfY3VydmVWZXJ0ZXgiLCJpc0N1cnZlIiwiX2JlemllclRvQ2F0bXVsbCIsIm5vTGlnaHRzIiwidGV4dHVyZSIsInRleHR1cmVNb2RlIiwib3JiaXRDb250cm9sIiwiX2N1ckNhbWVyYSIsImNvbnRleHRNZW51RGlzYWJsZWQiLCJvbmNvbnRleHRtZW51Iiwid2hlZWxEZWZhdWx0RGlzYWJsZWQiLCJvbndoZWVsIiwiX29yYml0IiwiX2dldExvY2FsQXhlcyIsInNldFBvc2l0aW9uIiwiZXllWCIsImV5ZVkiLCJleWVaIiwiZGVidWdNb2RlIiwiX2dyaWQiLCJfYXhlc0ljb24iLCJub0RlYnVnTW9kZSIsImN1clN0cm9rZUNvbG9yIiwiY2FtZXJhTWF0cml4IiwibWF0NCIsImFtYmllbnRMaWdodCIsImFtYmllbnRMaWdodENvbG9ycyIsIl9lbmFibGVMaWdodGluZyIsInNwZWN1bGFyQ29sb3IiLCJzcGVjdWxhckNvbG9ycyIsImRpcmVjdGlvbmFsTGlnaHQiLCJkaXJlY3Rpb25hbExpZ2h0RGlyZWN0aW9ucyIsImRpcmVjdGlvbmFsTGlnaHREaWZmdXNlQ29sb3JzIiwiZGlyZWN0aW9uYWxMaWdodFNwZWN1bGFyQ29sb3JzIiwicG9pbnRMaWdodCIsInBvaW50TGlnaHRQb3NpdGlvbnMiLCJwb2ludExpZ2h0RGlmZnVzZUNvbG9ycyIsInBvaW50TGlnaHRTcGVjdWxhckNvbG9ycyIsImxpZ2h0cyIsImxpZ2h0RmFsbG9mZiIsImNvbnN0YW50QXR0ZW51YXRpb24iLCJsaW5lYXJBdHRlbnVhdGlvbiIsInF1YWRyYXRpY0F0dGVudWF0aW9uIiwic3BvdExpZ2h0Iiwic3BvdExpZ2h0RGlmZnVzZUNvbG9ycyIsInNwb3RMaWdodFNwZWN1bGFyQ29sb3JzIiwic3BvdExpZ2h0UG9zaXRpb25zIiwic3BvdExpZ2h0RGlyZWN0aW9ucyIsInNwb3RMaWdodEFuZ2xlIiwic3BvdExpZ2h0Q29uYyIsIl91c2VTaGluaW5lc3MiLCJnaWQiLCJnZXRGbG9hdDMyIiwiVGV4dERlY29kZXIiLCJ2biIsIm1vZGVsIiwiU2hhZGVyIiwiX3ZlcnRTcmMiLCJfZnJhZ1NyYyIsImNyZWF0ZVNoYWRlciIsInNoYWRlciIsImlzU3Ryb2tlU2hhZGVyIiwidXNlclN0cm9rZVNoYWRlciIsInVzZXJGaWxsU2hhZGVyIiwiX3VzZU5vcm1hbE1hdGVyaWFsIiwicmVzZXRTaGFkZXIiLCJub3JtYWxNYXRlcmlhbCIsImRyYXdNb2RlIiwiX3VzZVNwZWN1bGFyTWF0ZXJpYWwiLCJfdXNlRW1pc3NpdmVNYXRlcmlhbCIsImN1ckZpbGxDb2xvciIsIl90ZXgiLCJ0ZXh0dXJlV3JhcCIsInRleHR1cmVXcmFwWCIsInRleHR1cmVXcmFwWSIsInRleHR1cmVzIiwic2V0V3JhcE1vZGUiLCJhbWJpZW50TWF0ZXJpYWwiLCJlbWlzc2l2ZU1hdGVyaWFsIiwic3BlY3VsYXJNYXRlcmlhbCIsInNoaW5pbmVzcyIsIl9hcHBseUNvbG9yQmxlbmQiLCJHTCIsIl9pc0JsZW5kaW5nIiwiY3VyQmxlbmRNb2RlIiwiZGVwdGhNYXNrIiwiX2FwcGx5QmxlbmRNb2RlIiwiYmxlbmRFcXVhdGlvbiIsIkZVTkNfQUREIiwiYmxlbmRGdW5jIiwiU1JDX0FMUEhBIiwiT05FX01JTlVTX1NSQ19BTFBIQSIsIkZVTkNfUkVWRVJTRV9TVUJUUkFDVCIsIkRTVF9BTFBIQSIsImJsZW5kRXF1YXRpb25TZXBhcmF0ZSIsImJsZW5kRnVuY1NlcGFyYXRlIiwiWkVSTyIsIlNSQ19DT0xPUiIsIk9ORSIsIk9ORV9NSU5VU19EU1RfQ09MT1IiLCJPTkVfTUlOVVNfU1JDX0NPTE9SIiwiYmxlbmRFeHQiLCJNSU5fRVhUIiwiTUFYX0VYVCIsImNhbWVyYSIsIm9ydGhvIiwiZnJ1c3R1bSIsImNyZWF0ZUNhbWVyYSIsIkNhbWVyYSIsIl9jb21wdXRlQ2FtZXJhRGVmYXVsdFNldHRpbmdzIiwiX3NldERlZmF1bHRDYW1lcmEiLCJjYW1lcmFUeXBlIiwicHJvak1hdHJpeCIsImRlZmF1bHRDYW1lcmFGT1YiLCJjYW1lcmFGT1YiLCJkZWZhdWx0QXNwZWN0UmF0aW8iLCJkZWZhdWx0Q2FtZXJhTmVhciIsImRlZmF1bHRDYW1lcmFGYXIiLCJhc3BlY3RSYXRpbyIsImNhbWVyYU5lYXIiLCJjYW1lcmFGYXIiLCJpZGVudGl0eSIsIl9pc0FjdGl2ZSIsInVQTWF0cml4IiwiX3JvdGF0ZVZpZXciLCJjZW50ZXJYIiwiY2VudGVyWSIsImNlbnRlcloiLCJ1cFgiLCJ1cFkiLCJ1cFoiLCJwYW4iLCJ0aWx0IiwibG9va0F0IiwiZGVmYXVsdEV5ZVgiLCJkZWZhdWx0RXllWSIsImRlZmF1bHRFeWVaIiwibW92ZSIsImRlZmF1bHRDZW50ZXJYIiwiZGVmYXVsdENlbnRlclkiLCJkZWZhdWx0Q2VudGVyWiIsIl9yZXNpemUiLCJzZXRDYW1lcmEiLCJsaW5lVmVydGljZXMiLCJsaW5lTm9ybWFscyIsImVkZ2VzIiwidmVydGV4Q29sb3JzIiwiZGlydHlGbGFncyIsIl9nZXRGYWNlTm9ybWFsIiwiYXZlcmFnZU5vcm1hbHMiLCJhdmVyYWdlUG9sZU5vcm1hbHMiLCJGbG9hdDMyQXJyYXkiLCJtYXQzIiwidHJhbnNwb3NlIiwiaW52ZXJ0M3gzIiwidHJhbnNwb3NlM3gzIiwiaW52ZXJzZVRyYW5zcG9zZSIsImRldGVybWluYW50IiwiUmVuZGVyQnVmZmVyIiwiZHN0IiwiX3ByZXBhcmVCdWZmZXIiLCJjcmVhdGVCdWZmZXIiLCJiaW5kQnVmZmVyIiwiQVJSQVlfQlVGRkVSIiwiX2JpbmRCdWZmZXIiLCJlbmFibGVBdHRyaWIiLCJzaGFwZU1vZGUiLCJnZW9tZXRyeSIsIl9wcm9jZXNzVmVydGljZXMiLCJfZHJhd0ltbWVkaWF0ZUZpbGwiLCJfZHJhd0ltbWVkaWF0ZVN0cm9rZSIsIl9jYWxjdWxhdGVFZGdlcyIsIl90ZXNzZWxhdGVTaGFwZSIsIl92VG9OQXJyYXkiLCJfdHJpYW5ndWxhdGUiLCJfZ2V0SW1tZWRpYXRlRmlsbFNoYWRlciIsIl9jYWxjdWxhdGVOb3JtYWxzIiwiX3NldEZpbGxVbmlmb3JtcyIsImRyYXdBcnJheXMiLCJ1bmJpbmRTaGFkZXIiLCJfZ2V0SW1tZWRpYXRlU3Ryb2tlU2hhZGVyIiwiX3NldFN0cm9rZVVuaWZvcm1zIiwiX2luaXRCdWZmZXJEZWZhdWx0cyIsIl9mcmVlQnVmZmVycyIsInJldGFpbmVkTW9kZSIsImluZGV4QnVmZmVyIiwiZGVsZXRlQnVmZmVyIiwiX2ZsYXR0ZW4iLCJFTEVNRU5UX0FSUkFZX0JVRkZFUiIsInZlcnRleENvdW50IiwibGluZVZlcnRleENvdW50IiwiX2dldFJldGFpbmVkU3Ryb2tlU2hhZGVyIiwiX2RyYXdBcnJheXMiLCJfZ2V0UmV0YWluZWRGaWxsU2hhZGVyIiwiX2RyYXdFbGVtZW50cyIsImRyYXdFbGVtZW50cyIsIlVOU0lHTkVEX1NIT1JUIiwiX2dldEltbWVkaWF0ZVBvaW50U2hhZGVyIiwiX3NldFBvaW50VW5pZm9ybXMiLCJTVEFUSUNfRFJBVyIsImFQb3NpdGlvbiIsIlBvaW50cyIsImltbWVkaWF0ZVZlcnQiLCJ2ZXJ0ZXhDb2xvclZlcnQiLCJ2ZXJ0ZXhDb2xvckZyYWciLCJub3JtYWxWZXJ0Iiwibm9ybWFsRnJhZyIsImJhc2ljRnJhZyIsImxpZ2h0VmVydCIsImxpZ2h0VGV4dHVyZUZyYWciLCJwaG9uZ1ZlcnQiLCJwaG9uZ0ZyYWciLCJmb250VmVydCIsImZvbnRGcmFnIiwibGluZVZlcnQiLCJsaW5lRnJhZyIsInBvaW50VmVydCIsInBvaW50RnJhZyIsIl9zZXRBdHRyaWJ1dGVEZWZhdWx0cyIsIl9pbml0Q29udGV4dCIsImdldEV4dGVuc2lvbiIsInVOTWF0cml4IiwiX2RlZmF1bHRMaWdodFNoYWRlciIsIl9kZWZhdWx0SW1tZWRpYXRlTW9kZVNoYWRlciIsIl9kZWZhdWx0Tm9ybWFsU2hhZGVyIiwiX2RlZmF1bHRDb2xvclNoYWRlciIsIl9kZWZhdWx0UG9pbnRTaGFkZXIiLCJ1c2VyUG9pbnRTaGFkZXIiLCJwb2ludFNpemUiLCJjdXJTdHJva2VXZWlnaHQiLCJfdGVzc3kiLCJfaW5pdFRlc3N5IiwiZm9udEluZm9zIiwiX2N1clNoYWRlciIsImRlcHRoIiwic3RlbmNpbCIsImFudGlhbGlhcyIsInByZW11bHRpcGxpZWRBbHBoYSIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsIkRFUFRIX1RFU1QiLCJkZXB0aEZ1bmMiLCJMRVFVQUwiLCJ2aWV3cG9ydCIsImRyYXdpbmdCdWZmZXJXaWR0aCIsImRyYXdpbmdCdWZmZXJIZWlnaHQiLCJfdmlld3BvcnQiLCJnZXRQYXJhbWV0ZXIiLCJWSUVXUE9SVCIsIl9yZXNldENvbnRleHQiLCJERVBUSF9CVUZGRVJfQklUIiwiY2xlYXJDb2xvciIsIkNPTE9SX0JVRkZFUl9CSVQiLCJyZWFkUGl4ZWxzIiwiVU5TSUdORURfQllURSIsIl9nZXRMaW5lU2hhZGVyIiwiaXNOb3JtYWxTaGFkZXIiLCJfZ2V0Tm9ybWFsU2hhZGVyIiwiaXNMaWdodFNoYWRlciIsIl9nZXRMaWdodFNoYWRlciIsImlzVGV4dHVyZVNoYWRlciIsIl9nZXRJbW1lZGlhdGVNb2RlU2hhZGVyIiwiX2dldENvbG9yU2hhZGVyIiwiaXNQb2ludFNoYWRlciIsIl9nZXRQb2ludFNoYWRlciIsIl9nZXRSZXRhaW5lZExpbmVTaGFkZXIiLCJfZ2V0SW1tZWRpYXRlTGluZVNoYWRlciIsIl9kZWZhdWx0TGluZVNoYWRlciIsIl9nZXRGb250U2hhZGVyIiwiX2RlZmF1bHRGb250U2hhZGVyIiwiX2dldEVtcHR5VGV4dHVyZSIsIl9lbXB0eVRleHR1cmUiLCJUZXh0dXJlIiwiZ2V0VGV4dHVyZSIsImJpbmRTaGFkZXIiLCJzZXRVbmlmb3JtIiwiYmluZFRleHR1cmVzIiwiYnVmZmVyRGF0YSIsIl9hcnJheXNFcXVhbCIsIl9pc1R5cGVkQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJJbnQxNkFycmF5IiwiX3ZlcnRTaGFkZXIiLCJfZnJhZ1NoYWRlciIsIl9nbFByb2dyYW0iLCJfbG9hZGVkQXR0cmlidXRlcyIsIl9sb2FkZWRVbmlmb3JtcyIsInVuaWZvcm1zIiwiX2JvdW5kIiwic2FtcGxlcnMiLCJWRVJURVhfU0hBREVSIiwic2hhZGVyU291cmNlIiwiY29tcGlsZVNoYWRlciIsImdldFNoYWRlclBhcmFtZXRlciIsIkNPTVBJTEVfU1RBVFVTIiwiZ2V0U2hhZGVySW5mb0xvZyIsIkZSQUdNRU5UX1NIQURFUiIsImNyZWF0ZVByb2dyYW0iLCJhdHRhY2hTaGFkZXIiLCJsaW5rUHJvZ3JhbSIsImdldFByb2dyYW1QYXJhbWV0ZXIiLCJMSU5LX1NUQVRVUyIsImdldFByb2dyYW1JbmZvTG9nIiwiX2xvYWRBdHRyaWJ1dGVzIiwiX2xvYWRVbmlmb3JtcyIsIkFDVElWRV9BVFRSSUJVVEVTIiwiZ2V0QWN0aXZlQXR0cmliIiwiZ2V0QXR0cmliTG9jYXRpb24iLCJBQ1RJVkVfVU5JRk9STVMiLCJnZXRBY3RpdmVVbmlmb3JtIiwiZ2V0VW5pZm9ybUxvY2F0aW9uIiwiX2NhY2hlZERhdGEiLCJTQU1QTEVSXzJEIiwic2FtcGxlckluZGV4IiwiRkxPQVRfTUFUMyIsIkZMT0FUX01BVDQiLCJGTE9BVF9WRUMyIiwiRkxPQVRfVkVDMyIsIkZMT0FUX1ZFQzQiLCJJTlRfVkVDMiIsIklOVF9WRUMzIiwiSU5UX1ZFQzQiLCJjb21waWxlIiwidXNlUHJvZ3JhbSIsIl9zZXRNYXRyaXhVbmlmb3JtcyIsInVuYmluZFRleHR1cmVzIiwiYWN0aXZlVGV4dHVyZSIsIlRFWFRVUkUwIiwiYmluZFRleHR1cmUiLCJ1cGRhdGUiLCJ1bmlmb3JtMWkiLCJ1cGRhdGVUZXh0dXJlcyIsInVOb3JtYWxNYXRyaXgiLCJCT09MIiwiSU5UIiwidW5pZm9ybTFpdiIsIkZMT0FUIiwidW5pZm9ybTFmdiIsInVuaWZvcm0xZiIsInVuaWZvcm1NYXRyaXgzZnYiLCJ1bmlmb3JtTWF0cml4NGZ2IiwidW5pZm9ybTJmdiIsInVuaWZvcm0yZiIsInVuaWZvcm0zZnYiLCJ1bmlmb3JtM2YiLCJ1bmlmb3JtNGZ2IiwidW5pZm9ybTRmIiwidW5pZm9ybTJpdiIsInVuaWZvcm0yaSIsInVuaWZvcm0zaXYiLCJ1bmlmb3JtM2kiLCJ1bmlmb3JtNGl2IiwidW5pZm9ybTRpIiwiYU5vcm1hbCIsInVVc2VMaWdodGluZyIsInVBbWJpZW50TGlnaHRDb3VudCIsInVEaXJlY3Rpb25hbExpZ2h0Q291bnQiLCJ1UG9pbnRMaWdodENvdW50IiwidUFtYmllbnRDb2xvciIsInVEaXJlY3Rpb25hbERpZmZ1c2VDb2xvcnMiLCJ1RGlyZWN0aW9uYWxTcGVjdWxhckNvbG9ycyIsInVQb2ludExpZ2h0TG9jYXRpb24iLCJ1UG9pbnRMaWdodERpZmZ1c2VDb2xvcnMiLCJ1UG9pbnRMaWdodFNwZWN1bGFyQ29sb3JzIiwidUxpZ2h0aW5nRGlyZWN0aW9uIiwidVNwZWN1bGFyIiwiaXNDb2xvclNoYWRlciIsImFWZXJ0ZXhDb2xvciIsInVNYXRlcmlhbENvbG9yIiwiaXNUZXhMaWdodFNoYWRlciIsInVTdHJva2VXZWlnaHQiLCJlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSIsInZlcnRleEF0dHJpYlBvaW50ZXIiLCJnbFRleCIsImdsVGFyZ2V0IiwiVEVYVFVSRV8yRCIsImdsRm9ybWF0IiwibWlwbWFwcyIsImdsTWluRmlsdGVyIiwiZ2xNYWdGaWx0ZXIiLCJnbFdyYXBTIiwiQ0xBTVBfVE9fRURHRSIsImdsV3JhcFQiLCJpc1NyY01lZGlhRWxlbWVudCIsIl92aWRlb1ByZXZVcGRhdGVUaW1lIiwiaXNTcmNIVE1MRWxlbWVudCIsImlzU3JjUDVJbWFnZSIsImlzU3JjUDVHcmFwaGljcyIsImlzSW1hZ2VEYXRhIiwiX2dldFRleHR1cmVEYXRhRnJvbVNvdXJjZSIsImNyZWF0ZVRleHR1cmUiLCJ0ZXhQYXJhbWV0ZXJpIiwiVEVYVFVSRV9NQUdfRklMVEVSIiwiVEVYVFVSRV9NSU5fRklMVEVSIiwidGV4SW1hZ2UyRCIsIl9kaXJ0eSIsInVuYmluZFRleHR1cmUiLCJzZXRJbnRlcnBvbGF0aW9uIiwiTUlSUk9SRURfUkVQRUFUIiwiVEVYVFVSRV9XUkFQX1MiLCJURVhUVVJFX1dSQVBfVCIsImluZm9zIiwiZmluZEltYWdlIiwic3Ryb2tlSW1hZ2VJbmZvcyIsImNvbERpbUltYWdlSW5mb3MiLCJyb3dEaW1JbWFnZUluZm9zIiwiY29sQ2VsbEltYWdlSW5mb3MiLCJyb3dDZWxsSW1hZ2VJbmZvcyIsImdseXBoSW5mb3MiLCJnZXRHbHlwaEluZm8iLCJwMCIsImMwIiwiYzEiLCJwMSIsInRvUXVhZHJhdGljIiwicXVhZEVycm9yIiwic3BsaXRJbmZsZWN0aW9ucyIsImNlbGxJbWFnZUluZm8iLCJkaW1PZmZzZXQiLCJkaW1JbWFnZUluZm8iLCJnbHlwaCIsInVHbHlwaFJlY3QiLCJzdHJva2VJbWFnZUluZm8iLCJzdHJva2VzIiwiY29sSW5mbyIsInJvd0luZm8iLCJ1R3JpZE9mZnNldCIsIl9mb250SW5mbyIsIl90ZXh0R2VvbSIsImVuY29kZVVSSUNvbXBvbmVudCIsInFzIiwicXJ5IiwicGFpcnMiLCJwYWlyIiwicGFydHMiLCJhdXRob3JpdHkiLCJpcHY2dXJpIiwicGF0aE5hbWVzIiwicXVlcnlLZXkiLCIkMCIsIiQyIiwiaW8iLCJNYW5hZ2VyIiwidXJsXzEiLCJtYW5hZ2VyXzEiLCJzb2NrZXRfMSIsImxvb2t1cCIsIm1hbmFnZXJzIiwicGFyc2VkIiwic2FtZU5hbWVzcGFjZSIsImZvcmNlTmV3IiwibXVsdGlwbGV4Iiwic29ja2V0X2lvX3BhcnNlcl8xIiwibWFuYWdlcl8yIiwiZWlvIiwib25fMSIsIm5zcHMiLCJzdWJzIiwicmVjb25uZWN0aW9uIiwicmVjb25uZWN0aW9uQXR0ZW1wdHMiLCJJbmZpbml0eSIsInJlY29ubmVjdGlvbkRlbGF5IiwicmVjb25uZWN0aW9uRGVsYXlNYXgiLCJyYW5kb21pemF0aW9uRmFjdG9yIiwiYmFja29mZiIsIl9yZWFkeVN0YXRlIiwiX3BhcnNlciIsImVuY29kZXIiLCJFbmNvZGVyIiwiZGVjb2RlciIsIkRlY29kZXIiLCJfYXV0b0Nvbm5lY3QiLCJhdXRvQ29ubmVjdCIsIl9yZWNvbm5lY3Rpb24iLCJfcmVjb25uZWN0aW9uQXR0ZW1wdHMiLCJfYSIsIl9yZWNvbm5lY3Rpb25EZWxheSIsIl9yYW5kb21pemF0aW9uRmFjdG9yIiwiX3JlY29ubmVjdGlvbkRlbGF5TWF4IiwiX3RpbWVvdXQiLCJfcmVjb25uZWN0aW5nIiwicmVjb25uZWN0IiwiZW5naW5lIiwic2tpcFJlY29ubmVjdCIsIm9wZW5TdWJEZXN0cm95IiwiZXJyb3JTdWIiLCJtYXliZVJlY29ubmVjdE9uT3BlbiIsInRpbWVyIiwib25waW5nIiwib25kYXRhIiwib25kZWNvZGVkIiwibnNwIiwiYWN0aXZlIiwiX2Nsb3NlIiwic3ViRGVzdHJveSIsIm9ucmVjb25uZWN0IiwiYXR0ZW1wdCIsIlJFU0VSVkVEX0VWRU5UUyIsImNvbm5lY3RfZXJyb3IiLCJkaXNjb25uZWN0aW5nIiwibmV3TGlzdGVuZXIiLCJyZWNlaXZlQnVmZmVyIiwic2VuZEJ1ZmZlciIsImlkcyIsImFja3MiLCJjb25uZWN0ZWQiLCJkaXNjb25uZWN0ZWQiLCJhdXRoIiwib25wYWNrZXQiLCJzdWJFdmVudHMiLCJQYWNrZXRUeXBlIiwiRVZFTlQiLCJpc1RyYW5zcG9ydFdyaXRhYmxlIiwidm9sYXRpbGUiLCJfcGFja2V0IiwiQ09OTkVDVCIsIm9uY29ubmVjdCIsIkJJTkFSWV9FVkVOVCIsIm9uZXZlbnQiLCJBQ0siLCJCSU5BUllfQUNLIiwib25hY2siLCJESVNDT05ORUNUIiwib25kaXNjb25uZWN0IiwiQ09OTkVDVF9FUlJPUiIsImFjayIsImVtaXRFdmVudCIsIl9hbnlMaXN0ZW5lcnMiLCJsaXN0ZW5lciIsInNlbnQiLCJlbWl0QnVmZmVyZWQiLCJyZWNvbnN0cnVjdFBhY2tldCIsImRlY29uc3RydWN0UGFja2V0IiwiaXNfYmluYXJ5XzEiLCJfZGVjb25zdHJ1Y3RQYWNrZXQiLCJpc0JpbmFyeSIsInBsYWNlaG9sZGVyIiwiX3BsYWNlaG9sZGVyIiwibnVtIiwibmV3RGF0YSIsIl9yZWNvbnN0cnVjdFBhY2tldCIsInBhY2tldERhdGEiLCJwYWNrIiwiYXR0YWNobWVudHMiLCJiaW5hcnlfMSIsImhhc0JpbmFyeSIsImVuY29kZUFzU3RyaW5nIiwiZW5jb2RlQXNCaW5hcnkiLCJkZWNvbnN0cnVjdGlvbiIsImRlY29kZVN0cmluZyIsInJlY29uc3RydWN0b3IiLCJCaW5hcnlSZWNvbnN0cnVjdG9yIiwidGFrZUJpbmFyeURhdGEiLCJidWYiLCJwYXlsb2FkIiwidHJ5UGFyc2UiLCJpc1BheWxvYWRWYWxpZCIsImZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24iLCJyZWNvblBhY2siLCJiaW5EYXRhIiwid2l0aE5hdGl2ZUZpbGUiLCJhbHBoYWJldCIsInNlZWQiLCJlbmNvZGVkIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsImdldHRlciIsImRlZmluaXRpb24iLCJwcm9wIiwidGlsZVR5cGVzIiwibWFwVGlsZXMiLCJQbGF5ZXIiLCJrZXlzUHJlc3NlZCIsIk90aGVyUGxheWVycyIsImdyYXNzSW1hZ2UiLCJvbktleURvd24iLCJvbktleVVwIiwib25Db250ZXh0TWVudSIsIm9uQ2FudmFzUmVzaXplIiwiZHJhd1BsYXllciIsInBsYXllciIsInBsYXllckRhdGEiLCJwbGF5ZXJzRGF0YSIsIm1vdmVkUGxheWVyRGF0YSIsImdyYXNzIiwidGlsZSIsImJ1aWxkTWFwIiwieFRpbGVzIiwieVRpbGUiLCJwMiIsImRyYXdNYXAiLCJvdGhlclBsYXllciIsInByZXZpb3VzUG9zaXRpb24iXSwibWFwcGluZ3MiOiI7b0JBbUJBLFNBQVNBLEVBQVFDLEdBQ2ZBLEVBQU9BLEdBQVEsR0FDZkMsS0FBS0MsR0FBS0YsRUFBS0csS0FBTyxJQUN0QkYsS0FBS0csSUFBTUosRUFBS0ksS0FBTyxJQUN2QkgsS0FBS0ksT0FBU0wsRUFBS0ssUUFBVSxFQUM3QkosS0FBS0ssT0FBU04sRUFBS00sT0FBUyxHQUFLTixFQUFLTSxRQUFVLEVBQUlOLEVBQUtNLE9BQVMsRUFDbEVMLEtBQUtNLFNBQVcsRUFwQmxCQyxFQUFPQyxRQUFVVixFQThCakJBLEVBQVFXLFVBQVVDLFNBQVcsV0FDM0IsSUFBSVQsRUFBS0Qs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QU0sUUFBUSxPQUFPLE9BQU8sTUFBTSxRQUFRLFFBQVEsT0FBTyxRQUFRLFlBQVksT0FBTyxRQUFRLFVBQVUsV0FBVyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxjQUFjLFlBQVksZUFBZSxjQUFjLGFBQWEsWUFBWSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxNQUFNLGFBQWEsYUFBYSxhQUFhLE9BQU8sV0FBVyxXQUFXLE1BQU0sU0FBUyxVQUFVLFdBQVcsY0FBYyxlQUFlLGdCQUFnQixnQkFBZ0IsaUJBQWlCLEtBQUssS0FBSyxTQUFTLFNBQVMsWUFBWSxpQkFBaUIsWUFBWSxTQUFTLGlCQUFpQixlQUFlLGdCQUFnQixpQkFBaUIsV0FBVyxjQUFjLGVBQWUsUUFBUSxRQUFRLGFBQWEsUUFBUSxTQUFTLFFBQVEsWUFBWSxXQUFXLE9BQU8sVUFBVSxlQUFlLFNBQVMsUUFBUSxTQUFTLEtBQUssY0FBYyxTQUFTLFNBQVMsS0FBSyxlQUFlLEtBQUssV0FBVyxTQUFTLFNBQVMsS0FBSyxhQUFhLGNBQWMsYUFBYSxLQUFLLFlBQVksTUFBTSxVQUFVLFlBQVksUUFBUSxhQUFhLFNBQVMsWUFBWSxTQUFTLFFBQVEsZ0JBQWdCLGNBQWMsYUFBYSxRQUFRLE1BQU0sV0FBVyxnQkFBZ0IsWUFBWSxTQUFTLGNBQWMsWUFBWSxTQUFTLFFBQVEsU0FBUyxXQUFXLFNBQVMsY0FBYyxZQUFZLFNBQVMsU0FBUyxjQUFjLFlBQVksU0FBUyxTQUFTLFNBQVMsY0FBYyxZQUFZLFNBQVMsU0FBUyxTQUFTLFNBQVMsY0FBYyxZQUFZ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QUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxRQUFRQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxVQUFVQyxHQUFHLFVBQVVDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsUUFBUUMsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsVUFBVUMsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxHQUFHLEtBQUtDLEdBQUcsS0FBS0MsR0FBRyxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxhQUFhQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxNQUFNQyxHQUFHLENBQUMzRyxFQUFFLEVBQUV2cUIsRUFBRSxFQUFFRyxFQUFFLEVBQUVDLEVBQUUsRUFBRUUsRUFBRSxFQUFFc0csRUFBRSxFQUFFRSxFQUFFLEVBQUU4QyxFQUFFLEVBQUVVLEVBQUUsRUFBRXlCLEVBQUUsRUFBRUksR0FBRyxFQUFFMEUsR0FBRyxFQUFFOEIsR0FBRyxFQUFFNlgsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxHQUFHQyxHQUFHLEVBQUVDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsR0FBR0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsR0FBR0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsR0FBR0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxHQUFHQyxHQUFHLEdBQUdDLEdBQUcsR0FBR0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEdBQUdDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEdBQUdDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsSUFBSSxHQUFHRSxHQUFHLENBQUNDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLE1BQU1DLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxNQUFNLFFBQVFDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxNQUFNLFFBQVFDLE1BQU0sUUFBUUMsTUFBTSxRQUFRQyxLQUFLLFFBQVFDLEtBQUssTUFBTUMsS0FBSyxRQUFRQyxNQUFNLFFBQVFDLEtBQUssUUFBUUMsTUFBTSxRQUFRQyxLQUFLLE1BQU1DLE1BQU0sUUFBUUMsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxVQUFVQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLFVBQVVDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLFFBQVFDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLFFBQVFDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLFFBQVFDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLE1BQU1DLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssUUFBUUMsTUFBTSxRQUFRQyxLQUFLLFFBQVFDLEtBQUssU0FBU0MsTUFBTSxRQUFRQyxLQUFLLFFBQVFDLEtBQUssUUFBUUMsTUFBTSxRQUFRQyxLQUFLLFFBQVFDLE1BQU0sUUFBUUMsTUFBTSxRQUFRQyxLQUFLLFFBQVFDLE1BQU0sUUFBUUMsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLE1BQU0sUUFBUUMsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssTUFBTUMsS0FBSyxLQUFLQyxLQUFLLFFBQVFDLEtBQUssUUFBUUMsS0FBSyxLQUFLQyxLQUFLLFFBQVFDLEtBQUssUUFBUUMsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLFFBQVFDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLFFBQVFDLEtBQUssUUFBUUMsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssVUFBVUMsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLFFBQVFDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxNQUFNQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxNQUFNQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxNQUFNQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssTUFBTUMsS0FBSyxLQUFLQyxLQUFLLE1BQU1DLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssUUFBUUMsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssTUFBTUMsS0FBSyxTQUFTQyxLQUFLLE1BQU1DLEtBQUssUUFBUUMsS0FBSyxLQUFLQyxLQUFLLFFBQVFDLEtBQUssTUFBTUMsS0FBSyxTQUFTQyxLQUFLLE1BQU1DLEtBQUssS0FBS0MsS0FBSyxhQUFhQyxLQUFLLEtBQUtDLEtBQUssYUFBYUMsS0FBSyxVQUFVQyxLQUFLLE1BQU1DLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsTUFBTSxRQUFRQyxNQUFNLFFBQVFDLE1BQU0sUUFBUUMsS0FBSyxRQUFRQyxLQUFLLFFBQVFDLEtBQUssUUFBUUMsTUFBTSxRQUFRQyxNQUFNLFFBQVFDLEtBQUssUUFBUUMsTUFBTSxRQUFRQyxLQUFLLFFBQVFDLE1BQU0sUUFBUUMsS0FBSyxRQUFRQyxNQUFNLFFBQVFDLE1BQU0sUUFBUUMsTUFBTSxRQUFRQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsTUFBTSxRQUFRQyxNQUFNLFFBQVFDLEtBQUssUUFBUUMsS0FBSyxRQUFRQyxLQUFLLEtBQUtDLEtBQUssTUFBTUMsS0FBSyxLQUFLQyxLQUFLLE1BQU1DLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUssS0FBS0MsS0FBSyxLQUFLQyxLQUFLLEtBQUtDLEtBQUss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QUssQ0FBQ3d0QixNQUFNLElBQUl4dEIsSUFBSSxLQUFLLENBQUN3dEIsTUFBTSxJQUFJeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxPQUFPeHRCLElBQUksUUFBUSxDQUFDd3RCLE1BQU0sT0FBT3h0QixJQUFJLFFBQVEsQ0FBQ3d0QixNQUFNLFFBQVF4dEIsSUFBSSxTQUFTLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sT0FBT3h0QixJQUFJLFFBQVEsQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxPQUFPeHRCLElBQUksUUFBUSxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE9BQU94dEIsSUFBSSxRQUFRLENBQUN3dEIsTUFBTSxLQUFLeHRCLElBQUksTUFBTSxDQUFDd3RCLE1BQU0sS0FBS3h0QixJQUFJLE1BQU0sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxNQUFNLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLE1BQU14dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxDQUFDd3RCLE1BQU0sTUFBTXh0QixJQUFJLE9BQU8sQ0FBQ3d0QixNQUFNLEtBQUt4dEIsSUFBSSxPQUFPLENBQUN3dEIsTUFBTSxNQUFNeHRCLElBQUksT0FBTyxD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QUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxFQUFPMmdELEdBQUdPLFVBQUssRUFBTyxHQUFHUCxHQUFHTyxVQUFLLEVBQU8sR0FBR1AsR0FBR08sVUFBSyxFQUFPLEdBQUdQLEdBQUdPLFVBQUssRUFBTyxHQUFHUCxHQUFHTyxVQUFLLEVBQU8sR0FBR1AsR0FBR08sVUFBSyxFQUFPLEdBQUdQLEdBQUdPLFVBQUssRUFBTyxHQUFHUCxHQUFHTyxVQUFLLEVBQU8sR0FBR04sR0FBR00sVUFBSyxFQUFPLEdBQUdOLEdBQUdNLFVBQUssRUFBTyxHQUFHTixHQUFHTSxVQUFLLEVBQU8sR0FBR04sR0FBR00sVUFBSyxFQUFPLEdBQUdOLEdBQUdNLFVBQUssRUFBTyxHQUFHTixHQUFHTSxVQUFLLEVBQU8sR0FBR04sR0FBR00sVUFBSyxFQUFPLEdBQUdOLEdBQUdNLFVBQUssRUFBTyxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHTCxHQUFHSyxVQUFLLEVBQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUlHLEdBQUc3bUQsTUFBTWtZLE1BQU0sU0FBUzFPLEdBQUcsT0FBT0EsRUFBRTFJLE1BQU0sd0RBQXdELElBQUksU0FBU2dtRCxHQUFHdDlDLElBQUlBLEVBQUVBLEdBQUcsSUFBSXVFLFFBQVE0dUMsR0FBR256QyxFQUFFZzBCLFdBQVcsNERBQTREbWYsR0FBR256QyxFQUFFdTlDLFVBQVUsMkRBQTJEcEssR0FBR256QyxFQUFFd3ZCLFdBQVcsNERBQTREMmpCLEdBQUduekMsRUFBRTgxQixTQUFTLDBEQUEwRHFkLEdBQUduekMsRUFBRSsxQixVQUFVLDJEQUEyRG9kLEdBQUduekMsRUFBRSsxQixVQUFVLEVBQUUsNkNBQTZDcmpDLEtBQUt5SixNQUFNLENBQUNrMkMsV0FBVyxDQUFDRixHQUFHbnlDLEVBQUVnMEIsWUFBWSxLQUFLdWUsY0FBYyxDQUFDSixHQUFHbnlDLEVBQUV1OUMsV0FBVyxLQUFLeHBCLFNBQVMsQ0FBQ29lLEdBQUdueUMsRUFBRSt6QixVQUFVL3pCLEVBQUVnMEIsV0FBVyxJQUFJaDBCLEVBQUV1OUMsV0FBV2hwQixlQUFlLENBQUM0ZCxHQUFHbnlDLEVBQUV1MEIsaUJBQWlCdjBCLEVBQUVnMEIsV0FBV2gwQixFQUFFdTlDLFdBQVdsbUQsUUFBUSxNQUFNLEtBQUttbUQsU0FBUyxDQUFDckwsR0FBR255QyxFQUFFdzlDLFVBQVUsS0FBS0MsWUFBWSxDQUFDdEwsR0FBR255QyxFQUFFeTlDLGFBQWEsS0FBS0MsYUFBYSxDQUFDdkwsR0FBR255QyxFQUFFMDlDLGNBQWMsS0FBS0MsZ0JBQWdCLENBQUN4TCxHQUFHbnlDLEVBQUUyOUMsaUJBQWlCLEtBQUtDLFFBQVEsQ0FBQ3pMLEdBQUdueUMsRUFBRTQ5QyxTQUFTLEtBQUtDLFdBQVcsQ0FBQzFMLEdBQUdueUMsRUFBRTY5QyxZQUFZLEtBQUtueEIsUUFBUSxDQUFDeWxCLEdBQUdueUMsRUFBRTBzQixTQUFTLGVBQWUxcEIsWUFBWSxDQUFDbXZDLEdBQUdueUMsRUFBRWdELGFBQWEsS0FBSzg2QyxVQUFVLENBQUMzTCxHQUFHbnlDLEVBQUU4OUMsV0FBVyxLQUFLQyxVQUFVLENBQUM1TCxHQUFHbnlDLEVBQUUrOUMsV0FBVyxNQUFNcnJELEtBQUs4OEIsV0FBV3h2QixFQUFFd3ZCLFlBQVksSUFBSTk4QixLQUFLb2pDLFNBQVM5MUIsRUFBRTgxQixTQUFTcGpDLEtBQUtxakMsVUFBVS8xQixFQUFFKzFCLFVBQVVyakMsS0FBS2tqQyxpQkFBaUI1MUIsRUFBRTQxQixpQkFBaUJsakMsS0FBS3kvQixPQUFPLENBQUM0ZixJQUFJLENBQUN4RixjQUFjdnNDLEVBQUVnK0MsYUFBYXRyRCxLQUFLdXJELGdCQUFnQkMsT0FBTzFSLGFBQWF4c0MsRUFBRW0rQyxZQUFZenJELEtBQUswckQsZUFBZUYsT0FBT3ZRLFlBQVkzdEMsRUFBRTJ0QyxhQUFhajdDLEtBQUsyckQsa0JBQWtCQyxXQUFXNXJELEtBQUs2ckQsV0FBVSxFQUFHN3JELEtBQUs2eUIsT0FBTyxJQUFJNEssR0FBR0MsU0FBUzE5QixLQUFLc04sRUFBRXVsQixRQUFRLElBQUk3eUIsS0FBS3U3QixTQUFTLElBQUlMLEdBQUdsN0IsTUFBTUEsS0FBS2lULFNBQVMsSUFBSW10QyxHQUFHcGdELE1BQU1BLEtBQUs4ckQsYUFBYSxJQUFJekwsR0FBR3JnRCxNQUFNQSxLQUFLeS9CLE9BQU96L0IsS0FBS3kvQixRQUFRLEdBQUdoM0IsT0FBT0MsZUFBZTFJLEtBQUssVUFBVSxDQUFDNkksSUFBSSxXQUFXLE9BQU83SSxLQUFLK3JELFNBQVMvckQsS0FBSytyRCxTQUFTLGFBQWEvckQsS0FBS2dzRCxlQUFlaHNELEtBQUsrckQsU0FBUyxJQUFJekgsR0FBR3RrRCxXQUFNLEtBQStaLFNBQVNpc0QsR0FBRzMrQyxFQUFFb04sRUFBRXRWLEVBQUU1RCxHQUFHLElBQUl1WSxFQUFFLEdBQUdTLEVBQUUsSUFBSTROLEdBQUcyUixPQUFPenNCLEVBQUVvTixHQUFHWCxFQUFFL1AsS0FBS3hJLEVBQUVnWixFQUFFNmEsZ0JBQWdCLEdBQUc3YSxFQUFFeWIsS0FBSyxTQUFTLEdBQUdsYyxFQUFFbXlDLFlBQVksR0FBRyxJQUFJLElBQUl0L0MsRUFBRSxFQUFFQSxFQUFFeEgsRUFBRXhELFNBQVNnTCxFQUFFbU4sRUFBRW15QyxZQUFZOW1ELEVBQUV3SCxHQUFHa2hCLEtBQUt0VCxFQUFFb2IsYUFBYSxPQUFPN2IsRUFBRTZ3QyxHQUFHbnFELFVBQVU2K0MsUUFBUSxTQUFTaHlDLEdBQUcsT0FBTyxPQUFPdE4sS0FBS3U3QixTQUFTSSxpQkFBaUJydUIsSUFBSXM5QyxHQUFHbnFELFVBQVVrN0IsaUJBQWlCLFNBQVNydUIsR0FBRyxPQUFPdE4sS0FBS3U3QixTQUFTSSxpQkFBaUJydUIsSUFBSXM5QyxHQUFHbnFELFVBQVUwckQsWUFBWSxTQUFTNytDLEdBQUcsSUFBSW9OLEVBQUUxYSxLQUFLMjdCLGlCQUFpQnJ1QixHQUF3QixPQUFuQnROLEtBQUs2eUIsT0FBT2hxQixJQUFJNlIsSUFBZTFhLEtBQUs2eUIsT0FBT2hxQixJQUFJLElBQUkraEQsR0FBR25xRCxVQUFVMnJELGVBQWUsU0FBUzkrQyxFQUFFb04sR0FBR0EsRUFBRUEsR0FBRzFhLEtBQUtxc0QscUJBQXFCLElBQUksSUFBSWpuRCxFQUFFdWxELEdBQUdyOUMsR0FBRzlMLEVBQUUsR0FBR3VZLEVBQUUsRUFBRUEsRUFBRTNVLEVBQUV4RCxPQUFPbVksR0FBRyxFQUFFLENBQUMsSUFBSVMsRUFBRXBWLEVBQUUyVSxHQUFHdlksRUFBRXlCLEtBQUtqRCxLQUFLMjdCLGlCQUFpQm5oQixJQUFJLElBQUk1TixFQUFFcEwsRUFBRUksT0FBTyxHQUFHOFksRUFBRStqQyxTQUFTLENBQUMsSUFBSWhsQyxFQUFFaUIsRUFBRTFJLFFBQVFoUyxLQUFLOHJELGFBQWEzSix1QkFBdUJoekMsRUFBRSxHQUFHdUwsRUFBRStqQyxTQUFTNk4sT0FBT245QyxFQUFFQSxFQUFFeUksT0FBTzVYLEtBQUs4ckQsYUFBYS9ILFdBQVcsT0FBT3RxQyxFQUFFaUIsRUFBRXdmLFlBQVl4ZixFQUFFK2pDLFNBQVM4TixPQUFPcDlDLEVBQUVBLEVBQUV5SSxPQUFPNVgsS0FBSzhyRCxhQUFhL0gsV0FBVyxPQUFPdHFDLEVBQUVpQixFQUFFd2YsWUFBWSxJQUFJLElBQUl6ZixFQUFFLEVBQUVBLEVBQUU3TixFQUFFNk4sR0FBRyxFQUFFLElBQUksSUFBSWQsRUFBRSxFQUFFQSxFQUFFeEssRUFBRXZOLE9BQU8rWCxJQUFJLENBQUMsSUFBSSxJQUFJcFYsRUFBRTRLLEVBQUV3SyxHQUFHa0MsRUFBRXRYLEVBQUVpL0MsSUFBSTVwQyxFQUFFaUMsRUFBRWphLE9BQU9TLEVBQUUsRUFBRUEsRUFBRXVYLEdBQUdpQyxFQUFFeFosS0FBS2IsRUFBRWlaLEVBQUVwWSxJQUFJQSxJQUFJQSxJQUFJdVgsSUFBSXBZLEVBQUVtQyxPQUFPOFcsRUFBRWIsRUFBRXJWLEVBQUVrL0MsSUFBSTcyQyxFQUFFQSxFQUFFZ04sRUFBRSxJQUFJLElBQUksSUFBSUYsRUFBRSxJQUFJNVYsTUFBTThJLEdBQUd4RixFQUFFcEgsS0FBSzZ5QixPQUFPaHFCLElBQUksR0FBRzZULEVBQUUsRUFBRUEsRUFBRTlQLEVBQUU4UCxHQUFHLEVBQUVoRCxFQUFFZ0QsR0FBRzFjLEtBQUs2eUIsT0FBT2hxQixJQUFJckgsRUFBRWtiLEtBQUt0VixFQUFFLE9BQU9zUyxHQUFHa3hDLEdBQUducUQsVUFBVW03QixpQkFBaUIsU0FBU3R1QixHQUFHLE9BQU90TixLQUFLd3NELFdBQVc1d0IsaUJBQWlCdHVCLElBQUlzOUMsR0FBR25xRCxVQUFVZ3NELFlBQVksU0FBU24vQyxHQUFHLElBQUlvTixFQUFFMWEsS0FBSzQ3QixpQkFBaUJ0dUIsR0FBd0IsT0FBbkJ0TixLQUFLNnlCLE9BQU9ocUIsSUFBSTZSLElBQWUxYSxLQUFLNnlCLE9BQU9ocUIsSUFBSSxJQUFJK2hELEdBQUducUQsVUFBVW83QixpQkFBaUIsU0FBU3Z1QixHQUFHLE9BQU90TixLQUFLd3NELFdBQVczd0IsaUJBQWlCNzdCLEtBQUt3c0QsV0FBVzN3QixpQkFBaUJ2dUIsR0FBRyxJQUFJczlDLEdBQUducUQsVUFBVXFpRCxnQkFBZ0IsU0FBU3gxQyxFQUFFb04sR0FBR3BOLEVBQUVBLEVBQUU3SSxPQUFPNkksRUFBRW9OLEVBQUVBLEVBQUVqVyxPQUFPaVcsRUFBRSxJQUFJdFYsRUFBRXBGLEtBQUtpVCxTQUFTMnZDLHFCQUFxQixPQUFPeDlDLEVBQUVwRixLQUFLaVQsU0FBUzZ2QyxnQkFBZ0IxOUMsRUFBRWtJLEVBQUVvTixHQUFHMWEsS0FBSzBzRCxhQUFhcC9DLEVBQUUsSUFBSW9OLElBQUksR0FBR2t3QyxHQUFHbnFELFVBQVU0ckQscUJBQXFCLENBQUNNLFNBQVEsRUFBR2xPLFNBQVMsQ0FBQzZOLE1BQUssRUFBR0MsTUFBSyxJQUFLM0IsR0FBR25xRCxVQUFVbXNELGFBQWEsU0FBU3QvQyxFQUFFb04sRUFBRXRWLEVBQUU1RCxFQUFFdVksRUFBRVMsR0FBR0UsT0FBRSxJQUFTQSxFQUFFQSxFQUFFLEVBQUV0VixPQUFFLElBQVNBLEVBQUVBLEVBQUUsRUFBRTVELE9BQUUsSUFBU0EsRUFBRUEsRUFBRSxHQUFHdVksRUFBRUEsR0FBRy9aLEtBQUtxc0QscUJBQXFCLElBQUl6L0MsRUFBRTZNLEVBQUUsRUFBRXpaLEtBQUs4OEIsV0FBV3Q3QixFQUFFMk4sRUFBRW5QLEtBQUtvc0QsZUFBZTkrQyxFQUFFeU0sR0FBRyxHQUFHQSxFQUFFNHlDLFFBQVEsQ0FBQyxJQUFJbHlDLEVBQUVWLEVBQUUvSCxRQUFRaFMsS0FBS2lULFNBQVNrdkMsdUJBQXVCdjFDLEVBQUU1TSxLQUFLaVQsU0FBUzR2QyxpQkFBaUJwb0MsRUFBRVYsRUFBRW1nQixVQUFVLElBQUksSUFBSXZnQixFQUFFLEVBQUVBLEVBQUV4SyxFQUFFdk4sT0FBTytYLEdBQUcsRUFBRSxDQUFDLElBQUlwVixFQUFFNEssRUFBRXdLLEdBQU1hLEVBQUVsUyxLQUFLdEksS0FBS3VFLEVBQUVtVyxFQUFFdFYsRUFBRTVELEVBQUV1WSxHQUFHeFYsRUFBRWc0QixlQUFlN2hCLEdBQUduVyxFQUFFZzRCLGFBQWE5aUIsR0FBR00sRUFBRTR5QyxTQUFTaHpDLEVBQUV4SyxFQUFFdk4sT0FBTyxJQUFFOFksSUFBSTlOLEVBQUU1TSxLQUFLaVQsU0FBUzZ2QyxnQkFBZ0JsMkMsRUFBRXJJLEVBQUVFLE1BQU0wSyxFQUFFd0ssRUFBRSxHQUFHbFYsT0FBT3pFLEtBQUs4aUQsZ0JBQWdCditDLEVBQUU0SyxFQUFFd0ssRUFBRSxLQUFLRixHQUFFTSxFQUFFOHlDLGNBQWNueUMsR0FBR1gsRUFBRTh5QyxjQUFjcnJELEVBQUV1WSxFQUFFK3lDLFdBQVdweUMsR0FBR1gsRUFBRSt5QyxTQUFTLElBQUl0ckQsR0FBRyxPQUFPa1osR0FBR2t3QyxHQUFHbnFELFVBQVVnOEIsUUFBUSxTQUFTbnZCLEVBQUVvTixFQUFFdFYsRUFBRTVELEVBQUVnWixHQUFHLElBQUk1TixFQUFFLElBQUl1UCxFQUFFLE9BQU9uYyxLQUFLNHNELGFBQWF0L0MsRUFBRW9OLEVBQUV0VixFQUFFNUQsRUFBRWdaLEdBQUUsU0FBU2xOLEVBQUVvTixFQUFFdFYsRUFBRTVELEdBQUcsSUFBSXVZLEVBQUV6TSxFQUFFbXZCLFFBQVEvaEIsRUFBRXRWLEVBQUU1RCxFQUFFZ1osRUFBRXhhLE1BQU00TSxFQUFFcEUsT0FBT3VSLE1BQUtuTixHQUFHZytDLEdBQUducUQsVUFBVXNzRCxTQUFTLFNBQVN6L0MsRUFBRW9OLEVBQUV0VixFQUFFNUQsRUFBRWdaLEdBQUcsSUFBSTVOLEVBQUUsR0FBRyxPQUFPNU0sS0FBSzRzRCxhQUFhdC9DLEVBQUVvTixFQUFFdFYsRUFBRTVELEVBQUVnWixHQUFFLFNBQVNsTixFQUFFb04sRUFBRXRWLEVBQUU1RCxHQUFHLElBQUl1WSxFQUFFek0sRUFBRW12QixRQUFRL2hCLEVBQUV0VixFQUFFNUQsRUFBRWdaLEVBQUV4YSxNQUFNNE0sRUFBRTNKLEtBQUs4VyxNQUFLbk4sR0FBR2crQyxHQUFHbnFELFVBQVV1c0QsZ0JBQWdCLFNBQVMxL0MsRUFBRW9OLEVBQUV0VixHQUFHLE9BQU9wRixLQUFLNHNELGFBQWF0L0MsRUFBRSxFQUFFLEVBQUVvTixFQUFFdFYsR0FBRSxnQkFBZXdsRCxHQUFHbnFELFVBQVVpdkIsS0FBSyxTQUFTcGlCLEVBQUVvTixFQUFFdFYsRUFBRTVELEVBQUV1WSxFQUFFUyxHQUFHeGEsS0FBS3k4QixRQUFRL2hCLEVBQUV0VixFQUFFNUQsRUFBRXVZLEVBQUVTLEdBQUdrVixLQUFLcGlCLElBQUlzOUMsR0FBR25xRCxVQUFVNDhCLFdBQVcsU0FBU3RqQixFQUFFek0sRUFBRW9OLEVBQUV0VixFQUFFNUQsRUFBRWdaLEdBQUd4YSxLQUFLNHNELGFBQWF0L0MsRUFBRW9OLEVBQUV0VixFQUFFNUQsRUFBRWdaLEdBQUUsU0FBU2xOLEVBQUVvTixFQUFFdFYsRUFBRTVELEdBQUc4TCxFQUFFK3ZCLFdBQVd0akIsRUFBRVcsRUFBRXRWLEVBQUU1RCxPQUFNb3BELEdBQUducUQsVUFBVSs4QixZQUFZLFNBQVN6akIsRUFBRXpNLEVBQUVvTixFQUFFdFYsRUFBRTVELEVBQUVnWixHQUFHeGEsS0FBSzRzRCxhQUFhdC9DLEVBQUVvTixFQUFFdFYsRUFBRTVELEVBQUVnWixHQUFFLFNBQVNsTixFQUFFb04sRUFBRXRWLEVBQUU1RCxHQUFHOEwsRUFBRWt3QixZQUFZempCLEVBQUVXLEVBQUV0VixFQUFFNUQsT0FBTW9wRCxHQUFHbnFELFVBQVU4K0MsZUFBZSxTQUFTanlDLEdBQUcsSUFBSW9OLEVBQUUxYSxLQUFLeUosTUFBTTZELEdBQUcsR0FBR29OLEVBQUUsT0FBT0EsRUFBRStrQyxJQUFJbUwsR0FBR25xRCxVQUFVd3NELFNBQVMsV0FBVyxJQUFJN25ELEVBQUVwRixLQUFLLFNBQVNzTixFQUFFQSxHQUFHLElBQUlvTixFQUFFdFYsRUFBRW02QyxlQUFlanlDLEdBQUdvTixHQUFHQSxFQUFFMkQsT0FBT3pjLE9BQU8wTCxFQUFFLGNBQWNBLEVBQUUsY0FBY0EsRUFBRSxnQkFBZ0JBLEVBQUUsYUFBYUEsRUFBRSxXQUFXdE4sS0FBSzg4QixZQUFZOHRCLEdBQUducUQsVUFBVXlzRCxTQUFTLFdBQVcsT0FBT2hPLEdBQWVsL0MsT0FBTzRxRCxHQUFHbnFELFVBQVUwc0QsU0FBUyxXQUFXLE9BQU9obkQsUUFBUVcsS0FBSyxnRUFBZ0U5RyxLQUFLb3RELGlCQUFpQnhDLEdBQUducUQsVUFBVTJzRCxjQUFjLFdBQVcsSUFBSSxJQUFJOS9DLEVBQUV0TixLQUFLa3RELFdBQVc1ckQsU0FBU29aLEVBQUUsSUFBSXBZLFlBQVlnTCxFQUFFMUwsUUFBUXdELEVBQUUsSUFBSTFELFdBQVdnWixHQUFHbFosRUFBRSxFQUFFQSxFQUFFOEwsRUFBRTFMLE9BQU9KLElBQUk0RCxFQUFFNUQsR0FBRzhMLEVBQUU5TCxHQUFHLE9BQU9rWixHQUFHa3dDLEdBQUducUQsVUFBVW9sQixTQUFTLFNBQVNuTCxHQUFHLElBQUlwTixFQUFFdE4sS0FBS3UvQyxlQUFlLGNBQWNuNkMsRUFBRXBGLEtBQUt1L0MsZUFBZSxpQkFBaUI3a0MsRUFBRUEsR0FBR3BOLEVBQUUzSSxRQUFRLE1BQU0sSUFBSSxJQUFJUyxFQUFFLE9BQU8sSUFBSTJVLEVBQUUvWixLQUFLb3RELGdCQUFnQixHQUFHLG9CQUFvQjNuRCxPQUFPQSxPQUFPNG5ELGtCQUFrQjVuRCxPQUFPNG5ELG1CQUFtQjVuRCxPQUFPNm5ELHdCQUF3QjduRCxPQUFPNG5ELGtCQUFrQjVuRCxPQUFPOG5ELFVBQVV4ekMsRUFBRXpDLFlBQVcsU0FBU2hLLEdBQUdBLEVBQUVrZ0QsS0FBS0MsUUFBUS95QyxFQUFFLENBQUN0RyxRQUFPLElBQUksU0FBUzVTLEdBQUdBLEVBQUVrc0QsY0FBYSxTQUFTcGdELEdBQUcsSUFBSW9OLEVBQUUsSUFBSW1rQixTQUFTOWtCLEdBQUczVSxFQUFFLElBQUlnVCxLQUFLLENBQUNzQyxHQUFHLENBQUNoVixLQUFLLGtCQUFrQjRILEVBQUVvRCxNQUFNdEwsR0FBR2tJLEVBQUV6SyxpQkFBaUIsWUFBVyxXQUFXeUksU0FBU3NhLEtBQUtwa0IsRUFBRW1zRCxXQUFTLFlBQVMsU0FBU3JnRCxHQUFHLE1BQU0sSUFBSWhFLE1BQU1nRSxFQUFFdEQsS0FBSyxLQUFLc0QsRUFBRS9GLGdCQUFlLENBQUMsSUFBSS9GLEVBQUUrckIsRUFBRyxNQUFNL1MsRUFBRSxTQUFTbE4sR0FBRyxJQUFJLElBQUlvTixFQUFFLElBQUk4UyxFQUFHbGdCLEVBQUVnSyxZQUFZbFMsRUFBRSxJQUFJMUQsV0FBVzRMLEdBQUc5TCxFQUFFLEVBQUVBLEVBQUVrWixFQUFFOVksU0FBU0osRUFBRWtaLEVBQUVsWixHQUFHNEQsRUFBRTVELEdBQUcsT0FBT2taLEVBQW5HLENBQXNHWCxHQUFHdlksRUFBRW9zRCxjQUFjbHpDLEVBQUVGLEtBQUtvd0MsR0FBR25xRCxVQUFVa3JELGtCQUFrQixDQUFDa0MsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEdBQUdDLEtBQUssR0FBR3RDLFFBQVEsR0FBR3VDLGtCQUFrQixJQUFJQyxJQUFJLElBQUlDLFFBQVEsS0FBS3pELEdBQUducUQsVUFBVWlyRCxlQUFlLENBQUM0QyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUVDLFVBQVUsRUFBRUMsZUFBZSxFQUFFakQsT0FBTyxFQUFFa0QsY0FBYyxFQUFFQyxTQUFTLEVBQUVDLGVBQWUsRUFBRUMsZUFBZSxHQUFHakUsR0FBR25xRCxVQUFVOHFELGdCQUFnQixDQUFDdUQsS0FBSyxJQUFJQyxZQUFZLElBQUlDLE1BQU0sSUFBSUMsT0FBTyxJQUFJekQsT0FBTyxJQUFJMEQsVUFBVSxJQUFJaEIsS0FBSyxJQUFJaUIsV0FBVyxJQUFJQyxNQUFNLEtBQUssSUFBSUMsR0FBbzZCLFNBQVMvaEQsRUFBRW9OLEVBQUV0VixHQUFHLElBQUk1RCxFQUFFLElBQUk0bUIsR0FBRzJSLE9BQU96c0IsRUFBRW9OLEdBQUdYLEVBQUV2WSxFQUFFbTBCLGFBQWE3VyxFQUFFc1IsU0FBUyxRQUFRclcsRUFBRSxtQ0FBbUMsSUFBSVMsRUFBRWhaLEVBQUUrekIsZ0JBQWdCL3pCLEVBQUV5MEIsS0FBSyxTQUFTLEdBQUcsSUFBSSxJQUFJcnBCLEVBQUU2TSxFQUFFdEssRUFBRXNMLEVBQUVkLEVBQUVwVixFQUFFL0MsRUFBRTZ6QixjQUFjeFosRUFBRXJhLEVBQUU2ekIsY0FBY3piLEVBQUVwWSxFQUFFNnpCLGNBQWNoekIsRUFBRWIsRUFBRTZ6QixjQUFjM2IsRUFBRSxHQUFHdFMsRUFBRSxFQUFFQSxFQUFFN0MsRUFBRTZDLElBQUlzUyxFQUFFelcsTUFBTTJKLEVBQUVVLEVBQUVtTSxFQUFFaUIsRUFBRUYsRUFBRXBULEVBQUV5VSxFQUFFMU0sRUFBRS9KLEVBQUV1VSxFQUFFYyxPQUFFLEVBQU9BLEVBQUUsR0FBR2QsRUFBRSxJQUFJeU8sR0FBRzJSLE9BQU9udEIsRUFBRTZNLEdBQUdnQixFQUFFcVQsSUFBSW5VLEVBQUVtYyxXQUFXcmIsRUFBRTYwQyxTQUFTMzFDLEVBQUVpYyxhQUFhbmIsRUFBRTgwQyxhQUFhNTFDLEVBQUVpYyxhQUFhbmIsRUFBRSswQyxTQUFTNzFDLEVBQUVpYyxhQUFhamMsRUFBRXNjLEtBQUssU0FBUyxHQUFHeGIsRUFBRXpRLEtBQUttRixFQUFFd0ssRUFBRTBiLGdCQUFnQixHQUFHNWEsSUFBSSxJQUFJLElBQUlpQyxFQUFFLEdBQUdDLEVBQUVqQyxFQUFFRixFQUFFalcsRUFBRXNYLEVBQUVlLEVBQUUsRUFBRUEsRUFBRWhELEVBQUVnRCxJQUFJRixFQUFFelosS0FBS2dwRCxHQUFHMytDLEVBQUVxUCxFQUFFQyxFQUFFdmEsRUFBRXFYLEVBQUV0VSxJQUFJLE1BQU0sQ0FBQ3FxRCxLQUFLLzFDLEVBQUVnMkMsVUFBVWh6QyxJQUFLaXpDLEdBQUcsSUFBSTdyRCxNQUFNLElBQUk2ckQsR0FBRyxHQUFHLFdBQVcsSUFBSXJpRCxFQUFFdE4sS0FBSzBkLE9BQU8xZCxLQUFLKzBCLGVBQWVyYSxFQUFFMWEsS0FBS3ExQixjQUFjLE9BQU8sSUFBSTNhLEVBQUUsQ0FBQ3FvQyxVQUFVLEVBQUVycUIsU0FBUzE0QixLQUFLczNCLGFBQWFwUCxHQUFHd1EsVUFBVS9rQixNQUFNM1QsS0FBSzQyQixvQkFBb0IsSUFBSWxjLEVBQUUsQ0FBQ3FvQyxVQUFVLEVBQUVycUIsU0FBUzE0QixLQUFLczNCLGFBQWFwUCxHQUFHd1EsVUFBVWszQixPQUFPNXZELEtBQUtxM0IsNkJBQTZCdlksRUFBRXVSLFFBQU8sRUFBRyxLQUFLL2lCLEVBQUVsRSxTQUFTLElBQUksZ0RBQWdEdW1ELEdBQUcsR0FBRyxXQUFXLElBQUlyaUQsRUFBRXROLEtBQUswZCxPQUFPMWQsS0FBSyswQixlQUFlcmEsRUFBRTFhLEtBQUtxMUIsY0FBY3ZXLEVBQUV1UixPQUFPLElBQUkzVixHQUFHLElBQUlBLEVBQUUsS0FBS3BOLEVBQUVsRSxTQUFTLElBQUksK0NBQStDLElBQUloRSxFQUFFcEYsS0FBS3MzQixhQUFhcFAsR0FBR3dRLFVBQVVsM0IsRUFBRXhCLEtBQUtxMUIsY0FBY3RiLEVBQUUvWixLQUFLcTFCLGNBQWMsR0FBRyxJQUFJM2EsRUFBRSxNQUFNLENBQUNxb0MsVUFBVXJvQyxFQUFFZ2UsU0FBU3R6QixFQUFFeXFELGFBQWFydUQsRUFBRXN1RCxhQUFhLzFDLEVBQUVpcEMsU0FBU2hqRCxLQUFLdTJCLFVBQVVyTyxHQUFHaVEsUUFBUWpRLEdBQUc4UCxNQUFLLFdBQVcsTUFBTSxDQUFDaXJCLFlBQVlqakQsS0FBS3ExQixjQUFjNnRCLE9BQU9sakQsS0FBSzQyQixpQkFBaUJwMUIsR0FBR3V1RCxPQUFPL3ZELEtBQUs0MkIsaUJBQWlCN2MsVUFBUyxHQUFHLElBQUlXLEVBQUUsQ0FBQyxJQUFJRixFQUFFeGEsS0FBS3MzQixhQUFhcFAsR0FBR3lRLFVBQVUvckIsRUFBRTVNLEtBQUtzM0IsYUFBYXBQLEdBQUd5USxVQUFVbGYsRUFBRXpaLEtBQUtxMUIsY0FBY2xtQixFQUFFblAsS0FBS3ExQixjQUFjLE1BQU0sQ0FBQzB0QixVQUFVcm9DLEVBQUVnZSxTQUFTdHpCLEVBQUV5cUQsYUFBYXJ1RCxFQUFFc3VELGFBQWEvMUMsRUFBRW9wQyxVQUFVM29DLEVBQUU0b0MsVUFBVXgyQyxFQUFFb2pELFlBQVl2MkMsRUFBRXcyQyxZQUFZOWdELEVBQUVrMEMsYUFBYXJqRCxLQUFLdTJCLFVBQVU5YyxFQUFFeU8sR0FBRzhQLEtBQUs3b0IsR0FBRSxXQUFXLE1BQU0sQ0FBQyt6QyxPQUFPbGpELEtBQUs0MkIsaUJBQWlCcDFCLEdBQUd1dUQsT0FBTy92RCxLQUFLNDJCLGlCQUFpQjdjLFdBQVU0MUMsR0FBRyxHQUFHLFdBQVcsTUFBTSxDQUFDenFELE1BQU0sZ0NBQWdDeXFELEdBQUcsR0FBRyxXQUFXLE1BQU0sQ0FBQ3pxRCxNQUFNLGdDQUFnQ3lxRCxHQUFHLEdBQUcsV0FBVyxNQUFNLENBQUN6cUQsTUFBTSxnQ0FBZ0N5cUQsR0FBRyxHQUFHLFdBQVcsTUFBTSxDQUFDenFELE1BQU0sZ0NBQWdDeXFELEdBQUcsR0FBRyxXQUFXLE1BQU0sQ0FBQ3pxRCxNQUFNLGdDQUFnQ3lxRCxHQUFHLEdBQUcsV0FBVyxNQUFNLENBQUN6cUQsTUFBTSxnQ0FBZ0N5cUQsR0FBRyxHQUFHLFdBQVcsTUFBTSxDQUFDenFELE1BQU0sZ0NBQXVDLElBQUlwQixNQUFNLElBQWpCLElBQXlCb3NELEdBQVUsU0FBUzVpRCxFQUFFb04sR0FBRyxJQUFJdFYsRUFBRSxJQUFJOGlCLEdBQUc1YSxFQUFFb04sRUFBRUEsR0FBRyxHQUFHbFosRUFBRTRELEVBQUU0d0IsYUFBYSxHQUFHLE9BQU9sWCxFQUFFc1IsU0FBUyxJQUFJNXVCLEdBQUcsTUFBTUEsRUFBRSxrQ0FBa0NBLEdBQUcsSUFBSUEsRUFBRSxDQUFDdzRCLFFBQVF4NEIsRUFBRWc5QyxRQUFRcDVDLEVBQUV5ekIsa0JBQWtCNGxCLFNBQVNyNUMsRUFBRTB6QixtQkFBbUI0bEIsUUFBUXQ1QyxFQUFFMnpCLGdCQUFnQjQyQixLQUFLLENBQUMzMUIsUUFBUXg0QixFQUFFZzlDLFFBQVFwNUMsRUFBRXl6QixrQkFBa0I0bEIsU0FBU3I1QyxFQUFFMHpCLG1CQUFtQjRsQixRQUFRdDVDLEVBQUUyekIsZ0JBQWdCNDJCLElBQUloUixXQUFXdjVDLEVBQUU2ekIsK0JBQW1VazNCLEdBQVUsU0FBUzdpRCxFQUFFb04sR0FBRyxJQUFJdFYsRUFBRSxJQUFJZ2pCLEdBQUcyUixPQUFPenNCLEVBQUVvTixHQUFHbFosRUFBRTRELEVBQUVpd0IsY0FBYyxHQUFHLElBQUk3ekIsRUFBRSxPQUFPLFNBQVM4TCxHQUFHLElBQUlvTixFQUFFLEdBQUdwTixFQUFFMm9CLEtBQUssVUFBVSxJQUFJN3dCLEVBQUVrSSxFQUFFK25CLGNBQWN2VyxFQUFFc1IsU0FBUyxJQUFJaHJCLEVBQUUsdUNBQXVDa0ksRUFBRTJvQixLQUFLLFNBQVMsR0FBRyxJQUFJejBCLEVBQUU4TCxFQUFFK25CLGNBQWMvbkIsRUFBRTJvQixLQUFLLFNBQVMsR0FBRyxJQUFJLElBQUlsYyxFQUFFLEVBQUVBLEVBQUV2WSxFQUFFdVksR0FBRyxFQUFFLENBQUMsSUFBSVMsRUFBRWxOLEVBQUUrbkIsY0FBY3pvQixFQUFFVSxFQUFFK25CLGNBQWM1YixFQUFFbk0sRUFBRWtvQixhQUFhOWEsRUFBRUYsRUFBRSxJQUFJNU4sR0FBRzZNLEVBQUUsT0FBT2lCLEVBQW5SLENBQXNSdFYsR0FBRyxHQUFHLElBQUk1RCxFQUFFLE9BQU8sU0FBUzhMLEdBQUcsSUFBSW9OLEVBQUUsR0FBR3BOLEVBQUUyb0IsS0FBSyxVQUFVLEVBQUUzb0IsRUFBRXFvQixjQUFjeHZCLFFBQVFXLEtBQUssOENBQThDd0csRUFBRTJvQixLQUFLLFNBQVMsSUFBSTd3QixFQUFFLElBQUlrSSxFQUFFK25CLGNBQWMsR0FBRy9uQixFQUFFMm9CLEtBQUssVUFBVSxHQUFHN3dCLEVBQUUsQ0FBQyxJQUFJNUQsRUFBRThMLEVBQUUrbkIsY0FBYy9uQixFQUFFMm9CLEtBQUssU0FBUyxHQUFHLElBQUksSUFBSWxjLEVBQUUsRUFBRUEsRUFBRXZZLEVBQUV1WSxHQUFHLEVBQUUsQ0FBQyxJQUFJUyxFQUFFbE4sRUFBRStuQixjQUFjem9CLEVBQUVVLEVBQUUrbkIsY0FBYzViLEVBQUVuTSxFQUFFa29CLGFBQWE5YSxFQUFFRixFQUFFLElBQUk1TixHQUFHNk0sR0FBRyxPQUFPaUIsRUFBcFUsQ0FBdVV0VixHQUFHLE1BQU0sSUFBSWtFLE1BQU0sbUNBQW1DOUgsRUFBRSxPQUFZNHVELEdBQVUsU0FBUzlpRCxFQUFFb04sRUFBRXRWLEVBQUU1RCxHQUFHLElBQUksSUFBSXVZLEVBQUUsSUFBSXFPLEdBQUcyUixPQUFPenNCLEVBQUVvTixHQUFHRixFQUFFaFosRUFBRXVZLEVBQUVzYixZQUFZdGIsRUFBRTRiLFdBQVcvb0IsRUFBRSxHQUFHNk0sRUFBRSxFQUFFQSxFQUFFclUsRUFBRSxFQUFFcVUsR0FBRyxFQUFFLENBQUMsSUFBSXRLLEVBQUVxTCxFQUFFbFMsS0FBS3lSLEdBQUd2WSxJQUFJMk4sR0FBRyxHQUFHdkMsRUFBRTNKLEtBQUtrTSxHQUFHLE9BQU92QyxHQUFJLFNBQVN5akQsR0FBRy9pRCxFQUFFbEksR0FBR21vQixFQUFHLE1BQU0raUMsU0FBU2hqRCxHQUFFLFNBQVNBLEVBQUVvTixHQUFHLEdBQUdwTixFQUFFLE9BQU9sSSxFQUFFa0ksRUFBRS9GLFNBQVNuQyxFQUFFLEtBQUtvN0MsR0FBRzlsQyxPQUFNLFNBQVM2MUMsR0FBR2pqRCxFQUFFb04sR0FBRyxJQUFJdFYsRUFBRSxJQUFJeUwsZUFBZXpMLEVBQUV1SCxLQUFLLE1BQU1XLEdBQUUsR0FBSWxJLEVBQUU4TyxhQUFhLGNBQWM5TyxFQUFFMk8sT0FBTyxXQUFXLE9BQU8zTyxFQUFFb3JELFNBQVM5MUMsRUFBRSxLQUFLdFYsRUFBRW9yRCxVQUFVOTFDLEVBQUUsNkJBQTZCdFYsRUFBRXFyRCxhQUFhcnJELEVBQUUwSixRQUFRLFdBQVc0TCxFQUFFLDZCQUE2QnRWLEVBQUVnSixPQUFPLFNBQVNzaUQsR0FBR3BqRCxFQUFFb04sR0FBRyxJQUFJLElBQUl0VixFQUFFLEdBQUc1RCxFQUFFLEdBQUd1WSxFQUFFLEVBQUVBLEVBQUVXLEVBQUVYLEdBQUcsRUFBRSxDQUFDLElBQUlTLEVBQUU0TixHQUFHdVIsT0FBT3JzQixFQUFFOUwsR0FBR29MLEVBQUV3YixHQUFHcVIsU0FBU25zQixFQUFFOUwsRUFBRSxHQUFHaVksRUFBRTJPLEdBQUdxUixTQUFTbnNCLEVBQUU5TCxFQUFFLEdBQUcyTixFQUFFaVosR0FBR3FSLFNBQVNuc0IsRUFBRTlMLEVBQUUsSUFBSTRELEVBQUVuQyxLQUFLLENBQUM2cUIsSUFBSXRULEVBQUVtMkMsU0FBUy9qRCxFQUFFOFEsT0FBT2pFLEVBQUU3WCxPQUFPdU4sRUFBRXloRCxhQUFZLElBQUtwdkQsR0FBRyxHQUFHLE9BQU80RCxFQUFFLFNBQVN5ckQsR0FBR3ZqRCxFQUFFb04sR0FBRyxHQUFHLFNBQVNBLEVBQUVrMkMsWUFBWSxNQUFNLENBQUN2aUQsS0FBS2YsRUFBRW9RLE9BQU9oRCxFQUFFZ0QsUUFBUSxJQUFJdFksRUFBRSxJQUFJMUQsV0FBVzRMLEVBQUUyTCxPQUFPeUIsRUFBRWdELE9BQU8sRUFBRWhELEVBQUVvMkMsaUJBQWlCLEdBQUd0dkQsRUFBRSxJQUFJRSxXQUFXZ1osRUFBRTlZLFFBQVEsR0FBN3J0SSxTQUFTMEwsRUFBRW9OLEdBQUcsSUFBSXRWLEVBQUU1RCxFQUFFdVksRUFBRSxJQUFJbk4sRUFBRVUsRUFBRW9OLEdBQUcsRUFBRSxDQUFDLE9BQU90VixFQUFFd1gsRUFBRTdDLEdBQUc4QyxFQUFFOUMsRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFdlksRUFBRXVjLEVBQUVoRSxHQUFHLE1BQU0sS0FBSyxFQUFFdlksRUFBRXljLEVBQUVsRSxFQUFFTixFQUFFZ0IsR0FBRyxNQUFNLEtBQUssRUFBRXVELEVBQUVqRSxFQUFFQSxFQUFFbVUsTUFBTW5VLEVBQUVvVSxPQUFPM3NCLEVBQUV5YyxFQUFFbEUsRUFBRUEsRUFBRW1VLE1BQU1uVSxFQUFFb1UsT0FBTyxNQUFNLFFBQVEzc0IsR0FBbG9GLEVBQXNvRixHQUExb0YsSUFBNm9GQSxFQUFNLE1BQU0sSUFBSThILE1BQU0scUJBQXFCbEUsR0FBVTJVLEVBQUVrVSxRQUFRbFUsRUFBRWlVLEtBQUtwc0IsT0FBTyxtQkFBbUJtWSxFQUFFaVUsS0FBS2pxQixNQUFNZ1csRUFBRWlVLEtBQUtqcUIsTUFBTSxFQUFFZ1csRUFBRWtVLFNBQVNsVSxFQUFFaVUsS0FBS2pQLFNBQVMsRUFBRWhGLEVBQUVrVSxTQUFTbFUsRUFBRWlVLEtBQXcyc0lqVSxDQUFFM1UsRUFBRTVELEdBQUdBLEVBQUU4VixhQUFhb0QsRUFBRTlZLE9BQU8sTUFBTSxJQUFJMEgsTUFBTSx3QkFBd0JvUixFQUFFb1QsSUFBSSxzREFBc0QsTUFBTSxDQUFDemYsS0FBSyxJQUFJd3dCLFNBQVNyOUIsRUFBRXlYLE9BQU8sR0FBR3lFLE9BQU8sR0FBRyxTQUFTcXpDLEdBQUd6akQsR0FBRyxJQUFJb04sRUFBRXRWLEVBQUU1RCxFQUFFdVksRUFBRVMsRUFBRTVOLEVBQUU2TSxFQUFFdEssRUFBRXNMLEVBQUVkLEVBQUVwVixFQUFFc1gsRUFBRWpDLEVBQUV2WCxFQUFFcVgsRUFBRSxJQUFJa3hDLEdBQUcsQ0FBQy80QyxPQUFNLElBQUt6SyxFQUFFLElBQUl5M0IsU0FBU3Z4QixFQUFFLEdBQUdvUCxFQUFFLEdBQUdDLEVBQUV5TCxHQUFHdVIsT0FBT3Z5QixFQUFFLEdBQUcsR0FBR3VWLElBQUl4RCxPQUFPQyxhQUFhLEVBQUUsRUFBRSxFQUFFLElBQUksU0FBU3VELEdBQUcsU0FBU0EsRUFBRWpELEVBQUVzeUMsZUFBZSxXQUFXdHZDLEVBQUVnMEMsR0FBR3RwRCxFQUFFNUYsRUFBRTRtQixHQUFHa1IsVUFBVWx5QixFQUFFLFNBQVMsR0FBRyxTQUFTdVYsRUFBRWpELEVBQUVzeUMsZUFBZSxNQUFNdHZDLEVBQUVnMEMsR0FBR3RwRCxFQUFFNUYsRUFBRTRtQixHQUFHa1IsVUFBVWx5QixFQUFFLFFBQVEsQ0FBQyxHQUFHLFNBQVN1VixFQUFFLE1BQU0sSUFBSXJULE1BQU0sa0NBQWtDcVQsR0FBRyxJQUFJQyxFQUFFd0wsR0FBR3VSLE9BQU92eUIsRUFBRSxHQUFHLEdBQUd3VixJQUFJekQsT0FBT0MsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHTSxFQUFFc3lDLGVBQWUsZUFBZSxDQUFDLEdBQUcsU0FBU3B2QyxFQUFFLE1BQU0sSUFBSXRULE1BQU0sK0JBQStCcVQsR0FBR2pELEVBQUVzeUMsZUFBZSxNQUFNdHZDLEVBQUUsU0FBU3BQLEVBQUVvTixHQUFHLElBQUksSUFBSXRWLEVBQUUsR0FBRzVELEVBQUUsR0FBR3VZLEVBQUUsRUFBRUEsRUFBRVcsRUFBRVgsR0FBRyxFQUFFLENBQUMsSUFBcUZVLEVBQWpGRCxFQUFFNE4sR0FBR3VSLE9BQU9yc0IsRUFBRTlMLEdBQUdvTCxFQUFFd2IsR0FBR3FSLFNBQVNuc0IsRUFBRTlMLEVBQUUsR0FBR2lZLEVBQUUyTyxHQUFHcVIsU0FBU25zQixFQUFFOUwsRUFBRSxHQUFHMk4sRUFBRWlaLEdBQUdxUixTQUFTbnNCLEVBQUU5TCxFQUFFLElBQWFpWixFQUFFaEIsRUFBRXRLLEdBQUcsT0FBTy9KLEVBQUVuQyxLQUFLLENBQUM2cUIsSUFBSXRULEVBQUVrRCxPQUFPOVEsRUFBRWdrRCxZQUFZbjJDLEVBQUVxMkMsaUJBQWlCcjNDLEVBQUU3WCxPQUFPdU4sSUFBSTNOLEdBQUcsR0FBRyxPQUFPNEQsRUFBMU8sQ0FBNk9nQyxFQUFFNUYsRUFBRTRtQixHQUFHa1IsVUFBVWx5QixFQUFFLEtBQUssSUFBSSxJQUFJeVYsRUFBRSxFQUFFQSxFQUFFcmIsRUFBRXFiLEdBQUcsRUFBRSxDQUFDLElBQUlDLEVBQUVKLEVBQUVHLEdBQUdtQixPQUFFLEVBQU8sT0FBT2xCLEVBQUVnUixLQUFLLElBQUksT0FBTzlQLEVBQUU2eUMsR0FBR3pwRCxFQUFFMFYsR0FBR3BELEVBQUUrbEIsT0FBT3BFLEtBQUs3VCxHQUFTeEosRUFBRTNQLEtBQUsyUCxFQUFFTixRQUFRaEUsRUFBRTZoQixTQUFTLElBQUlILEdBQUcxaEIsRUFBRStsQixPQUFPcEUsTUFBTSxNQUFNLElBQUksT0FBT3JkLEVBQUU2eUMsR0FBR3pwRCxFQUFFMFYsR0FBR3phLEVBQUUsSUFBSStsQixHQUFHMlIsT0FBTy9iLEVBQUUzUCxLQUFLMlAsRUFBRU4sUUFBUWhFLEVBQUUrbEIsT0FBT2dxQixJQUFJcG5ELEVBQUVnMEIsZUFBZXZaLEVBQUVsYixPQUFPLEdBQUcsTUFBTSxJQUFJLE9BQU80WSxFQUFFc0MsRUFBRSxNQUFNLElBQUksT0FBT2tCLEVBQUU2eUMsR0FBR3pwRCxFQUFFMFYsR0FBR3phLEVBQUUsSUFBSStsQixHQUFHMlIsT0FBTy9iLEVBQUUzUCxLQUFLMlAsRUFBRU4sUUFBUWhFLEVBQUUrbEIsT0FBTzJxQixLQUFLL25ELEVBQUVpMEIsY0FBY3haLEVBQUVsYixRQUFRLE1BQU0sSUFBSSxPQUFPb2MsRUFBRTZ5QyxHQUFHenBELEVBQUUwVixHQUFHcEQsRUFBRStsQixPQUFPOXNCLEtBQUswdkIsR0FBU3JrQixFQUFFM1AsS0FBSzJQLEVBQUVOLFFBQVFoRSxFQUFFb2pCLFdBQVdwakIsRUFBRStsQixPQUFPOXNCLEtBQUttcUIsV0FBV3BpQixFQUFFaEIsRUFBRStsQixPQUFPOXNCLEtBQUtvd0IsaUJBQWlCLE1BQU0sSUFBSSxPQUFPL2tCLEVBQUU2eUMsR0FBR3pwRCxFQUFFMFYsR0FBR3BELEVBQUUrbEIsT0FBT3V4QixLQUFLN3RCLEdBQVNubEIsRUFBRTNQLEtBQUsyUCxFQUFFTixRQUFRaEUsRUFBRTBwQixTQUFTMXBCLEVBQUUrbEIsT0FBT3V4QixLQUFLNXRCLFNBQVMxcEIsRUFBRTJwQixVQUFVM3BCLEVBQUUrbEIsT0FBT3V4QixLQUFLM3RCLFVBQVUzcEIsRUFBRXFxQixpQkFBaUJycUIsRUFBRStsQixPQUFPdXhCLEtBQUtqdEIsaUJBQWlCLE1BQU0sSUFBSSxPQUFPdHBCLEVBQUVxQyxFQUFFLE1BQU0sSUFBSSxPQUFPa0IsRUFBRTZ5QyxHQUFHenBELEVBQUUwVixHQUFHMVgsRUFBRTYrQixHQUFTam1CLEVBQUUzUCxLQUFLMlAsRUFBRU4sUUFBUSxNQUFNLElBQUksT0FBT00sRUFBRTZ5QyxHQUFHenBELEVBQUUwVixHQUFHcEQsRUFBRStsQixPQUFPd3hCLEtBQUsvc0IsR0FBU2xtQixFQUFFM1AsS0FBSzJQLEVBQUVOLFFBQVFoRSxFQUFFc25CLFVBQVV0bkIsRUFBRStsQixPQUFPd3hCLEtBQUtqd0IsVUFBVSxNQUFNLElBQUksT0FBT25sQixFQUFFaUIsRUFBRSxNQUFNLElBQUksT0FBT2tCLEVBQUU2eUMsR0FBR3pwRCxFQUFFMFYsR0FBR3BELEVBQUUrbEIsT0FBTzRmLElBQUkxRixHQUFTMzdCLEVBQUUzUCxLQUFLMlAsRUFBRU4sUUFBUSxNQUFNLElBQUksT0FBT00sRUFBRTZ5QyxHQUFHenBELEVBQUUwVixHQUFHcEQsRUFBRStsQixPQUFPeXhCLEtBQUtsVixHQUFTaCtCLEVBQUUzUCxLQUFLMlAsRUFBRU4sUUFBUWhFLEVBQUU4eUMsV0FBVyxJQUFJaHhCLEdBQUc5aEIsRUFBRStsQixPQUFPeXhCLE1BQU0sTUFBTSxJQUFJLE9BQU9sekMsRUFBRTZ5QyxHQUFHenBELEVBQUUwVixHQUFHemEsRUFBRSxJQUFJK2xCLEdBQUcyUixPQUFPL2IsRUFBRTNQLEtBQUsyUCxFQUFFTixRQUFRaEUsRUFBRStsQixPQUFPNnFCLEtBQUtqb0QsRUFBRWkwQixjQUFjeFosRUFBRWxiLFFBQVEsTUFBTSxJQUFJLE9BQU9nTCxFQUFFa1EsRUFBRSxNQUFNLElBQUksT0FBT3ZZLEVBQUV1WSxFQUFFLE1BQU0sSUFBSSxPQUFPL0MsRUFBRStDLEVBQUUsTUFBTSxJQUFJLE9BQU9uRCxFQUFFbUQsRUFBRSxNQUFNLElBQUksT0FBT3JELEVBQUVxRCxFQUFFLE1BQU0sSUFBSSxPQUFPM04sRUFBRTJOLEVBQUUsTUFBTSxJQUFJLE9BQU9sRCxFQUFFa0QsR0FBRyxJQUFJbUIsRUFBRTR5QyxHQUFHenBELEVBQUV5VSxHQUFHLEdBQUduQyxFQUFFK2xCLE9BQU96MUIsS0FBS292QyxHQUFTbjdCLEVBQUU1UCxLQUFLNFAsRUFBRVAsT0FBT3RZLEdBQUdzVSxFQUFFalEsTUFBTWlRLEVBQUUrbEIsT0FBT3oxQixLQUFLNEMsR0FBR3JJLEVBQUUsQ0FBQyxJQUFJd1osRUFBRSxJQUFJckQsRUFBRXdELEVBQUUyeUMsR0FBR3pwRCxFQUFFN0MsR0FBR21hLEVBQUUweEMsR0FBU2x5QyxFQUFFN1AsS0FBSzZQLEVBQUVSLE9BQU9oRSxFQUFFc25CLFVBQVVqakIsR0FBR1ksRUFBRWt5QyxHQUFHenBELEVBQUV3RixHQUFHOE0sRUFBRW1aLE9BQU93eEIsR0FBR2gxQyxNQUFNc1AsRUFBRXRRLEtBQUtzUSxFQUFFakIsT0FBT2dCLEVBQUVoRixPQUFPLENBQUMsSUFBSUssRUFBRSxNQUFNLElBQUl6USxNQUFNLGtEQUFrRCxJQUFJc1YsRUFBRWl5QyxHQUFHenBELEVBQUUyUyxHQUFHeW1CLEdBQVM1aEIsRUFBRXZRLEtBQUt1USxFQUFFbEIsT0FBT2hFLEdBQUcsSUFBSW1GLEVBQUVneUMsR0FBR3pwRCxFQUFFcVQsR0FBRyxHQUFHdXBCLEdBQVNubEIsRUFBRXhRLEtBQUt3USxFQUFFbkIsT0FBT2hFLEVBQUVxcUIsaUJBQWlCcnFCLEVBQUVzbkIsVUFBVXRuQixFQUFFbVosUUFBUSxTQUFTdmxCLEdBQUcsSUFBSSxJQUFJb04sRUFBRXRWLEVBQUVrSSxFQUFFbXlCLE9BQU9wRSxLQUFLakIsY0FBYzU0QixFQUFFaUgsT0FBT3lCLEtBQUs5RSxHQUFHMlUsRUFBRSxFQUFFQSxFQUFFdlksRUFBRUksT0FBT21ZLEdBQUcsRUFBRSxDQUFDLElBQUlTLEVBQUVoWixFQUFFdVksR0FBR25OLEVBQUV4SCxFQUFFb1YsSUFBSUUsRUFBRXBOLEVBQUV1bEIsT0FBT2hxQixJQUFJK0QsSUFBSTR2QixXQUFXajJCLFNBQVNpVSxJQUFJLElBQUksSUFBSWYsRUFBRSxFQUFFQSxFQUFFbk0sRUFBRXVsQixPQUFPanhCLE9BQU82WCxHQUFHLEVBQUVpQixFQUFFcE4sRUFBRXVsQixPQUFPaHFCLElBQUk0USxHQUFHbk0sRUFBRTh6QixZQUFZOXpCLEVBQUVreUIsVUFBVTlrQixFQUFFMVEsS0FBSyxNQUFNeVAsRUFBRWlCLEVBQUUxUSxLQUFLc0QsRUFBRTh6QixZQUFZcGMsUUFBUXZMLEdBQUduTSxFQUFFay9DLFdBQVcvaUQsUUFBUWlSLEVBQUUxUSxLQUFLc0QsRUFBRWsvQyxXQUFXM3dCLGlCQUFpQnBpQixJQUFoVixDQUFxVkMsR0FBR0MsRUFBRSxDQUFDLElBQUltRixFQUFFK3hDLEdBQUd6cEQsRUFBRXVTLEdBQUdELEVBQUVnekMsYUFBYXlELEdBQVNyeEMsRUFBRXpRLEtBQUt5USxFQUFFcEIsYUFBYWhFLEVBQUVnekMsYUFBYSxHQUFHLEdBQUdqekMsRUFBRSxDQUFDLElBQUk2QyxFQUFFdTBDLEdBQUd6cEQsRUFBRXFTLEdBQUdDLEVBQUUrbEIsT0FBTzZqQixLQUFLNE0sR0FBUzV6QyxFQUFFak8sS0FBS2lPLEVBQUVvQixRQUFRaEUsRUFBRXpHLFNBQVNsSyxPQUFPLEdBQUdvRyxFQUFFLENBQUMsSUFBSW9OLEVBQUVzMEMsR0FBR3pwRCxFQUFFK0gsR0FBR3VLLEVBQUUrbEIsT0FBT3NnQixLQUFLeEIsR0FBU2hpQyxFQUFFbE8sS0FBS2tPLEVBQUVtQixRQUFRLEdBQUdsRCxFQUFFLENBQUMsSUFBSTlDLEVBQUVtNUMsR0FBR3pwRCxFQUFFb1QsR0FBR2QsRUFBRStsQixPQUFPMHhCLEtBQUs5QixHQUFTMzNDLEVBQUVySixLQUFLcUosRUFBRWdHLE9BQU9oRSxFQUFFalEsT0FBTyxHQUFHbVEsRUFBRSxDQUFDLElBQUlrQyxFQUFFKzBDLEdBQUd6cEQsRUFBRXdTLEdBQUdGLEVBQUUrbEIsT0FBTzJ4QixLQUFLeFMsR0FBUzlpQyxFQUFFek4sS0FBS3lOLEVBQUU0QixRQUFRaEUsRUFBRW9tQyxNQUFNcG1DLEVBQUUrbEIsT0FBTzJ4QixLQUFLLE9BQU8xM0MsRUFBRXdFLEVBQUVtekMsS0FBS3pHLEdBQUcxc0MsRUFBRW96QyxNQUFNdjFCLEdBQUc3ZCxFQUFFcXpDLEtBQUtwMUMsRUFBRStCLEVBQUVzekMsWUFBWTd5QyxFQUFFVCxFQUFFdXpDLE9BQU9ycEMsR0FBR2xLLEVBQUU3TyxNQUFNMGhELEdBQUc3eUMsRUFBRS9ZLEtBQUssU0FBU21JLEVBQUU5TCxJQUFJLG9CQUFvQmlFLE9BQU80cUQsR0FBR0UsSUFBSWpqRCxHQUFFLFNBQVNBLEVBQUVvTixHQUFHLEdBQUdwTixFQUFFLE9BQU85TCxFQUFFOEwsR0FBRyxJQUFJbEksRUFBRSxJQUFJQSxFQUFFMnJELEdBQUdyMkMsR0FBRyxNQUFNcE4sR0FBRyxPQUFPOUwsRUFBRThMLEVBQUUsTUFBTSxPQUFPOUwsRUFBRSxLQUFLNEQsT0FBTThZLEVBQUV3ekMsU0FBUyxTQUFTcGtELEdBQUcsT0FBT3lqRCxHQUFHdlEsR0FBR2p6QixFQUFHLE1BQU1va0MsYUFBYXJrRCxNQUFNN0UsT0FBT0MsZUFBZXdWLEVBQUUsYUFBYSxDQUFDdkssT0FBTSxJQUFuMDZJLENBQXkwNkksaUJBQWlCdk8sUUFBRyxJQUFTc1YsRUFBRXRWLEVBQTcyNklwRixLQUFpMzZJNHhELFNBQVMsTUFBTXRwRCxLQUFLdEksS0FBS3V0QixFQUFHLFVBQVVsVyxTQUFTLENBQUM0QixPQUFPLEVBQUU0NEMsR0FBRyxJQUFJMXNCLEdBQUcsQ0FBQyxTQUFTNzNCLEVBQUVvTixFQUFFRCxJQUFHLFNBQVVWLEdBQUcsU0FBU1MsRUFBRWxOLEVBQUVvTixHQUFHLElBQUksSUFBSXRWLEVBQUUsRUFBRTVELEVBQUU4TCxFQUFFMUwsT0FBTyxFQUFFLEdBQUdKLEVBQUVBLElBQUksQ0FBQyxJQUFJdVksRUFBRXpNLEVBQUU5TCxHQUFHLE1BQU11WSxFQUFFek0sRUFBRTNKLE9BQU9uQyxFQUFFLEdBQUcsT0FBT3VZLEdBQUd6TSxFQUFFM0osT0FBT25DLEVBQUUsR0FBRzRELEtBQUtBLElBQUlrSSxFQUFFM0osT0FBT25DLEVBQUUsR0FBRzRELEtBQUssR0FBR3NWLEVBQUUsS0FBS3RWLEtBQUtrSSxFQUFFcEYsUUFBUSxNQUFNLE9BQU9vRixFQUFFLFNBQVNWLEVBQUVVLEVBQUVvTixHQUFHLEdBQUdwTixFQUFFd2tELE9BQU8sT0FBT3hrRCxFQUFFd2tELE9BQU9wM0MsR0FBRyxJQUFJLElBQUl0VixFQUFFLEdBQUc1RCxFQUFFLEVBQUVBLEVBQUU4TCxFQUFFMUwsT0FBT0osSUFBSWtaLEVBQUVwTixFQUFFOUwsR0FBR0EsRUFBRThMLElBQUlsSSxFQUFFbkMsS0FBS3FLLEVBQUU5TCxJQUFJLE9BQU80RCxFQUFFcVYsRUFBRW9JLFFBQVEsV0FBVyxJQUFJLElBQUl2VixFQUFFLEdBQUdvTixHQUFFLEVBQUd0VixFQUFFL0IsVUFBVXpCLE9BQU8sR0FBRyxHQUFHd0QsSUFBSXNWLEVBQUV0VixJQUFJLENBQUMsSUFBSTVELEVBQUUsR0FBRzRELEVBQUUvQixVQUFVK0IsR0FBRzJVLEVBQUVnNEMsTUFBTSxHQUFHLGlCQUFpQnZ3RCxFQUFFLE1BQU0sSUFBSW1hLFVBQVUsNkNBQTZDbmEsSUFBSThMLEVBQUU5TCxFQUFFLElBQUk4TCxFQUFFb04sRUFBRSxNQUFNbFosRUFBRThXLE9BQU8sSUFBSSxPQUFPb0MsRUFBRSxJQUFJLEtBQUtwTixFQUFFa04sRUFBRTVOLEVBQUVVLEVBQUV4RCxNQUFNLE1BQUssU0FBU3dELEdBQUcsUUFBUUEsTUFBS29OLEdBQUc5USxLQUFLLE9BQU8sS0FBSzZRLEVBQUV1M0MsVUFBVSxTQUFTMWtELEdBQUcsSUFBSW9OLEVBQUVELEVBQUV3M0MsV0FBVzNrRCxHQUFHbEksRUFBRSxNQUFNNUQsRUFBRThMLEdBQUcsR0FBRyxPQUFPQSxFQUFFa04sRUFBRTVOLEVBQUVVLEVBQUV4RCxNQUFNLE1BQUssU0FBU3dELEdBQUcsUUFBUUEsTUFBS29OLEdBQUc5USxLQUFLLE9BQU84USxJQUFJcE4sRUFBRSxLQUFLQSxHQUFHbEksSUFBSWtJLEdBQUcsTUFBTW9OLEVBQUUsSUFBSSxJQUFJcE4sR0FBR21OLEVBQUV3M0MsV0FBVyxTQUFTM2tELEdBQUcsTUFBTSxNQUFNQSxFQUFFZ0wsT0FBTyxJQUFJbUMsRUFBRTdRLEtBQUssV0FBVyxJQUFJMEQsRUFBRXhKLE1BQU1yRCxVQUFVc0QsTUFBTXVFLEtBQUtqRixVQUFVLEdBQUcsT0FBT29YLEVBQUV1M0MsVUFBVXBsRCxFQUFFVSxHQUFFLFNBQVNBLEVBQUVvTixHQUFHLEdBQUcsaUJBQWlCcE4sRUFBRSxNQUFNLElBQUlxTyxVQUFVLDBDQUEwQyxPQUFPck8sS0FBSTFELEtBQUssT0FBTzZRLEVBQUV5M0MsU0FBUyxTQUFTNWtELEVBQUVvTixHQUFHLFNBQVN0VixFQUFFa0ksR0FBRyxJQUFJLElBQUlvTixFQUFFLEVBQUVBLEVBQUVwTixFQUFFMUwsUUFBUSxLQUFLMEwsRUFBRW9OLEdBQUdBLEtBQUssSUFBSSxJQUFJdFYsRUFBRWtJLEVBQUUxTCxPQUFPLEVBQUUsR0FBR3dELEdBQUcsS0FBS2tJLEVBQUVsSSxHQUFHQSxLQUFLLE9BQU9BLEVBQUVzVixFQUFFLEdBQUdwTixFQUFFdkosTUFBTTJXLEVBQUV0VixFQUFFc1YsRUFBRSxHQUFHcE4sRUFBRW1OLEVBQUVvSSxRQUFRdlYsR0FBR3ZELE9BQU8sR0FBRzJRLEVBQUVELEVBQUVvSSxRQUFRbkksR0FBRzNRLE9BQU8sR0FBRyxJQUFJLElBQUl2SSxFQUFFNEQsRUFBRWtJLEVBQUV4RCxNQUFNLE1BQU1pUSxFQUFFM1UsRUFBRXNWLEVBQUU1USxNQUFNLE1BQU0wUSxFQUFFN1osS0FBS1QsSUFBSXNCLEVBQUVJLE9BQU9tWSxFQUFFblksUUFBUWdMLEVBQUU0TixFQUFFZixFQUFFLEVBQUVBLEVBQUVlLEVBQUVmLElBQUksR0FBR2pZLEVBQUVpWSxLQUFLTSxFQUFFTixHQUFHLENBQUM3TSxFQUFFNk0sRUFBRSxNQUFNLElBQUl0SyxFQUFFLEdBQUcsSUFBSXNLLEVBQUU3TSxFQUFFNk0sRUFBRWpZLEVBQUVJLE9BQU82WCxJQUFJdEssRUFBRWxNLEtBQUssTUFBTSxPQUFPa00sRUFBRUEsRUFBRXlJLE9BQU9tQyxFQUFFaFcsTUFBTTZJLEtBQUtoRCxLQUFLLE1BQU02USxFQUFFMDNDLElBQUksSUFBSTEzQyxFQUFFelIsVUFBVSxJQUFJeVIsRUFBRTIzQyxRQUFRLFNBQVM5a0QsR0FBRyxHQUFHLGlCQUFpQkEsSUFBSUEsR0FBRyxJQUFJLElBQUlBLEVBQUUxTCxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUk4WSxFQUFFcE4sRUFBRWpELFdBQVcsR0FBR2pGLEVBQUUsS0FBS3NWLEVBQUVsWixHQUFHLEVBQUV1WSxHQUFFLEVBQUdTLEVBQUVsTixFQUFFMUwsT0FBTyxFQUFFLEdBQUc0WSxJQUFJQSxFQUFFLEdBQUcsTUFBTUUsRUFBRXBOLEVBQUVqRCxXQUFXbVEsS0FBSyxJQUFJVCxFQUFFLENBQUN2WSxFQUFFZ1osRUFBRSxZQUFZVCxHQUFFLEVBQUcsT0FBTyxJQUFJdlksRUFBRTRELEVBQUUsSUFBSSxJQUFJQSxHQUFHLElBQUk1RCxFQUFFLElBQUk4TCxFQUFFdkosTUFBTSxFQUFFdkMsSUFBSWlaLEVBQUU0M0MsU0FBUyxTQUFTL2tELEVBQUVvTixHQUFHLElBQUl0VixFQUFFLFNBQVNrSSxHQUFHLGlCQUFpQkEsSUFBSUEsR0FBRyxJQUFJLElBQUlvTixFQUFFdFYsRUFBRSxFQUFFNUQsR0FBRyxFQUFFdVksR0FBRSxFQUFHLElBQUlXLEVBQUVwTixFQUFFMUwsT0FBTyxFQUFFLEdBQUc4WSxJQUFJQSxFQUFFLEdBQUcsS0FBS3BOLEVBQUVqRCxXQUFXcVEsSUFBSSxJQUFJWCxFQUFFLENBQUMzVSxFQUFFc1YsRUFBRSxFQUFFLFlBQVksSUFBSWxaLElBQUl1WSxHQUFFLEVBQUd2WSxFQUFFa1osRUFBRSxHQUFHLE9BQU8sSUFBSWxaLEVBQUUsR0FBRzhMLEVBQUV2SixNQUFNcUIsRUFBRTVELEdBQXRMLENBQTBMOEwsR0FBRyxPQUFPb04sR0FBR3RWLEVBQUUyRSxRQUFRLEVBQUUyUSxFQUFFOVksVUFBVThZLElBQUl0VixFQUFFQSxFQUFFMkUsT0FBTyxFQUFFM0UsRUFBRXhELE9BQU84WSxFQUFFOVksU0FBU3dELEdBQUdxVixFQUFFNjNDLFFBQVEsU0FBU2hsRCxHQUFHLGlCQUFpQkEsSUFBSUEsR0FBRyxJQUFJLElBQUksSUFBSW9OLEdBQUcsRUFBRXRWLEVBQUUsRUFBRTVELEdBQUcsRUFBRXVZLEdBQUUsRUFBR1MsRUFBRSxFQUFFNU4sRUFBRVUsRUFBRTFMLE9BQU8sRUFBRSxHQUFHZ0wsSUFBSUEsRUFBRSxDQUFDLElBQUk2TSxFQUFFbk0sRUFBRWpELFdBQVd1QyxHQUFHLEdBQUcsS0FBSzZNLEVBQUUsQ0FBQyxHQUFHTSxFQUFFLFNBQVMzVSxFQUFFd0gsRUFBRSxFQUFFLE9BQU8sSUFBSXBMLElBQUl1WSxHQUFFLEVBQUd2WSxFQUFFb0wsRUFBRSxHQUFHLEtBQUs2TSxHQUFHLElBQUlpQixFQUFFQSxFQUFFOU4sRUFBRSxJQUFJNE4sSUFBSUEsRUFBRSxJQUFJLElBQUlFLElBQUlGLEdBQUcsR0FBRyxPQUFPLElBQUlFLElBQUksSUFBSWxaLEdBQUcsSUFBSWdaLEdBQUcsSUFBSUEsR0FBR0UsSUFBSWxaLEVBQUUsR0FBR2taLElBQUl0VixFQUFFLEVBQUUsR0FBR2tJLEVBQUV2SixNQUFNMlcsRUFBRWxaLElBQUksSUFBSUEsRUFBd0IsU0FBUzhMLEVBQUVvTixFQUFFdFYsR0FBRyxPQUFPa0ksRUFBRXZELE9BQU8yUSxFQUFFdFYsTUFBZ0VrRCxLQUFLdEksS0FBS3NOLEVBQUUsY0FBYyxDQUFDZ1gsU0FBUyxLQUFLOGdCLEdBQUcsQ0FBQyxTQUFTOTNCLEVBQUVvTixFQUFFdFYsR0FBRyxJQUFJNUQsRUFBRXVZLEVBQUVTLEVBQUVFLEVBQUVsYSxRQUFRLEdBQUcsU0FBU29NLElBQUksTUFBTSxJQUFJdEQsTUFBTSxtQ0FBbUMsU0FBU21RLElBQUksTUFBTSxJQUFJblEsTUFBTSxxQ0FBcUMsU0FBUzZGLEVBQUV1TCxHQUFHLEdBQUdsWixJQUFJNEwsV0FBVyxPQUFPQSxXQUFXc04sRUFBRSxHQUFHLElBQUlsWixJQUFJb0wsSUFBSXBMLElBQUk0TCxXQUFXLE9BQU81TCxFQUFFNEwsV0FBV0EsV0FBV3NOLEVBQUUsR0FBRyxJQUFJLE9BQU9sWixFQUFFa1osRUFBRSxHQUFHLE1BQU1wTixHQUFHLElBQUksT0FBTzlMLEVBQUU4RyxLQUFLLEtBQUtvUyxFQUFFLEdBQUcsTUFBTXBOLEdBQUcsT0FBTzlMLEVBQUU4RyxLQUFLdEksS0FBSzBhLEVBQUUsTUFBTSxXQUFXLElBQUlsWixFQUFFLG1CQUFtQjRMLFdBQVdBLFdBQVdSLEVBQUUsTUFBTVUsR0FBRzlMLEVBQUVvTCxFQUFFLElBQUltTixFQUFFLG1CQUFtQnBLLGFBQWFBLGFBQWE4SixFQUFFLE1BQU1uTSxHQUFHeU0sRUFBRU4sR0FBekksR0FBK0ksSUFBSWdCLEVBQUVkLEVBQUUsR0FBR3BWLEdBQUUsRUFBR3NYLEdBQUcsRUFBRSxTQUFTakMsSUFBSXJWLEdBQUdrVyxJQUFJbFcsR0FBRSxFQUFHa1csRUFBRTdZLE9BQU8rWCxFQUFFYyxFQUFFN0MsT0FBTytCLEdBQUdrQyxHQUFHLEVBQUVsQyxFQUFFL1gsUUFBUVMsS0FBSyxTQUFTQSxJQUFJLElBQUlrQyxFQUFFLENBQUMsSUFBSStJLEVBQUU2QixFQUFFeUssR0FBR3JWLEdBQUUsRUFBRyxJQUFJLElBQUltVyxFQUFFZixFQUFFL1gsT0FBTzhZLEdBQUcsQ0FBQyxJQUFJRCxFQUFFZCxFQUFFQSxFQUFFLEtBQUtrQyxFQUFFbkIsR0FBR0QsR0FBR0EsRUFBRW9CLEdBQUcwMkMsTUFBTTEyQyxHQUFHLEVBQUVuQixFQUFFZixFQUFFL1gsT0FBTzZZLEVBQUUsS0FBS2xXLEdBQUUsRUFBRyxTQUFTbVcsR0FBRyxHQUFHWCxJQUFJcEssYUFBYSxPQUFPQSxhQUFhK0ssR0FBRyxJQUFJWCxJQUFJTixJQUFJTSxJQUFJcEssYUFBYSxPQUFPb0ssRUFBRXBLLGFBQWFBLGFBQWErSyxHQUFHLElBQUlYLEVBQUVXLEdBQUcsTUFBTXBOLEdBQUcsSUFBSSxPQUFPeU0sRUFBRXpSLEtBQUssS0FBS29TLEdBQUcsTUFBTXBOLEdBQUcsT0FBT3lNLEVBQUV6UixLQUFLdEksS0FBSzBhLEtBQWxNLENBQXdNcE4sSUFBSSxTQUFTb00sRUFBRXBNLEVBQUVvTixHQUFHMWEsS0FBS3d5RCxJQUFJbGxELEVBQUV0TixLQUFLeXlELE1BQU0vM0MsRUFBRSxTQUFTdFQsS0FBS29ULEVBQUUySCxTQUFTLFNBQVM3VSxHQUFHLElBQUlvTixFQUFFLElBQUk1VyxNQUFNVCxVQUFVekIsT0FBTyxHQUFHLEdBQUcsRUFBRXlCLFVBQVV6QixPQUFPLElBQUksSUFBSXdELEVBQUUsRUFBRUEsRUFBRS9CLFVBQVV6QixPQUFPd0QsSUFBSXNWLEVBQUV0VixFQUFFLEdBQUcvQixVQUFVK0IsR0FBR3VVLEVBQUUxVyxLQUFLLElBQUl5VyxFQUFFcE0sRUFBRW9OLElBQUksSUFBSWYsRUFBRS9YLFFBQVEyQyxHQUFHNEssRUFBRTlNLElBQUlxWCxFQUFFalosVUFBVTh4RCxJQUFJLFdBQVd2eUQsS0FBS3d5RCxJQUFJcHZELE1BQU0sS0FBS3BELEtBQUt5eUQsUUFBUWo0QyxFQUFFazRDLE1BQU0sVUFBVWw0QyxFQUFFbTRDLFNBQVEsRUFBR240QyxFQUFFalYsSUFBSSxHQUFHaVYsRUFBRW80QyxLQUFLLEdBQUdwNEMsRUFBRXdmLFFBQVEsR0FBR3hmLEVBQUVxNEMsU0FBUyxHQUFHcjRDLEVBQUU1WCxHQUFHd0UsRUFBRW9ULEVBQUVzNEMsWUFBWTFyRCxFQUFFb1QsRUFBRXRYLEtBQUtrRSxFQUFFb1QsRUFBRXJYLElBQUlpRSxFQUFFb1QsRUFBRWxYLGVBQWU4RCxFQUFFb1QsRUFBRWpYLG1CQUFtQjZELEVBQUVvVCxFQUFFNVcsS0FBS3dELEVBQUVvVCxFQUFFdTRDLGdCQUFnQjNyRCxFQUFFb1QsRUFBRXc0QyxvQkFBb0I1ckQsRUFBRW9ULEVBQUV4VyxVQUFVLFNBQVNzSixHQUFHLE1BQU0sSUFBSWtOLEVBQUV5NEMsUUFBUSxTQUFTM2xELEdBQUcsTUFBTSxJQUFJaEUsTUFBTSxxQ0FBcUNrUixFQUFFdTNDLElBQUksV0FBVyxNQUFNLEtBQUt2M0MsRUFBRTA0QyxNQUFNLFNBQVM1bEQsR0FBRyxNQUFNLElBQUloRSxNQUFNLG1DQUFtQ2tSLEVBQUUyNEMsTUFBTSxXQUFXLE9BQU8sSUFBSSxJQUFJOXRCLEdBQUcsQ0FBQyxTQUFTLzNCLEVBQUVvTixFQUFFdFYsSUFBSSxTQUFTa0ksR0FBRyxhQUFhLElBQUlBLEVBQUU4bEQsTUFBTSxDQUFDLElBQUkxNEMsRUFBRSxvQkFBb0JwTixFQUFFbEksRUFBRSxXQUFXa0ksR0FBRyxhQUFhOE4sT0FBT3hPLEVBQUUsZUFBZVUsR0FBRyxTQUFTQSxHQUFHLFdBQVcsSUFBSSxPQUFPLElBQUk4SyxNQUFLLEVBQUcsTUFBTTlLLEdBQUcsT0FBTSxHQUFqRCxHQUF3RDlMLEVBQUUsYUFBYThMLEVBQUV5TSxFQUFFLGdCQUFnQnpNLEVBQUUsR0FBR3lNLEVBQUUsSUFBSVMsRUFBRSxDQUFDLHFCQUFxQixzQkFBc0IsNkJBQTZCLHNCQUFzQix1QkFBdUIsc0JBQXNCLHVCQUF1Qix3QkFBd0IseUJBQXlCZixFQUFFLFNBQVNuTSxHQUFHLE9BQU9BLEdBQUd1eEIsU0FBU3ArQixVQUFVNHlELGNBQWMvbEQsSUFBSTZCLEVBQUU3TSxZQUFZMFcsUUFBUSxTQUFTMUwsR0FBRyxPQUFPQSxJQUFJLEVBQUVrTixFQUFFalksUUFBUWtHLE9BQU9oSSxVQUFVMkksU0FBU2QsS0FBS2dGLEtBQUtqTCxFQUFFNUIsVUFBVTZ5RCxPQUFPLFNBQVNobUQsRUFBRW9OLEdBQUdwTixFQUFFL0ksRUFBRStJLEdBQUdvTixFQUFFbUIsRUFBRW5CLEdBQUcsSUFBSXRWLEVBQUVwRixLQUFLMEosSUFBSTRELEdBQUd0TixLQUFLMEosSUFBSTRELEdBQUdsSSxFQUFFQSxFQUFFLElBQUlzVixFQUFFQSxHQUFHclksRUFBRTVCLFVBQVU4eUQsT0FBTyxTQUFTam1ELFVBQVV0TixLQUFLMEosSUFBSW5GLEVBQUUrSSxLQUFLakwsRUFBRTVCLFVBQVVvSSxJQUFJLFNBQVN5RSxHQUFHLE9BQU9BLEVBQUUvSSxFQUFFK0ksR0FBR3ROLEtBQUt3ekQsSUFBSWxtRCxHQUFHdE4sS0FBSzBKLElBQUk0RCxHQUFHLE1BQU1qTCxFQUFFNUIsVUFBVSt5RCxJQUFJLFNBQVNsbUQsR0FBRyxPQUFPdE4sS0FBSzBKLElBQUltRCxlQUFldEksRUFBRStJLEtBQUtqTCxFQUFFNUIsVUFBVXFJLElBQUksU0FBU3dFLEVBQUVvTixHQUFHMWEsS0FBSzBKLElBQUluRixFQUFFK0ksSUFBSXVPLEVBQUVuQixJQUFJclksRUFBRTVCLFVBQVUwSixRQUFRLFNBQVNtRCxFQUFFb04sR0FBRyxJQUFJLElBQUl0VixLQUFLcEYsS0FBSzBKLElBQUkxSixLQUFLMEosSUFBSW1ELGVBQWV6SCxJQUFJa0ksRUFBRWhGLEtBQUtvUyxFQUFFMWEsS0FBSzBKLElBQUl0RSxHQUFHQSxFQUFFcEYsT0FBT3FDLEVBQUU1QixVQUFVeUosS0FBSyxXQUFXLElBQUk5RSxFQUFFLEdBQUcsT0FBT3BGLEtBQUttSyxTQUFRLFNBQVNtRCxFQUFFb04sR0FBR3RWLEVBQUVuQyxLQUFLeVgsTUFBS2QsRUFBRXhVLElBQUkvQyxFQUFFNUIsVUFBVW12RCxPQUFPLFdBQVcsSUFBSWwxQyxFQUFFLEdBQUcsT0FBTzFhLEtBQUttSyxTQUFRLFNBQVNtRCxHQUFHb04sRUFBRXpYLEtBQUtxSyxNQUFLc00sRUFBRWMsSUFBSXJZLEVBQUU1QixVQUFVZ3pELFFBQVEsV0FBVyxJQUFJcnVELEVBQUUsR0FBRyxPQUFPcEYsS0FBS21LLFNBQVEsU0FBU21ELEVBQUVvTixHQUFHdFYsRUFBRW5DLEtBQUssQ0FBQ3lYLEVBQUVwTixPQUFNc00sRUFBRXhVLElBQUlBLElBQUkvQyxFQUFFNUIsVUFBVTJhLE9BQU9zNEMsVUFBVXJ4RCxFQUFFNUIsVUFBVWd6RCxTQUFTLElBQUloNUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxPQUFPLFVBQVUsT0FBTyxPQUFPb0MsRUFBRXBjLFVBQVVxTSxNQUFNLFdBQVcsT0FBTyxJQUFJK1AsRUFBRTdjLEtBQUssQ0FBQzRTLEtBQUs1UyxLQUFLMnpELGFBQWEvMkMsRUFBRXRVLEtBQUt1VSxFQUFFcGMsV0FBV21jLEVBQUV0VSxLQUFLMFYsRUFBRXZkLFdBQVd1ZCxFQUFFdmQsVUFBVXFNLE1BQU0sV0FBVyxPQUFPLElBQUlrUixFQUFFaGUsS0FBSzJ6RCxVQUFVLENBQUM5K0MsT0FBTzdVLEtBQUs2VSxPQUFPNDdDLFdBQVd6d0QsS0FBS3l3RCxXQUFXMzVDLFFBQVEsSUFBSXpVLEVBQUVyQyxLQUFLOFcsU0FBUzg4QyxJQUFJNXpELEtBQUs0ekQsT0FBTzUxQyxFQUFFOVksTUFBTSxXQUFXLElBQUlvSSxFQUFFLElBQUkwUSxFQUFFLEtBQUssQ0FBQ25KLE9BQU8sRUFBRTQ3QyxXQUFXLEtBQUssT0FBT25qRCxFQUFFNUgsS0FBSyxRQUFRNEgsR0FBRyxJQUFJcU0sRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksS0FBS3FFLEVBQUU2MUMsU0FBUyxTQUFTdm1ELEVBQUVvTixHQUFHLElBQUksSUFBSWYsRUFBRXBYLFFBQVFtWSxHQUFHLE1BQU0sSUFBSWUsV0FBVyx1QkFBdUIsT0FBTyxJQUFJdUMsRUFBRSxLQUFLLENBQUNuSixPQUFPNkYsRUFBRTVELFFBQVEsQ0FBQ3hMLFNBQVNnQyxNQUFNQSxFQUFFd21ELFFBQVF6eEQsRUFBRWlMLEVBQUU2RyxRQUFRMEksRUFBRXZQLEVBQUV5bUQsU0FBUy8xQyxFQUFFMVEsRUFBRThsRCxNQUFNLFNBQVNodUQsRUFBRTJVLEdBQUcsT0FBTyxJQUFJb0ssU0FBUSxTQUFTM2lCLEVBQUU4TCxHQUFHLElBQUlvTixFQUFFLElBQUltQyxFQUFFelgsRUFBRTJVLEdBQUdTLEVBQUUsSUFBSTNKLGVBQWUySixFQUFFekcsT0FBTyxXQUFXLElBQUl6RyxFQUFFeU0sRUFBRVcsRUFBRSxDQUFDN0YsT0FBTzJGLEVBQUUzRixPQUFPNDdDLFdBQVdqMkMsRUFBRWkyQyxXQUFXMzVDLFNBQVN4SixFQUFFa04sRUFBRXc1Qyx5QkFBeUIsR0FBR2o2QyxFQUFFLElBQUkxWCxFQUFFaUwsRUFBRTNJLFFBQVEsZUFBZSxLQUFLbUYsTUFBTSxTQUFTSyxTQUFRLFNBQVNtRCxHQUFHLElBQUlvTixFQUFFcE4sRUFBRXhELE1BQU0sS0FBSzFFLEVBQUVzVixFQUFFbk4sUUFBUThRLE9BQU8sR0FBR2paLEVBQUUsQ0FBQyxJQUFJNUQsRUFBRWtaLEVBQUU5USxLQUFLLEtBQUt5VSxPQUFPdEUsRUFBRXU1QyxPQUFPbHVELEVBQUU1RCxPQUFNdVksSUFBSVcsRUFBRWs1QyxJQUFJLGdCQUFnQnA1QyxFQUFFQSxFQUFFeTVDLFlBQVl2NUMsRUFBRTVELFFBQVFqTyxJQUFJLGlCQUFpQixJQUFJekQsRUFBRSxhQUFhb1YsRUFBRUEsRUFBRWcyQyxTQUFTaDJDLEVBQUU1RixhQUFhcFQsRUFBRSxJQUFJd2MsRUFBRTVZLEVBQUVzVixLQUFLRixFQUFFMUwsUUFBUSxXQUFXeEIsRUFBRSxJQUFJcU8sVUFBVSw0QkFBNEJuQixFQUFFMDVDLFVBQVUsV0FBVzVtRCxFQUFFLElBQUlxTyxVQUFVLDRCQUE0Qm5CLEVBQUU3TixLQUFLK04sRUFBRXJILE9BQU9xSCxFQUFFazVDLEtBQUksR0FBSSxZQUFZbDVDLEVBQUV5NUMsWUFBWTM1QyxFQUFFM08saUJBQWdCLEVBQUcsU0FBUzZPLEVBQUV5NUMsY0FBYzM1QyxFQUFFM08saUJBQWdCLEdBQUksaUJBQWlCMk8sR0FBRzVOLElBQUk0TixFQUFFdEcsYUFBYSxRQUFRd0csRUFBRTVELFFBQVEzTSxTQUFRLFNBQVNtRCxFQUFFb04sR0FBR0YsRUFBRWpHLGlCQUFpQm1HLEVBQUVwTixNQUFLa04sRUFBRXBNLFVBQUssSUFBU3NNLEVBQUVpNUMsVUFBVSxLQUFLajVDLEVBQUVpNUMsZUFBY3JtRCxFQUFFOGxELE1BQU01eEMsVUFBUyxFQUFHLFNBQVNqZCxFQUFFK0ksR0FBRyxHQUFHLGlCQUFpQkEsSUFBSUEsRUFBRTZMLE9BQU83TCxJQUFJLDZCQUE2QnJELEtBQUtxRCxHQUFHLE1BQU0sSUFBSXFPLFVBQVUsMENBQTBDLE9BQU9yTyxFQUFFeEgsY0FBYyxTQUFTK1YsRUFBRXZPLEdBQUcsTUFBTSxpQkFBaUJBLElBQUlBLEVBQUU2TCxPQUFPN0wsSUFBSUEsRUFBRSxTQUFTc00sRUFBRWMsR0FBRyxJQUFJcE4sRUFBRSxDQUFDOG1ELEtBQUssV0FBVyxJQUFJOW1ELEVBQUVvTixFQUFFbk4sUUFBUSxNQUFNLENBQUM4bUQsVUFBSyxJQUFTL21ELEVBQUVxRyxNQUFNckcsS0FBSyxPQUFPbEksSUFBSWtJLEVBQUU4TixPQUFPczRDLFVBQVUsV0FBVyxPQUFPcG1ELElBQUlBLEVBQUUsU0FBU2pMLEVBQUVxWSxHQUFHMWEsS0FBSzBKLElBQUksR0FBR2dSLGFBQWFyWSxFQUFFcVksRUFBRXZRLFNBQVEsU0FBU21ELEVBQUVvTixHQUFHMWEsS0FBS3N6RCxPQUFPNTRDLEVBQUVwTixLQUFJdE4sTUFBTThELE1BQU1zWSxRQUFRMUIsR0FBR0EsRUFBRXZRLFNBQVEsU0FBU21ELEdBQUd0TixLQUFLc3pELE9BQU9obUQsRUFBRSxHQUFHQSxFQUFFLE1BQUt0TixNQUFNMGEsR0FBR2pTLE9BQU82ckQsb0JBQW9CNTVDLEdBQUd2USxTQUFRLFNBQVNtRCxHQUFHdE4sS0FBS3N6RCxPQUFPaG1ELEVBQUVvTixFQUFFcE4sTUFBS3ROLE1BQU0sU0FBUzBaLEVBQUVwTSxHQUFHLEdBQUdBLEVBQUVpbkQsU0FBUyxPQUFPcHdDLFFBQVFKLE9BQU8sSUFBSXBJLFVBQVUsaUJBQWlCck8sRUFBRWluRCxVQUFTLEVBQUcsU0FBU250RCxFQUFFaEMsR0FBRyxPQUFPLElBQUkrZSxTQUFRLFNBQVM3VyxFQUFFb04sR0FBR3RWLEVBQUUyTyxPQUFPLFdBQVd6RyxFQUFFbEksRUFBRTBULFNBQVMxVCxFQUFFMEosUUFBUSxXQUFXNEwsRUFBRXRWLEVBQUVGLFdBQVUsU0FBU3dYLEVBQUVwUCxHQUFHLElBQUlvTixFQUFFLElBQUk5QixXQUFXeFQsRUFBRWdDLEVBQUVzVCxHQUFHLE9BQU9BLEVBQUU4NUMsa0JBQWtCbG5ELEdBQUdsSSxFQUFFLFNBQVN1WCxFQUFFclAsR0FBRyxHQUFHQSxFQUFFdkosTUFBTSxPQUFPdUosRUFBRXZKLE1BQU0sR0FBRyxJQUFJMlcsRUFBRSxJQUFJaFosV0FBVzRMLEVBQUVnSyxZQUFZLE9BQU9vRCxFQUFFNVIsSUFBSSxJQUFJcEgsV0FBVzRMLElBQUlvTixFQUFFekIsT0FBTyxTQUFTMkQsSUFBSSxPQUFPNWMsS0FBS3UwRCxVQUFTLEVBQUd2MEQsS0FBS3kwRCxVQUFVLFNBQVNubkQsR0FBRyxHQUFHdE4sS0FBSzJ6RCxVQUFVcm1ELEVBQUUsR0FBRyxpQkFBaUJBLEVBQUV0TixLQUFLMDBELFVBQVVwbkQsT0FBTyxHQUFHVixHQUFHd0wsS0FBSzNYLFVBQVU0eUQsY0FBYy9sRCxHQUFHdE4sS0FBSzIwRCxVQUFVcm5ELE9BQU8sR0FBRzlMLEdBQUdvekQsU0FBU24wRCxVQUFVNHlELGNBQWMvbEQsR0FBR3ROLEtBQUs2MEQsY0FBY3ZuRCxPQUFPLEdBQUdvTixHQUFHbzZDLGdCQUFnQnIwRCxVQUFVNHlELGNBQWMvbEQsR0FBR3ROLEtBQUswMEQsVUFBVXBuRCxFQUFFbEUsZ0JBQWdCLEdBQUcyUSxHQUFHbk4sR0FBRzZNLEVBQUVuTSxHQUFHdE4sS0FBSyswRCxpQkFBaUJwNEMsRUFBRXJQLEVBQUUyTCxRQUFRalosS0FBSzJ6RCxVQUFVLElBQUl2N0MsS0FBSyxDQUFDcFksS0FBSyswRCx1QkFBdUIsQ0FBQyxJQUFJaDdDLElBQUl6WCxZQUFZN0IsVUFBVTR5RCxjQUFjL2xELEtBQUs2QixFQUFFN0IsR0FBRyxNQUFNLElBQUloRSxNQUFNLDZCQUE2QnRKLEtBQUsrMEQsaUJBQWlCcDRDLEVBQUVyUCxRQUFRdE4sS0FBSzAwRCxVQUFVLEdBQUcxMEQsS0FBSzhXLFFBQVFqTyxJQUFJLGtCQUFrQixpQkFBaUJ5RSxFQUFFdE4sS0FBSzhXLFFBQVFoTyxJQUFJLGVBQWUsNEJBQTRCOUksS0FBSzIwRCxXQUFXMzBELEtBQUsyMEQsVUFBVWp2RCxLQUFLMUYsS0FBSzhXLFFBQVFoTyxJQUFJLGVBQWU5SSxLQUFLMjBELFVBQVVqdkQsTUFBTWdWLEdBQUdvNkMsZ0JBQWdCcjBELFVBQVU0eUQsY0FBYy9sRCxJQUFJdE4sS0FBSzhXLFFBQVFoTyxJQUFJLGVBQWUscURBQXFEOEQsSUFBSTVNLEtBQUtnMUQsS0FBSyxXQUFXLElBQUkxbkQsRUFBRW9NLEVBQUUxWixNQUFNLEdBQUdzTixFQUFFLE9BQU9BLEVBQUUsR0FBR3ROLEtBQUsyMEQsVUFBVSxPQUFPeHdDLFFBQVF0QixRQUFRN2lCLEtBQUsyMEQsV0FBVyxHQUFHMzBELEtBQUsrMEQsaUJBQWlCLE9BQU81d0MsUUFBUXRCLFFBQVEsSUFBSXpLLEtBQUssQ0FBQ3BZLEtBQUsrMEQsb0JBQW9CLEdBQUcvMEQsS0FBSzYwRCxjQUFjLE1BQU0sSUFBSXZyRCxNQUFNLHdDQUF3QyxPQUFPNmEsUUFBUXRCLFFBQVEsSUFBSXpLLEtBQUssQ0FBQ3BZLEtBQUswMEQsY0FBYzEwRCxLQUFLaTFELFlBQVksV0FBVyxPQUFPajFELEtBQUsrMEQsaUJBQWlCcjdDLEVBQUUxWixPQUFPbWtCLFFBQVF0QixRQUFRN2lCLEtBQUsrMEQsa0JBQWtCLzBELEtBQUtnMUQsT0FBT2p5QyxLQUFLckcsS0FBSzFjLEtBQUtrMUQsS0FBSyxXQUFXLElBQUk1bkQsRUFBRW9OLEVBQUV0VixFQUFFNUQsRUFBRWtZLEVBQUUxWixNQUFNLEdBQUd3QixFQUFFLE9BQU9BLEVBQUUsR0FBR3hCLEtBQUsyMEQsVUFBVSxPQUFPcm5ELEVBQUV0TixLQUFLMjBELFVBQTJCdnZELEVBQUVnQyxFQUFuQnNULEVBQUUsSUFBSTlCLFlBQWtCOEIsRUFBRXk2QyxXQUFXN25ELEdBQUdsSSxFQUFFLEdBQUdwRixLQUFLKzBELGlCQUFpQixPQUFPNXdDLFFBQVF0QixRQUFRLFNBQVN2VixHQUFHLElBQUksSUFBSW9OLEVBQUUsSUFBSWhaLFdBQVc0TCxHQUFHbEksRUFBRSxJQUFJdEIsTUFBTTRXLEVBQUU5WSxRQUFRSixFQUFFLEVBQUVBLEVBQUVrWixFQUFFOVksT0FBT0osSUFBSTRELEVBQUU1RCxHQUFHMlgsT0FBT0MsYUFBYXNCLEVBQUVsWixJQUFJLE9BQU80RCxFQUFFd0UsS0FBSyxJQUE5SCxDQUFtSTVKLEtBQUsrMEQsbUJBQW1CLEdBQUcvMEQsS0FBSzYwRCxjQUFjLE1BQU0sSUFBSXZyRCxNQUFNLHdDQUF3QyxPQUFPNmEsUUFBUXRCLFFBQVE3aUIsS0FBSzAwRCxZQUFZbHpELElBQUl4QixLQUFLbzFELFNBQVMsV0FBVyxPQUFPcDFELEtBQUtrMUQsT0FBT255QyxLQUFLakcsS0FBSzljLEtBQUsra0IsS0FBSyxXQUFXLE9BQU8va0IsS0FBS2sxRCxPQUFPbnlDLEtBQUsxYixLQUFLZ0ksUUFBUXJQLEtBQUssU0FBUzZjLEVBQUV2UCxFQUFFb04sR0FBRyxJQUFJdFYsRUFBRTVELEVBQUV1WSxHQUFHVyxFQUFFQSxHQUFHLElBQUk5SCxLQUFLLEdBQUd0RixhQUFhdVAsRUFBRSxDQUFDLEdBQUd2UCxFQUFFaW5ELFNBQVMsTUFBTSxJQUFJNTRDLFVBQVUsZ0JBQWdCM2IsS0FBSzR6RCxJQUFJdG1ELEVBQUVzbUQsSUFBSTV6RCxLQUFLbTBELFlBQVk3bUQsRUFBRTZtRCxZQUFZejVDLEVBQUU1RCxVQUFVOVcsS0FBSzhXLFFBQVEsSUFBSXpVLEVBQUVpTCxFQUFFd0osVUFBVTlXLEtBQUtxVCxPQUFPL0YsRUFBRStGLE9BQU9yVCxLQUFLcTFELEtBQUsvbkQsRUFBRStuRCxLQUFLdDdDLEdBQUcsTUFBTXpNLEVBQUVxbUQsWUFBWTU1QyxFQUFFek0sRUFBRXFtRCxVQUFVcm1ELEVBQUVpbkQsVUFBUyxRQUFTdjBELEtBQUs0ekQsSUFBSXo2QyxPQUFPN0wsR0FBRyxHQUFHdE4sS0FBS20wRCxZQUFZejVDLEVBQUV5NUMsYUFBYW4wRCxLQUFLbTBELGFBQWEsUUFBUXo1QyxFQUFFNUQsU0FBUzlXLEtBQUs4VyxVQUFVOVcsS0FBSzhXLFFBQVEsSUFBSXpVLEVBQUVxWSxFQUFFNUQsVUFBVTlXLEtBQUtxVCxRQUF1QzdSLEdBQS9CNEQsRUFBRXNWLEVBQUVySCxRQUFRclQsS0FBS3FULFFBQVEsT0FBVWlpRCxlQUFlLEVBQUU3NkMsRUFBRWxZLFFBQVFmLEdBQUdBLEVBQUU0RCxHQUFHcEYsS0FBS3ExRCxLQUFLMzZDLEVBQUUyNkMsTUFBTXIxRCxLQUFLcTFELE1BQU0sS0FBS3IxRCxLQUFLdTFELFNBQVMsTUFBTSxRQUFRdjFELEtBQUtxVCxRQUFRLFNBQVNyVCxLQUFLcVQsU0FBUzBHLEVBQUUsTUFBTSxJQUFJNEIsVUFBVSw2Q0FBNkMzYixLQUFLeTBELFVBQVUxNkMsR0FBRyxTQUFTK0MsRUFBRXhQLEdBQUcsSUFBSXlNLEVBQUUsSUFBSTY2QyxTQUFTLE9BQU90bkQsRUFBRStRLE9BQU92VSxNQUFNLEtBQUtLLFNBQVEsU0FBU21ELEdBQUcsR0FBR0EsRUFBRSxDQUFDLElBQUlvTixFQUFFcE4sRUFBRXhELE1BQU0sS0FBSzFFLEVBQUVzVixFQUFFbk4sUUFBUTVJLFFBQVEsTUFBTSxLQUFLbkQsRUFBRWtaLEVBQUU5USxLQUFLLEtBQUtqRixRQUFRLE1BQU0sS0FBS29WLEVBQUV1NUMsT0FBT2tDLG1CQUFtQnB3RCxHQUFHb3dELG1CQUFtQmgwRCxRQUFPdVksRUFBRSxTQUFTaUUsRUFBRTFRLEVBQUVvTixHQUFHQSxFQUFFQSxHQUFHLEdBQUcxYSxLQUFLMEYsS0FBSyxVQUFVMUYsS0FBSzZVLFlBQU8sSUFBUzZGLEVBQUU3RixPQUFPLElBQUk2RixFQUFFN0YsT0FBTzdVLEtBQUs4a0IsR0FBRyxLQUFLOWtCLEtBQUs2VSxRQUFRN1UsS0FBSzZVLE9BQU8sSUFBSTdVLEtBQUt5d0QsV0FBVyxlQUFlLzFDLEVBQUVBLEVBQUUrMUMsV0FBVyxLQUFLendELEtBQUs4VyxRQUFRLElBQUl6VSxFQUFFcVksRUFBRTVELFNBQVM5VyxLQUFLNHpELElBQUlsNUMsRUFBRWs1QyxLQUFLLEdBQUc1ekQsS0FBS3kwRCxVQUFVbm5ELElBQXI0TixDQUEwNE4sb0JBQW9CMUYsS0FBS0EsS0FBSzVILE9BQU8sSUFBSXNsQyxHQUFHLENBQUMsU0FBU2g0QixFQUFFb04sRUFBRXRWLEdBQUcsYUFBYXFELE9BQU9DLGVBQWV0RCxFQUFFLGFBQWEsQ0FBQ3VPLE9BQU0sSUFBS3ZPLEVBQUVpRSxhQUFRLEVBQU8sSUFBSThGLEVBQUUzTixFQUFFZ1osRUFBRWxOLEVBQUUsaUJBQWlCeU0sRUFBRVMsRUFBRWxOLEVBQUUsOEJBQThCLFNBQVNrTixFQUFFbE4sR0FBRyxPQUFPQSxHQUFHQSxFQUFFbW9ELFdBQVdub0QsRUFBRSxDQUFDakUsUUFBUWlFLEdBQUcsSUFBSW1OLEVBQUUsQ0FBQyxDQUFDZCxFQUFFLEVBQUVGLEVBQUUsRUFBRW1ELEVBQUUsTUFBTTVTLEtBQUssUUFBUSxDQUFDMlAsRUFBRSxFQUFFRixFQUFFLEVBQUVtRCxFQUFFLE1BQU01UyxLQUFLLFFBQVEsQ0FBQzJQLEVBQUUsRUFBRUYsRUFBRSxFQUFFbUQsRUFBRSxNQUFNNVMsS0FBSyxRQUFRLENBQUMyUCxFQUFFLE1BQU1GLEVBQUUsTUFBTW1ELEVBQUUsRUFBRTVTLEtBQUssZUFBZTJQLEVBQUUsQ0FBQyxDQUFDQSxFQUFFLEVBQUVGLEVBQUUsRUFBRW1ELEVBQUUsRUFBRTVTLEtBQUssU0FBUyxDQUFDMlAsRUFBRSxFQUFFRixFQUFFLEVBQUVtRCxFQUFFLEdBQUc1UyxLQUFLLFFBQVEsQ0FBQzJQLEVBQUUsRUFBRUYsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxTQUFTLENBQUMyUCxFQUFFLEVBQUVGLEVBQUUsR0FBR21ELEVBQUUsR0FBRzVTLEtBQUssZUFBZSxDQUFDMlAsRUFBRSxFQUFFRixFQUFFLEdBQUdtRCxFQUFFLEVBQUU1UyxLQUFLLGVBQWUsQ0FBQzJQLEVBQUUsRUFBRUYsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxTQUFTLENBQUMyUCxFQUFFLEVBQUVGLEVBQUUsRUFBRW1ELEVBQUUsR0FBRzVTLEtBQUssWUFBWSxDQUFDMlAsRUFBRSxFQUFFRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLE9BQU8sQ0FBQzJQLEVBQUUsRUFBRUYsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxvQkFBb0IsQ0FBQzJQLEVBQUUsRUFBRUYsRUFBRSxHQUFHbUQsRUFBRSxHQUFHNVMsS0FBSyxTQUFTLENBQUMyUCxFQUFFLEVBQUVGLEVBQUUsR0FBR21ELEVBQUUsRUFBRTVTLEtBQUssU0FBUyxDQUFDMlAsRUFBRSxFQUFFRixFQUFFLEVBQUVtRCxFQUFFLEdBQUc1UyxLQUFLLGFBQWEsQ0FBQzJQLEVBQUUsRUFBRUYsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxXQUFXLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsRUFBRW1ELEVBQUUsRUFBRTVTLEtBQUssZUFBZSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEdBQUdtRCxFQUFFLEdBQUc1UyxLQUFLLFNBQVMsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxHQUFHbUQsRUFBRSxFQUFFNVMsS0FBSyxnQkFBZ0IsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxFQUFFbUQsRUFBRSxHQUFHNVMsS0FBSyxTQUFTLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsRUFBRW1ELEVBQUUsRUFBRTVTLEtBQUssVUFBVSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLHFCQUFxQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEdBQUdtRCxFQUFFLEdBQUc1UyxLQUFLLGVBQWUsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxHQUFHbUQsRUFBRSxFQUFFNVMsS0FBSyxnQkFBZ0IsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxvQkFBb0IsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxFQUFFbUQsRUFBRSxHQUFHNVMsS0FBSyxlQUFlLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsRUFBRW1ELEVBQUUsRUFBRTVTLEtBQUssVUFBVSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLHFCQUFxQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEdBQUdtRCxFQUFFLEdBQUc1UyxLQUFLLGVBQWUsQ0FBQzJQLEVB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R0YsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxZQUFZLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsRUFBRW1ELEVBQUUsR0FBRzVTLEtBQUssUUFBUSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLG1CQUFtQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEdBQUdtRCxFQUFFLEdBQUc1UyxLQUFLLFFBQVEsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxHQUFHbUQsRUFBRSxFQUFFNVMsS0FBSyxjQUFjLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsRUFBRW1ELEVBQUUsR0FBRzVTLEtBQUssYUFBYSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLFFBQVEsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxZQUFZLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsR0FBR21ELEVBQUUsR0FBRzVTLEtBQUssYUFBYSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEdBQUdtRCxFQUFFLEVBQUU1UyxLQUFLLGdCQUFnQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEdBQUc1UyxLQUFLLGtCQUFrQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLFFBQVEsQ0FBQzJQLEVBQUUsR0FBR0YsRUFBRSxFQUFFbUQsRUFBRSxFQUFFNVMsS0FBSyxZQUFZLENBQUMyUCxFQUFFLEdBQUdGLEVBQUUsR0FBR21ELEVBQUUsR0FBRzVTLEtBQUssYUFBYSxDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEdBQUdtRCxFQUFFLEVBQUU1UyxLQUFLLGlCQUFpQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEdBQUc1UyxLQUFLLGtCQUFrQixDQUFDMlAsRUFBRSxHQUFHRixFQUFFLEVBQUVtRCxFQUFFLEVBQUU1UyxLQUFLLFFBQVEsQ0FBQzJQLEVBQUUsR0FBR0YsRUFB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NkosR0FoTUQsSUFtTWI2cEcsRUFBT0MsWUF2TEgsTUF3TE5ELEVBQU8xekcsU0FBU3lKLEdBcE1ELElBc01iaXFHLEVBQU9DLFlBeExILE1BeUxORCxFQUFPMXpHLFNBQVN5SixHQXZNRCxJQXlNYmlxRyxFQUFPMXpHLFNBQVM2SixJQUFNa3JHLEdBQXNCckIsRUFBTzF6RyxTQUFTeUosSUFBTXNyRyxHQUNwRTk2RyxFQUFPdEosS0FBSyxVQUFXLENBQUNrWixFQUFHNnBHLEVBQU8xekcsU0FBUzZKLEVBQUdKLEVBQUdpcUcsRUFBTzF6RyxTQUFTeUosUyIsImZpbGUiOiJidW5kbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogRXhwb3NlIGBCYWNrb2ZmYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IEJhY2tvZmY7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBiYWNrb2ZmIHRpbWVyIHdpdGggYG9wdHNgLlxuICpcbiAqIC0gYG1pbmAgaW5pdGlhbCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBbMTAwXVxuICogLSBgbWF4YCBtYXggdGltZW91dCBbMTAwMDBdXG4gKiAtIGBqaXR0ZXJgIFswXVxuICogLSBgZmFjdG9yYCBbMl1cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0c1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBCYWNrb2ZmKG9wdHMpIHtcbiAgb3B0cyA9IG9wdHMgfHwge307XG4gIHRoaXMubXMgPSBvcHRzLm1pbiB8fCAxMDA7XG4gIHRoaXMubWF4ID0gb3B0cy5tYXggfHwgMTAwMDA7XG4gIHRoaXMuZmFjdG9yID0gb3B0cy5mYWN0b3IgfHwgMjtcbiAgdGhpcy5qaXR0ZXIgPSBvcHRzLmppdHRlciA+IDAgJiYgb3B0cy5qaXR0ZXIgPD0gMSA/IG9wdHMuaml0dGVyIDogMDtcbiAgdGhpcy5hdHRlbXB0cyA9IDA7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBiYWNrb2ZmIGR1cmF0aW9uLlxuICpcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuQmFja29mZi5wcm90b3R5cGUuZHVyYXRpb24gPSBmdW5jdGlvbigpe1xuICB2YXIgbXMgPSB0aGlzLm1zICogTWF0aC5wb3codGhpcy5mYWN0b3IsIHRoaXMuYXR0ZW1wdHMrKyk7XG4gIGlmICh0aGlzLmppdHRlcikge1xuICAgIHZhciByYW5kID0gIE1hdGgucmFuZG9tKCk7XG4gICAgdmFyIGRldmlhdGlvbiA9IE1hdGguZmxvb3IocmFuZCAqIHRoaXMuaml0dGVyICogbXMpO1xuICAgIG1zID0gKE1hdGguZmxvb3IocmFuZCAqIDEwKSAmIDEpID09IDAgID8gbXMgLSBkZXZpYXRpb24gOiBtcyArIGRldmlhdGlvbjtcbiAgfVxuICByZXR1cm4gTWF0aC5taW4obXMsIHRoaXMubWF4KSB8IDA7XG59O1xuXG4vKipcbiAqIFJlc2V0IHRoZSBudW1iZXIgb2YgYXR0ZW1wdHMuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5CYWNrb2ZmLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuYXR0ZW1wdHMgPSAwO1xufTtcblxuLyoqXG4gKiBTZXQgdGhlIG1pbmltdW0gZHVyYXRpb25cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkJhY2tvZmYucHJvdG90eXBlLnNldE1pbiA9IGZ1bmN0aW9uKG1pbil7XG4gIHRoaXMubXMgPSBtaW47XG59O1xuXG4vKipcbiAqIFNldCB0aGUgbWF4aW11bSBkdXJhdGlvblxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuQmFja29mZi5wcm90b3R5cGUuc2V0TWF4ID0gZnVuY3Rpb24obWF4KXtcbiAgdGhpcy5tYXggPSBtYXg7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgaml0dGVyXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5CYWNrb2ZmLnByb3RvdHlwZS5zZXRKaXR0ZXIgPSBmdW5jdGlvbihqaXR0ZXIpe1xuICB0aGlzLmppdHRlciA9IGppdHRlcjtcbn07XG5cbiIsIi8qXG4gKiBiYXNlNjQtYXJyYXlidWZmZXJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWtsYXN2aC9iYXNlNjQtYXJyYXlidWZmZXJcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgTmlrbGFzIHZvbiBIZXJ0emVuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKi9cbihmdW5jdGlvbihjaGFycyl7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIGV4cG9ydHMuZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHtcbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShhcnJheWJ1ZmZlciksXG4gICAgaSwgbGVuID0gYnl0ZXMubGVuZ3RoLCBiYXNlNjQgPSBcIlwiO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSs9Mykge1xuICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2ldID4+IDJdO1xuICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaV0gJiAzKSA8PCA0KSB8IChieXRlc1tpICsgMV0gPj4gNCldO1xuICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07XG4gICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaSArIDJdICYgNjNdO1xuICAgIH1cblxuICAgIGlmICgobGVuICUgMykgPT09IDIpIHtcbiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgXCI9XCI7XG4gICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7XG4gICAgICBiYXNlNjQgPSBiYXNlNjQuc3Vic3RyaW5nKDAsIGJhc2U2NC5sZW5ndGggLSAyKSArIFwiPT1cIjtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFzZTY0O1xuICB9O1xuXG4gIGV4cG9ydHMuZGVjb2RlID0gIGZ1bmN0aW9uKGJhc2U2NCkge1xuICAgIHZhciBidWZmZXJMZW5ndGggPSBiYXNlNjQubGVuZ3RoICogMC43NSxcbiAgICBsZW4gPSBiYXNlNjQubGVuZ3RoLCBpLCBwID0gMCxcbiAgICBlbmNvZGVkMSwgZW5jb2RlZDIsIGVuY29kZWQzLCBlbmNvZGVkNDtcblxuICAgIGlmIChiYXNlNjRbYmFzZTY0Lmxlbmd0aCAtIDFdID09PSBcIj1cIikge1xuICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICBpZiAoYmFzZTY0W2Jhc2U2NC5sZW5ndGggLSAyXSA9PT0gXCI9XCIpIHtcbiAgICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFycmF5YnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlckxlbmd0aCksXG4gICAgYnl0ZXMgPSBuZXcgVWludDhBcnJheShhcnJheWJ1ZmZlcik7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKz00KSB7XG4gICAgICBlbmNvZGVkMSA9IGNoYXJzLmluZGV4T2YoYmFzZTY0W2ldKTtcbiAgICAgIGVuY29kZWQyID0gY2hhcnMuaW5kZXhPZihiYXNlNjRbaSsxXSk7XG4gICAgICBlbmNvZGVkMyA9IGNoYXJzLmluZGV4T2YoYmFzZTY0W2krMl0pO1xuICAgICAgZW5jb2RlZDQgPSBjaGFycy5pbmRleE9mKGJhc2U2NFtpKzNdKTtcblxuICAgICAgYnl0ZXNbcCsrXSA9IChlbmNvZGVkMSA8PCAyKSB8IChlbmNvZGVkMiA+PiA0KTtcbiAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQyICYgMTUpIDw8IDQpIHwgKGVuY29kZWQzID4+IDIpO1xuICAgICAgYnl0ZXNbcCsrXSA9ICgoZW5jb2RlZDMgJiAzKSA8PCA2KSB8IChlbmNvZGVkNCAmIDYzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlidWZmZXI7XG4gIH07XG59KShcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIik7XG4iLCJcclxuLyoqXHJcbiAqIEV4cG9zZSBgRW1pdHRlcmAuXHJcbiAqL1xyXG5cclxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSBFbWl0dGVyO1xyXG59XHJcblxyXG4vKipcclxuICogSW5pdGlhbGl6ZSBhIG5ldyBgRW1pdHRlcmAuXHJcbiAqXHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gRW1pdHRlcihvYmopIHtcclxuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBNaXhpbiB0aGUgZW1pdHRlciBwcm9wZXJ0aWVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXHJcbiAqIEByZXR1cm4ge09iamVjdH1cclxuICogQGFwaSBwcml2YXRlXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gbWl4aW4ob2JqKSB7XHJcbiAgZm9yICh2YXIga2V5IGluIEVtaXR0ZXIucHJvdG90eXBlKSB7XHJcbiAgICBvYmpba2V5XSA9IEVtaXR0ZXIucHJvdG90eXBlW2tleV07XHJcbiAgfVxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBMaXN0ZW4gb24gdGhlIGdpdmVuIGBldmVudGAgd2l0aCBgZm5gLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cclxuICogQHJldHVybiB7RW1pdHRlcn1cclxuICogQGFwaSBwdWJsaWNcclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5vbiA9XHJcbkVtaXR0ZXIucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xyXG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcclxuICAodGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XSA9IHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gfHwgW10pXHJcbiAgICAucHVzaChmbik7XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogQWRkcyBhbiBgZXZlbnRgIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBpbnZva2VkIGEgc2luZ2xlXHJcbiAqIHRpbWUgdGhlbiBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxyXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbihldmVudCwgZm4pe1xyXG4gIGZ1bmN0aW9uIG9uKCkge1xyXG4gICAgdGhpcy5vZmYoZXZlbnQsIG9uKTtcclxuICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgfVxyXG5cclxuICBvbi5mbiA9IGZuO1xyXG4gIHRoaXMub24oZXZlbnQsIG9uKTtcclxuICByZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGdpdmVuIGNhbGxiYWNrIGZvciBgZXZlbnRgIG9yIGFsbFxyXG4gKiByZWdpc3RlcmVkIGNhbGxiYWNrcy5cclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXHJcbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUub2ZmID1cclxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxyXG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxyXG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcblxyXG4gIC8vIGFsbFxyXG4gIGlmICgwID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgIHRoaXMuX2NhbGxiYWNrcyA9IHt9O1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyBzcGVjaWZpYyBldmVudFxyXG4gIHZhciBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xyXG4gIGlmICghY2FsbGJhY2tzKSByZXR1cm4gdGhpcztcclxuXHJcbiAgLy8gcmVtb3ZlIGFsbCBoYW5kbGVyc1xyXG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyByZW1vdmUgc3BlY2lmaWMgaGFuZGxlclxyXG4gIHZhciBjYjtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgY2IgPSBjYWxsYmFja3NbaV07XHJcbiAgICBpZiAoY2IgPT09IGZuIHx8IGNiLmZuID09PSBmbikge1xyXG4gICAgICBjYWxsYmFja3Muc3BsaWNlKGksIDEpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlbW92ZSBldmVudCBzcGVjaWZpYyBhcnJheXMgZm9yIGV2ZW50IHR5cGVzIHRoYXQgbm9cclxuICAvLyBvbmUgaXMgc3Vic2NyaWJlZCBmb3IgdG8gYXZvaWQgbWVtb3J5IGxlYWsuXHJcbiAgaWYgKGNhbGxiYWNrcy5sZW5ndGggPT09IDApIHtcclxuICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogRW1pdCBgZXZlbnRgIHdpdGggdGhlIGdpdmVuIGFyZ3MuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcGFyYW0ge01peGVkfSAuLi5cclxuICogQHJldHVybiB7RW1pdHRlcn1cclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xyXG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcclxuXHJcbiAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpXHJcbiAgICAsIGNhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF07XHJcblxyXG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcclxuICB9XHJcblxyXG4gIGlmIChjYWxsYmFja3MpIHtcclxuICAgIGNhbGxiYWNrcyA9IGNhbGxiYWNrcy5zbGljZSgwKTtcclxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBjYWxsYmFja3MubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcclxuICAgICAgY2FsbGJhY2tzW2ldLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0dXJuIGFycmF5IG9mIGNhbGxiYWNrcyBmb3IgYGV2ZW50YC5cclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XHJcbiAqIEByZXR1cm4ge0FycmF5fVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcbiAgcmV0dXJuIHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gfHwgW107XHJcbn07XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhpcyBlbWl0dGVyIGhhcyBgZXZlbnRgIGhhbmRsZXJzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHJldHVybiB7Qm9vbGVhbn1cclxuICogQGFwaSBwdWJsaWNcclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnMgPSBmdW5jdGlvbihldmVudCl7XHJcbiAgcmV0dXJuICEhIHRoaXMubGlzdGVuZXJzKGV2ZW50KS5sZW5ndGg7XHJcbn07XHJcbiIsIi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIHdlYiBicm93c2VyIGltcGxlbWVudGF0aW9uIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuZXhwb3J0cy5zYXZlID0gc2F2ZTtcbmV4cG9ydHMubG9hZCA9IGxvYWQ7XG5leHBvcnRzLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbmV4cG9ydHMuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuZXhwb3J0cy5kZXN0cm95ID0gKCgpID0+IHtcblx0bGV0IHdhcm5lZCA9IGZhbHNlO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKCF3YXJuZWQpIHtcblx0XHRcdHdhcm5lZCA9IHRydWU7XG5cdFx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0XHR9XG5cdH07XG59KSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcblx0JyMwMDAwQ0MnLFxuXHQnIzAwMDBGRicsXG5cdCcjMDAzM0NDJyxcblx0JyMwMDMzRkYnLFxuXHQnIzAwNjZDQycsXG5cdCcjMDA2NkZGJyxcblx0JyMwMDk5Q0MnLFxuXHQnIzAwOTlGRicsXG5cdCcjMDBDQzAwJyxcblx0JyMwMENDMzMnLFxuXHQnIzAwQ0M2NicsXG5cdCcjMDBDQzk5Jyxcblx0JyMwMENDQ0MnLFxuXHQnIzAwQ0NGRicsXG5cdCcjMzMwMENDJyxcblx0JyMzMzAwRkYnLFxuXHQnIzMzMzNDQycsXG5cdCcjMzMzM0ZGJyxcblx0JyMzMzY2Q0MnLFxuXHQnIzMzNjZGRicsXG5cdCcjMzM5OUNDJyxcblx0JyMzMzk5RkYnLFxuXHQnIzMzQ0MwMCcsXG5cdCcjMzNDQzMzJyxcblx0JyMzM0NDNjYnLFxuXHQnIzMzQ0M5OScsXG5cdCcjMzNDQ0NDJyxcblx0JyMzM0NDRkYnLFxuXHQnIzY2MDBDQycsXG5cdCcjNjYwMEZGJyxcblx0JyM2NjMzQ0MnLFxuXHQnIzY2MzNGRicsXG5cdCcjNjZDQzAwJyxcblx0JyM2NkNDMzMnLFxuXHQnIzk5MDBDQycsXG5cdCcjOTkwMEZGJyxcblx0JyM5OTMzQ0MnLFxuXHQnIzk5MzNGRicsXG5cdCcjOTlDQzAwJyxcblx0JyM5OUNDMzMnLFxuXHQnI0NDMDAwMCcsXG5cdCcjQ0MwMDMzJyxcblx0JyNDQzAwNjYnLFxuXHQnI0NDMDA5OScsXG5cdCcjQ0MwMENDJyxcblx0JyNDQzAwRkYnLFxuXHQnI0NDMzMwMCcsXG5cdCcjQ0MzMzMzJyxcblx0JyNDQzMzNjYnLFxuXHQnI0NDMzM5OScsXG5cdCcjQ0MzM0NDJyxcblx0JyNDQzMzRkYnLFxuXHQnI0NDNjYwMCcsXG5cdCcjQ0M2NjMzJyxcblx0JyNDQzk5MDAnLFxuXHQnI0NDOTkzMycsXG5cdCcjQ0NDQzAwJyxcblx0JyNDQ0NDMzMnLFxuXHQnI0ZGMDAwMCcsXG5cdCcjRkYwMDMzJyxcblx0JyNGRjAwNjYnLFxuXHQnI0ZGMDA5OScsXG5cdCcjRkYwMENDJyxcblx0JyNGRjAwRkYnLFxuXHQnI0ZGMzMwMCcsXG5cdCcjRkYzMzMzJyxcblx0JyNGRjMzNjYnLFxuXHQnI0ZGMzM5OScsXG5cdCcjRkYzM0NDJyxcblx0JyNGRjMzRkYnLFxuXHQnI0ZGNjYwMCcsXG5cdCcjRkY2NjMzJyxcblx0JyNGRjk5MDAnLFxuXHQnI0ZGOTkzMycsXG5cdCcjRkZDQzAwJyxcblx0JyNGRkNDMzMnXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcblx0Ly8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2Vcblx0Ly8gZXhwbGljaXRseVxuXHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgKHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgZG8gbm90IHN1cHBvcnQgY29sb3JzLlxuXHRpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFwvKFxcZCspLykpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBJcyB3ZWJraXQ/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2NDU5NjA2LzM3Njc3M1xuXHQvLyBkb2N1bWVudCBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL3B1bGwvMTYzMlxuXHRyZXR1cm4gKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSkgfHxcblx0XHQvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG5cdFx0KHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8ICh3aW5kb3cuY29uc29sZS5leGNlcHRpb24gJiYgd2luZG93LmNvbnNvbGUudGFibGUpKSkgfHxcblx0XHQvLyBJcyBmaXJlZm94ID49IHYzMT9cblx0XHQvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSAmJiBwYXJzZUludChSZWdFeHAuJDEsIDEwKSA+PSAzMSkgfHxcblx0XHQvLyBEb3VibGUgY2hlY2sgd2Via2l0IGluIHVzZXJBZ2VudCBqdXN0IGluIGNhc2Ugd2UgYXJlIGluIGEgd29ya2VyXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFxcLyhcXGQrKS8pKTtcbn1cblxuLyoqXG4gKiBDb2xvcml6ZSBsb2cgYXJndW1lbnRzIGlmIGVuYWJsZWQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBmb3JtYXRBcmdzKGFyZ3MpIHtcblx0YXJnc1swXSA9ICh0aGlzLnVzZUNvbG9ycyA/ICclYycgOiAnJykgK1xuXHRcdHRoaXMubmFtZXNwYWNlICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnICVjJyA6ICcgJykgK1xuXHRcdGFyZ3NbMF0gK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICclYyAnIDogJyAnKSArXG5cdFx0JysnICsgbW9kdWxlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKTtcblxuXHRpZiAoIXRoaXMudXNlQ29sb3JzKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG5cdGFyZ3Muc3BsaWNlKDEsIDAsIGMsICdjb2xvcjogaW5oZXJpdCcpO1xuXG5cdC8vIFRoZSBmaW5hbCBcIiVjXCIgaXMgc29tZXdoYXQgdHJpY2t5LCBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG90aGVyXG5cdC8vIGFyZ3VtZW50cyBwYXNzZWQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgJWMsIHNvIHdlIG5lZWQgdG9cblx0Ly8gZmlndXJlIG91dCB0aGUgY29ycmVjdCBpbmRleCB0byBpbnNlcnQgdGhlIENTUyBpbnRvXG5cdGxldCBpbmRleCA9IDA7XG5cdGxldCBsYXN0QyA9IDA7XG5cdGFyZ3NbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLCBtYXRjaCA9PiB7XG5cdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGluZGV4Kys7XG5cdFx0aWYgKG1hdGNoID09PSAnJWMnKSB7XG5cdFx0XHQvLyBXZSBvbmx5IGFyZSBpbnRlcmVzdGVkIGluIHRoZSAqbGFzdCogJWNcblx0XHRcdC8vICh0aGUgdXNlciBtYXkgaGF2ZSBwcm92aWRlZCB0aGVpciBvd24pXG5cdFx0XHRsYXN0QyA9IGluZGV4O1xuXHRcdH1cblx0fSk7XG5cblx0YXJncy5zcGxpY2UobGFzdEMsIDAsIGMpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYGNvbnNvbGUuZGVidWcoKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmRlYnVnYCBpcyBub3QgYSBcImZ1bmN0aW9uXCIuXG4gKiBJZiBgY29uc29sZS5kZWJ1Z2AgaXMgbm90IGF2YWlsYWJsZSwgZmFsbHMgYmFja1xuICogdG8gYGNvbnNvbGUubG9nYC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5leHBvcnRzLmxvZyA9IGNvbnNvbGUuZGVidWcgfHwgY29uc29sZS5sb2cgfHwgKCgpID0+IHt9KTtcblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuXHR0cnkge1xuXHRcdGlmIChuYW1lc3BhY2VzKSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2Uuc2V0SXRlbSgnZGVidWcnLCBuYW1lc3BhY2VzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG4vKipcbiAqIExvYWQgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ30gcmV0dXJucyB0aGUgcHJldmlvdXNseSBwZXJzaXN0ZWQgZGVidWcgbW9kZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBsb2FkKCkge1xuXHRsZXQgcjtcblx0dHJ5IHtcblx0XHRyID0gZXhwb3J0cy5zdG9yYWdlLmdldEl0ZW0oJ2RlYnVnJyk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG5cblx0Ly8gSWYgZGVidWcgaXNuJ3Qgc2V0IGluIExTLCBhbmQgd2UncmUgaW4gRWxlY3Ryb24sIHRyeSB0byBsb2FkICRERUJVR1xuXHRpZiAoIXIgJiYgdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICdlbnYnIGluIHByb2Nlc3MpIHtcblx0XHRyID0gcHJvY2Vzcy5lbnYuREVCVUc7XG5cdH1cblxuXHRyZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBMb2NhbHN0b3JhZ2UgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBsb2NhbHN0b3JhZ2UuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzYWZhcmkgdGhyb3dzXG4gKiB3aGVuIGEgdXNlciBkaXNhYmxlcyBjb29raWVzL2xvY2Fsc3RvcmFnZVxuICogYW5kIHlvdSBhdHRlbXB0IHRvIGFjY2VzcyBpdC5cbiAqXG4gKiBAcmV0dXJuIHtMb2NhbFN0b3JhZ2V9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb2NhbHN0b3JhZ2UoKSB7XG5cdHRyeSB7XG5cdFx0Ly8gVFZNTEtpdCAoQXBwbGUgVFYgSlMgUnVudGltZSkgZG9lcyBub3QgaGF2ZSBhIHdpbmRvdyBvYmplY3QsIGp1c3QgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dFxuXHRcdC8vIFRoZSBCcm93c2VyIGFsc28gaGFzIGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHQuXG5cdFx0cmV0dXJuIGxvY2FsU3RvcmFnZTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2NvbW1vbicpKGV4cG9ydHMpO1xuXG5jb25zdCB7Zm9ybWF0dGVyc30gPSBtb2R1bGUuZXhwb3J0cztcblxuLyoqXG4gKiBNYXAgJWogdG8gYEpTT04uc3RyaW5naWZ5KClgLCBzaW5jZSBubyBXZWIgSW5zcGVjdG9ycyBkbyB0aGF0IGJ5IGRlZmF1bHQuXG4gKi9cblxuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24gKHYpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodik7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmV0dXJuICdbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogJyArIGVycm9yLm1lc3NhZ2U7XG5cdH1cbn07XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5mdW5jdGlvbiBzZXR1cChlbnYpIHtcblx0Y3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5jb2VyY2UgPSBjb2VyY2U7XG5cdGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGUgPSBlbmFibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmUoJ21zJyk7XG5cdGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGZvciB0aGUgZGVidWcgaW5zdGFuY2UgdG8gYmUgY29sb3JlZFxuXHQqIEByZXR1cm4ge051bWJlcnxTdHJpbmd9IEFuIEFOU0kgY29sb3IgY29kZSBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZVxuXHQqIEBhcGkgcHJpdmF0ZVxuXHQqL1xuXHRmdW5jdGlvbiBzZWxlY3RDb2xvcihuYW1lc3BhY2UpIHtcblx0XHRsZXQgaGFzaCA9IDA7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG5hbWVzcGFjZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0aGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2gpICsgbmFtZXNwYWNlLmNoYXJDb2RlQXQoaSk7XG5cdFx0XHRoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuXHRcdH1cblxuXHRcdHJldHVybiBjcmVhdGVEZWJ1Zy5jb2xvcnNbTWF0aC5hYnMoaGFzaCkgJSBjcmVhdGVEZWJ1Zy5jb2xvcnMubGVuZ3RoXTtcblx0fVxuXHRjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvciA9IHNlbGVjdENvbG9yO1xuXG5cdC8qKlxuXHQqIENyZWF0ZSBhIGRlYnVnZ2VyIHdpdGggdGhlIGdpdmVuIGBuYW1lc3BhY2VgLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZVxuXHQqIEByZXR1cm4ge0Z1bmN0aW9ufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGNyZWF0ZURlYnVnKG5hbWVzcGFjZSkge1xuXHRcdGxldCBwcmV2VGltZTtcblx0XHRsZXQgZW5hYmxlT3ZlcnJpZGUgPSBudWxsO1xuXG5cdFx0ZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuXHRcdFx0Ly8gRGlzYWJsZWQ/XG5cdFx0XHRpZiAoIWRlYnVnLmVuYWJsZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBzZWxmID0gZGVidWc7XG5cblx0XHRcdC8vIFNldCBgZGlmZmAgdGltZXN0YW1wXG5cdFx0XHRjb25zdCBjdXJyID0gTnVtYmVyKG5ldyBEYXRlKCkpO1xuXHRcdFx0Y29uc3QgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuXHRcdFx0c2VsZi5kaWZmID0gbXM7XG5cdFx0XHRzZWxmLnByZXYgPSBwcmV2VGltZTtcblx0XHRcdHNlbGYuY3VyciA9IGN1cnI7XG5cdFx0XHRwcmV2VGltZSA9IGN1cnI7XG5cblx0XHRcdGFyZ3NbMF0gPSBjcmVhdGVEZWJ1Zy5jb2VyY2UoYXJnc1swXSk7XG5cblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0Ly8gQW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJU9cblx0XHRcdFx0YXJncy51bnNoaWZ0KCclTycpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuXHRcdFx0bGV0IGluZGV4ID0gMDtcblx0XHRcdGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG5cdFx0XHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0XHRcdHJldHVybiAnJSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5kZXgrKztcblx0XHRcdFx0Y29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRGVidWcuZm9ybWF0dGVyc1tmb3JtYXRdO1xuXHRcdFx0XHRpZiAodHlwZW9mIGZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNvbnN0IHZhbCA9IGFyZ3NbaW5kZXhdO1xuXHRcdFx0XHRcdG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZiwgdmFsKTtcblxuXHRcdFx0XHRcdC8vIE5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcblx0XHRcdFx0XHRhcmdzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0aW5kZXgtLTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQXBwbHkgZW52LXNwZWNpZmljIGZvcm1hdHRpbmcgKGNvbG9ycywgZXRjLilcblx0XHRcdGNyZWF0ZURlYnVnLmZvcm1hdEFyZ3MuY2FsbChzZWxmLCBhcmdzKTtcblxuXHRcdFx0Y29uc3QgbG9nRm4gPSBzZWxmLmxvZyB8fCBjcmVhdGVEZWJ1Zy5sb2c7XG5cdFx0XHRsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcblx0XHR9XG5cblx0XHRkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cdFx0ZGVidWcudXNlQ29sb3JzID0gY3JlYXRlRGVidWcudXNlQ29sb3JzKCk7XG5cdFx0ZGVidWcuY29sb3IgPSBjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvcihuYW1lc3BhY2UpO1xuXHRcdGRlYnVnLmV4dGVuZCA9IGV4dGVuZDtcblx0XHRkZWJ1Zy5kZXN0cm95ID0gY3JlYXRlRGVidWcuZGVzdHJveTsgLy8gWFhYIFRlbXBvcmFyeS4gV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG5cblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVidWcsICdlbmFibGVkJywge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG5cdFx0XHRnZXQ6ICgpID0+IGVuYWJsZU92ZXJyaWRlID09PSBudWxsID8gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpIDogZW5hYmxlT3ZlcnJpZGUsXG5cdFx0XHRzZXQ6IHYgPT4ge1xuXHRcdFx0XHRlbmFibGVPdmVycmlkZSA9IHY7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBFbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuXHRcdGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRlYnVnO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zdWJzdHIoMSkgKyAnJCcpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG5cdCpcblx0KiBAcmV0dXJuIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBkaXNhYmxlKCkge1xuXHRcdGNvbnN0IG5hbWVzcGFjZXMgPSBbXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5uYW1lcy5tYXAodG9OYW1lc3BhY2UpLFxuXHRcdFx0Li4uY3JlYXRlRGVidWcuc2tpcHMubWFwKHRvTmFtZXNwYWNlKS5tYXAobmFtZXNwYWNlID0+ICctJyArIG5hbWVzcGFjZSlcblx0XHRdLmpvaW4oJywnKTtcblx0XHRjcmVhdGVEZWJ1Zy5lbmFibGUoJycpO1xuXHRcdHJldHVybiBuYW1lc3BhY2VzO1xuXHR9XG5cblx0LyoqXG5cdCogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVcblx0KiBAcmV0dXJuIHtCb29sZWFufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuXHRcdGlmIChuYW1lW25hbWUubGVuZ3RoIC0gMV0gPT09ICcqJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0bGV0IGk7XG5cdFx0bGV0IGxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGxlbiA9IGNyZWF0ZURlYnVnLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoY3JlYXRlRGVidWcuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcubmFtZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5uYW1lc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQqIENvbnZlcnQgcmVnZXhwIHRvIG5hbWVzcGFjZVxuXHQqXG5cdCogQHBhcmFtIHtSZWdFeHB9IHJlZ3hlcFxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHRvTmFtZXNwYWNlKHJlZ2V4cCkge1xuXHRcdHJldHVybiByZWdleHAudG9TdHJpbmcoKVxuXHRcdFx0LnN1YnN0cmluZygyLCByZWdleHAudG9TdHJpbmcoKS5sZW5ndGggLSAyKVxuXHRcdFx0LnJlcGxhY2UoL1xcLlxcKlxcPyQvLCAnKicpO1xuXHR9XG5cblx0LyoqXG5cdCogQ29lcmNlIGB2YWxgLlxuXHQqXG5cdCogQHBhcmFtIHtNaXhlZH0gdmFsXG5cdCogQHJldHVybiB7TWl4ZWR9XG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcblx0XHRpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdHJldHVybiB2YWwuc3RhY2sgfHwgdmFsLm1lc3NhZ2U7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cblxuXHQvKipcblx0KiBYWFggRE8gTk9UIFVTRS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBzdHViIGZ1bmN0aW9uLlxuXHQqIFhYWCBJdCBXSUxMIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblx0Ki9cblx0ZnVuY3Rpb24gZGVzdHJveSgpIHtcblx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0fVxuXG5cdGNyZWF0ZURlYnVnLmVuYWJsZShjcmVhdGVEZWJ1Zy5sb2FkKCkpO1xuXG5cdHJldHVybiBjcmVhdGVEZWJ1Zztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXR1cDtcbiIsIm1vZHVsZS5leHBvcnRzID0gKCgpID0+IHtcbiAgaWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKTtcbiAgfVxufSkoKTtcbiIsImNvbnN0IFNvY2tldCA9IHJlcXVpcmUoXCIuL3NvY2tldFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSAodXJpLCBvcHRzKSA9PiBuZXcgU29ja2V0KHVyaSwgb3B0cyk7XG5cbi8qKlxuICogRXhwb3NlIGRlcHMgZm9yIGxlZ2FjeSBjb21wYXRpYmlsaXR5XG4gKiBhbmQgc3RhbmRhbG9uZSBicm93c2VyIGFjY2Vzcy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cy5Tb2NrZXQgPSBTb2NrZXQ7XG5tb2R1bGUuZXhwb3J0cy5wcm90b2NvbCA9IFNvY2tldC5wcm90b2NvbDsgLy8gdGhpcyBpcyBhbiBpbnRcbm1vZHVsZS5leHBvcnRzLlRyYW5zcG9ydCA9IHJlcXVpcmUoXCIuL3RyYW5zcG9ydFwiKTtcbm1vZHVsZS5leHBvcnRzLnRyYW5zcG9ydHMgPSByZXF1aXJlKFwiLi90cmFuc3BvcnRzL2luZGV4XCIpO1xubW9kdWxlLmV4cG9ydHMucGFyc2VyID0gcmVxdWlyZShcImVuZ2luZS5pby1wYXJzZXJcIik7XG4iLCJjb25zdCB0cmFuc3BvcnRzID0gcmVxdWlyZShcIi4vdHJhbnNwb3J0cy9pbmRleFwiKTtcbmNvbnN0IEVtaXR0ZXIgPSByZXF1aXJlKFwiY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcImVuZ2luZS5pby1jbGllbnQ6c29ja2V0XCIpO1xuY29uc3QgcGFyc2VyID0gcmVxdWlyZShcImVuZ2luZS5pby1wYXJzZXJcIik7XG5jb25zdCBwYXJzZXVyaSA9IHJlcXVpcmUoXCJwYXJzZXVyaVwiKTtcbmNvbnN0IHBhcnNlcXMgPSByZXF1aXJlKFwicGFyc2Vxc1wiKTtcblxuY2xhc3MgU29ja2V0IGV4dGVuZHMgRW1pdHRlciB7XG4gIC8qKlxuICAgKiBTb2NrZXQgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gdXJpIG9yIG9wdGlvbnNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQGFwaSBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHVyaSwgb3B0cyA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmICh1cmkgJiYgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHVyaSkge1xuICAgICAgb3B0cyA9IHVyaTtcbiAgICAgIHVyaSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHVyaSkge1xuICAgICAgdXJpID0gcGFyc2V1cmkodXJpKTtcbiAgICAgIG9wdHMuaG9zdG5hbWUgPSB1cmkuaG9zdDtcbiAgICAgIG9wdHMuc2VjdXJlID0gdXJpLnByb3RvY29sID09PSBcImh0dHBzXCIgfHwgdXJpLnByb3RvY29sID09PSBcIndzc1wiO1xuICAgICAgb3B0cy5wb3J0ID0gdXJpLnBvcnQ7XG4gICAgICBpZiAodXJpLnF1ZXJ5KSBvcHRzLnF1ZXJ5ID0gdXJpLnF1ZXJ5O1xuICAgIH0gZWxzZSBpZiAob3B0cy5ob3N0KSB7XG4gICAgICBvcHRzLmhvc3RuYW1lID0gcGFyc2V1cmkob3B0cy5ob3N0KS5ob3N0O1xuICAgIH1cblxuICAgIHRoaXMuc2VjdXJlID1cbiAgICAgIG51bGwgIT0gb3B0cy5zZWN1cmVcbiAgICAgICAgPyBvcHRzLnNlY3VyZVxuICAgICAgICA6IHR5cGVvZiBsb2NhdGlvbiAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcImh0dHBzOlwiID09PSBsb2NhdGlvbi5wcm90b2NvbDtcblxuICAgIGlmIChvcHRzLmhvc3RuYW1lICYmICFvcHRzLnBvcnQpIHtcbiAgICAgIC8vIGlmIG5vIHBvcnQgaXMgc3BlY2lmaWVkIG1hbnVhbGx5LCB1c2UgdGhlIHByb3RvY29sIGRlZmF1bHRcbiAgICAgIG9wdHMucG9ydCA9IHRoaXMuc2VjdXJlID8gXCI0NDNcIiA6IFwiODBcIjtcbiAgICB9XG5cbiAgICB0aGlzLmhvc3RuYW1lID1cbiAgICAgIG9wdHMuaG9zdG5hbWUgfHxcbiAgICAgICh0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIgPyBsb2NhdGlvbi5ob3N0bmFtZSA6IFwibG9jYWxob3N0XCIpO1xuICAgIHRoaXMucG9ydCA9XG4gICAgICBvcHRzLnBvcnQgfHxcbiAgICAgICh0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIgJiYgbG9jYXRpb24ucG9ydFxuICAgICAgICA/IGxvY2F0aW9uLnBvcnRcbiAgICAgICAgOiB0aGlzLnNlY3VyZVxuICAgICAgICA/IDQ0M1xuICAgICAgICA6IDgwKTtcblxuICAgIHRoaXMudHJhbnNwb3J0cyA9IG9wdHMudHJhbnNwb3J0cyB8fCBbXCJwb2xsaW5nXCIsIFwid2Vic29ja2V0XCJdO1xuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiXCI7XG4gICAgdGhpcy53cml0ZUJ1ZmZlciA9IFtdO1xuICAgIHRoaXMucHJldkJ1ZmZlckxlbiA9IDA7XG5cbiAgICB0aGlzLm9wdHMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICBwYXRoOiBcIi9lbmdpbmUuaW9cIixcbiAgICAgICAgYWdlbnQ6IGZhbHNlLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICB1cGdyYWRlOiB0cnVlLFxuICAgICAgICBqc29ucDogdHJ1ZSxcbiAgICAgICAgdGltZXN0YW1wUGFyYW06IFwidFwiLFxuICAgICAgICByZW1lbWJlclVwZ3JhZGU6IGZhbHNlLFxuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IHRydWUsXG4gICAgICAgIHBlck1lc3NhZ2VEZWZsYXRlOiB7XG4gICAgICAgICAgdGhyZXNob2xkOiAxMDI0XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zcG9ydE9wdGlvbnM6IHt9XG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgICk7XG5cbiAgICB0aGlzLm9wdHMucGF0aCA9IHRoaXMub3B0cy5wYXRoLnJlcGxhY2UoL1xcLyQvLCBcIlwiKSArIFwiL1wiO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdHMucXVlcnkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRoaXMub3B0cy5xdWVyeSA9IHBhcnNlcXMuZGVjb2RlKHRoaXMub3B0cy5xdWVyeSk7XG4gICAgfVxuXG4gICAgLy8gc2V0IG9uIGhhbmRzaGFrZVxuICAgIHRoaXMuaWQgPSBudWxsO1xuICAgIHRoaXMudXBncmFkZXMgPSBudWxsO1xuICAgIHRoaXMucGluZ0ludGVydmFsID0gbnVsbDtcbiAgICB0aGlzLnBpbmdUaW1lb3V0ID0gbnVsbDtcblxuICAgIC8vIHNldCBvbiBoZWFydGJlYXRcbiAgICB0aGlzLnBpbmdUaW1lb3V0VGltZXIgPSBudWxsO1xuXG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0cmFuc3BvcnQgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0cmFuc3BvcnQgbmFtZVxuICAgKiBAcmV0dXJuIHtUcmFuc3BvcnR9XG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY3JlYXRlVHJhbnNwb3J0KG5hbWUpIHtcbiAgICBkZWJ1ZygnY3JlYXRpbmcgdHJhbnNwb3J0IFwiJXNcIicsIG5hbWUpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gY2xvbmUodGhpcy5vcHRzLnF1ZXJ5KTtcblxuICAgIC8vIGFwcGVuZCBlbmdpbmUuaW8gcHJvdG9jb2wgaWRlbnRpZmllclxuICAgIHF1ZXJ5LkVJTyA9IHBhcnNlci5wcm90b2NvbDtcblxuICAgIC8vIHRyYW5zcG9ydCBuYW1lXG4gICAgcXVlcnkudHJhbnNwb3J0ID0gbmFtZTtcblxuICAgIC8vIHNlc3Npb24gaWQgaWYgd2UgYWxyZWFkeSBoYXZlIG9uZVxuICAgIGlmICh0aGlzLmlkKSBxdWVyeS5zaWQgPSB0aGlzLmlkO1xuXG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHRoaXMub3B0cy50cmFuc3BvcnRPcHRpb25zW25hbWVdLFxuICAgICAgdGhpcy5vcHRzLFxuICAgICAge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgc29ja2V0OiB0aGlzLFxuICAgICAgICBob3N0bmFtZTogdGhpcy5ob3N0bmFtZSxcbiAgICAgICAgc2VjdXJlOiB0aGlzLnNlY3VyZSxcbiAgICAgICAgcG9ydDogdGhpcy5wb3J0XG4gICAgICB9XG4gICAgKTtcblxuICAgIGRlYnVnKFwib3B0aW9uczogJWpcIiwgb3B0cyk7XG5cbiAgICByZXR1cm4gbmV3IHRyYW5zcG9ydHNbbmFtZV0ob3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdHJhbnNwb3J0IHRvIHVzZSBhbmQgc3RhcnRzIHByb2JlLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG9wZW4oKSB7XG4gICAgbGV0IHRyYW5zcG9ydDtcbiAgICBpZiAoXG4gICAgICB0aGlzLm9wdHMucmVtZW1iZXJVcGdyYWRlICYmXG4gICAgICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzICYmXG4gICAgICB0aGlzLnRyYW5zcG9ydHMuaW5kZXhPZihcIndlYnNvY2tldFwiKSAhPT0gLTFcbiAgICApIHtcbiAgICAgIHRyYW5zcG9ydCA9IFwid2Vic29ja2V0XCI7XG4gICAgfSBlbHNlIGlmICgwID09PSB0aGlzLnRyYW5zcG9ydHMubGVuZ3RoKSB7XG4gICAgICAvLyBFbWl0IGVycm9yIG9uIG5leHQgdGljayBzbyBpdCBjYW4gYmUgbGlzdGVuZWQgdG9cbiAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5lbWl0KFwiZXJyb3JcIiwgXCJObyB0cmFuc3BvcnRzIGF2YWlsYWJsZVwiKTtcbiAgICAgIH0sIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc3BvcnQgPSB0aGlzLnRyYW5zcG9ydHNbMF07XG4gICAgfVxuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwib3BlbmluZ1wiO1xuXG4gICAgLy8gUmV0cnkgd2l0aCB0aGUgbmV4dCB0cmFuc3BvcnQgaWYgdGhlIHRyYW5zcG9ydCBpcyBkaXNhYmxlZCAoanNvbnA6IGZhbHNlKVxuICAgIHRyeSB7XG4gICAgICB0cmFuc3BvcnQgPSB0aGlzLmNyZWF0ZVRyYW5zcG9ydCh0cmFuc3BvcnQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGRlYnVnKFwiZXJyb3Igd2hpbGUgY3JlYXRpbmcgdHJhbnNwb3J0OiAlc1wiLCBlKTtcbiAgICAgIHRoaXMudHJhbnNwb3J0cy5zaGlmdCgpO1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJhbnNwb3J0Lm9wZW4oKTtcbiAgICB0aGlzLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGN1cnJlbnQgdHJhbnNwb3J0LiBEaXNhYmxlcyB0aGUgZXhpc3Rpbmcgb25lIChpZiBhbnkpLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldFRyYW5zcG9ydCh0cmFuc3BvcnQpIHtcbiAgICBkZWJ1ZyhcInNldHRpbmcgdHJhbnNwb3J0ICVzXCIsIHRyYW5zcG9ydC5uYW1lKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIGlmICh0aGlzLnRyYW5zcG9ydCkge1xuICAgICAgZGVidWcoXCJjbGVhcmluZyBleGlzdGluZyB0cmFuc3BvcnQgJXNcIiwgdGhpcy50cmFuc3BvcnQubmFtZSk7XG4gICAgICB0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICAvLyBzZXQgdXAgdHJhbnNwb3J0XG4gICAgdGhpcy50cmFuc3BvcnQgPSB0cmFuc3BvcnQ7XG5cbiAgICAvLyBzZXQgdXAgdHJhbnNwb3J0IGxpc3RlbmVyc1xuICAgIHRyYW5zcG9ydFxuICAgICAgLm9uKFwiZHJhaW5cIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYub25EcmFpbigpO1xuICAgICAgfSlcbiAgICAgIC5vbihcInBhY2tldFwiLCBmdW5jdGlvbihwYWNrZXQpIHtcbiAgICAgICAgc2VsZi5vblBhY2tldChwYWNrZXQpO1xuICAgICAgfSlcbiAgICAgIC5vbihcImVycm9yXCIsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgc2VsZi5vbkVycm9yKGUpO1xuICAgICAgfSlcbiAgICAgIC5vbihcImNsb3NlXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLm9uQ2xvc2UoXCJ0cmFuc3BvcnQgY2xvc2VcIik7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9iZXMgYSB0cmFuc3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0cmFuc3BvcnQgbmFtZVxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHByb2JlKG5hbWUpIHtcbiAgICBkZWJ1ZygncHJvYmluZyB0cmFuc3BvcnQgXCIlc1wiJywgbmFtZSk7XG4gICAgbGV0IHRyYW5zcG9ydCA9IHRoaXMuY3JlYXRlVHJhbnNwb3J0KG5hbWUsIHsgcHJvYmU6IDEgfSk7XG4gICAgbGV0IGZhaWxlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gb25UcmFuc3BvcnRPcGVuKCkge1xuICAgICAgaWYgKHNlbGYub25seUJpbmFyeVVwZ3JhZGVzKSB7XG4gICAgICAgIGNvbnN0IHVwZ3JhZGVMb3Nlc0JpbmFyeSA9XG4gICAgICAgICAgIXRoaXMuc3VwcG9ydHNCaW5hcnkgJiYgc2VsZi50cmFuc3BvcnQuc3VwcG9ydHNCaW5hcnk7XG4gICAgICAgIGZhaWxlZCA9IGZhaWxlZCB8fCB1cGdyYWRlTG9zZXNCaW5hcnk7XG4gICAgICB9XG4gICAgICBpZiAoZmFpbGVkKSByZXR1cm47XG5cbiAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIG9wZW5lZCcsIG5hbWUpO1xuICAgICAgdHJhbnNwb3J0LnNlbmQoW3sgdHlwZTogXCJwaW5nXCIsIGRhdGE6IFwicHJvYmVcIiB9XSk7XG4gICAgICB0cmFuc3BvcnQub25jZShcInBhY2tldFwiLCBmdW5jdGlvbihtc2cpIHtcbiAgICAgICAgaWYgKGZhaWxlZCkgcmV0dXJuO1xuICAgICAgICBpZiAoXCJwb25nXCIgPT09IG1zZy50eXBlICYmIFwicHJvYmVcIiA9PT0gbXNnLmRhdGEpIHtcbiAgICAgICAgICBkZWJ1ZygncHJvYmUgdHJhbnNwb3J0IFwiJXNcIiBwb25nJywgbmFtZSk7XG4gICAgICAgICAgc2VsZi51cGdyYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIHNlbGYuZW1pdChcInVwZ3JhZGluZ1wiLCB0cmFuc3BvcnQpO1xuICAgICAgICAgIGlmICghdHJhbnNwb3J0KSByZXR1cm47XG4gICAgICAgICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IFwid2Vic29ja2V0XCIgPT09IHRyYW5zcG9ydC5uYW1lO1xuXG4gICAgICAgICAgZGVidWcoJ3BhdXNpbmcgY3VycmVudCB0cmFuc3BvcnQgXCIlc1wiJywgc2VsZi50cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgc2VsZi50cmFuc3BvcnQucGF1c2UoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoZmFpbGVkKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoXCJjbG9zZWRcIiA9PT0gc2VsZi5yZWFkeVN0YXRlKSByZXR1cm47XG4gICAgICAgICAgICBkZWJ1ZyhcImNoYW5naW5nIHRyYW5zcG9ydCBhbmQgc2VuZGluZyB1cGdyYWRlIHBhY2tldFwiKTtcblxuICAgICAgICAgICAgY2xlYW51cCgpO1xuXG4gICAgICAgICAgICBzZWxmLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpO1xuICAgICAgICAgICAgdHJhbnNwb3J0LnNlbmQoW3sgdHlwZTogXCJ1cGdyYWRlXCIgfV0pO1xuICAgICAgICAgICAgc2VsZi5lbWl0KFwidXBncmFkZVwiLCB0cmFuc3BvcnQpO1xuICAgICAgICAgICAgdHJhbnNwb3J0ID0gbnVsbDtcbiAgICAgICAgICAgIHNlbGYudXBncmFkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBzZWxmLmZsdXNoKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVidWcoJ3Byb2JlIHRyYW5zcG9ydCBcIiVzXCIgZmFpbGVkJywgbmFtZSk7XG4gICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwicHJvYmUgZXJyb3JcIik7XG4gICAgICAgICAgZXJyLnRyYW5zcG9ydCA9IHRyYW5zcG9ydC5uYW1lO1xuICAgICAgICAgIHNlbGYuZW1pdChcInVwZ3JhZGVFcnJvclwiLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmcmVlemVUcmFuc3BvcnQoKSB7XG4gICAgICBpZiAoZmFpbGVkKSByZXR1cm47XG5cbiAgICAgIC8vIEFueSBjYWxsYmFjayBjYWxsZWQgYnkgdHJhbnNwb3J0IHNob3VsZCBiZSBpZ25vcmVkIHNpbmNlIG5vd1xuICAgICAgZmFpbGVkID0gdHJ1ZTtcblxuICAgICAgY2xlYW51cCgpO1xuXG4gICAgICB0cmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgIHRyYW5zcG9ydCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGFueSBlcnJvciB0aGF0IGhhcHBlbnMgd2hpbGUgcHJvYmluZ1xuICAgIGZ1bmN0aW9uIG9uZXJyb3IoZXJyKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcInByb2JlIGVycm9yOiBcIiArIGVycik7XG4gICAgICBlcnJvci50cmFuc3BvcnQgPSB0cmFuc3BvcnQubmFtZTtcblxuICAgICAgZnJlZXplVHJhbnNwb3J0KCk7XG5cbiAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIGZhaWxlZCBiZWNhdXNlIG9mIGVycm9yOiAlcycsIG5hbWUsIGVycik7XG5cbiAgICAgIHNlbGYuZW1pdChcInVwZ3JhZGVFcnJvclwiLCBlcnJvcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb25UcmFuc3BvcnRDbG9zZSgpIHtcbiAgICAgIG9uZXJyb3IoXCJ0cmFuc3BvcnQgY2xvc2VkXCIpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIHNvY2tldCBpcyBjbG9zZWQgd2hpbGUgd2UncmUgcHJvYmluZ1xuICAgIGZ1bmN0aW9uIG9uY2xvc2UoKSB7XG4gICAgICBvbmVycm9yKFwic29ja2V0IGNsb3NlZFwiKTtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZSBzb2NrZXQgaXMgdXBncmFkZWQgd2hpbGUgd2UncmUgcHJvYmluZ1xuICAgIGZ1bmN0aW9uIG9udXBncmFkZSh0bykge1xuICAgICAgaWYgKHRyYW5zcG9ydCAmJiB0by5uYW1lICE9PSB0cmFuc3BvcnQubmFtZSkge1xuICAgICAgICBkZWJ1ZygnXCIlc1wiIHdvcmtzIC0gYWJvcnRpbmcgXCIlc1wiJywgdG8ubmFtZSwgdHJhbnNwb3J0Lm5hbWUpO1xuICAgICAgICBmcmVlemVUcmFuc3BvcnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYWxsIGxpc3RlbmVycyBvbiB0aGUgdHJhbnNwb3J0IGFuZCBvbiBzZWxmXG4gICAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIHRyYW5zcG9ydC5yZW1vdmVMaXN0ZW5lcihcIm9wZW5cIiwgb25UcmFuc3BvcnRPcGVuKTtcbiAgICAgIHRyYW5zcG9ydC5yZW1vdmVMaXN0ZW5lcihcImVycm9yXCIsIG9uZXJyb3IpO1xuICAgICAgdHJhbnNwb3J0LnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIiwgb25UcmFuc3BvcnRDbG9zZSk7XG4gICAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIiwgb25jbG9zZSk7XG4gICAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKFwidXBncmFkaW5nXCIsIG9udXBncmFkZSk7XG4gICAgfVxuXG4gICAgdHJhbnNwb3J0Lm9uY2UoXCJvcGVuXCIsIG9uVHJhbnNwb3J0T3Blbik7XG4gICAgdHJhbnNwb3J0Lm9uY2UoXCJlcnJvclwiLCBvbmVycm9yKTtcbiAgICB0cmFuc3BvcnQub25jZShcImNsb3NlXCIsIG9uVHJhbnNwb3J0Q2xvc2UpO1xuXG4gICAgdGhpcy5vbmNlKFwiY2xvc2VcIiwgb25jbG9zZSk7XG4gICAgdGhpcy5vbmNlKFwidXBncmFkaW5nXCIsIG9udXBncmFkZSk7XG5cbiAgICB0cmFuc3BvcnQub3BlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGNvbm5lY3Rpb24gaXMgZGVlbWVkIG9wZW4uXG4gICAqXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICBvbk9wZW4oKSB7XG4gICAgZGVidWcoXCJzb2NrZXQgb3BlblwiKTtcbiAgICB0aGlzLnJlYWR5U3RhdGUgPSBcIm9wZW5cIjtcbiAgICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gXCJ3ZWJzb2NrZXRcIiA9PT0gdGhpcy50cmFuc3BvcnQubmFtZTtcbiAgICB0aGlzLmVtaXQoXCJvcGVuXCIpO1xuICAgIHRoaXMuZmx1c2goKTtcblxuICAgIC8vIHdlIGNoZWNrIGZvciBgcmVhZHlTdGF0ZWAgaW4gY2FzZSBhbiBgb3BlbmBcbiAgICAvLyBsaXN0ZW5lciBhbHJlYWR5IGNsb3NlZCB0aGUgc29ja2V0XG4gICAgaWYgKFxuICAgICAgXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSAmJlxuICAgICAgdGhpcy5vcHRzLnVwZ3JhZGUgJiZcbiAgICAgIHRoaXMudHJhbnNwb3J0LnBhdXNlXG4gICAgKSB7XG4gICAgICBkZWJ1ZyhcInN0YXJ0aW5nIHVwZ3JhZGUgcHJvYmVzXCIpO1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgY29uc3QgbCA9IHRoaXMudXBncmFkZXMubGVuZ3RoO1xuICAgICAgZm9yICg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdGhpcy5wcm9iZSh0aGlzLnVwZ3JhZGVzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBhIHBhY2tldC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvblBhY2tldChwYWNrZXQpIHtcbiAgICBpZiAoXG4gICAgICBcIm9wZW5pbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICBcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICBcImNsb3NpbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlXG4gICAgKSB7XG4gICAgICBkZWJ1Zygnc29ja2V0IHJlY2VpdmU6IHR5cGUgXCIlc1wiLCBkYXRhIFwiJXNcIicsIHBhY2tldC50eXBlLCBwYWNrZXQuZGF0YSk7XG5cbiAgICAgIHRoaXMuZW1pdChcInBhY2tldFwiLCBwYWNrZXQpO1xuXG4gICAgICAvLyBTb2NrZXQgaXMgbGl2ZSAtIGFueSBwYWNrZXQgY291bnRzXG4gICAgICB0aGlzLmVtaXQoXCJoZWFydGJlYXRcIik7XG5cbiAgICAgIHN3aXRjaCAocGFja2V0LnR5cGUpIHtcbiAgICAgICAgY2FzZSBcIm9wZW5cIjpcbiAgICAgICAgICB0aGlzLm9uSGFuZHNoYWtlKEpTT04ucGFyc2UocGFja2V0LmRhdGEpKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFwicGluZ1wiOlxuICAgICAgICAgIHRoaXMucmVzZXRQaW5nVGltZW91dCgpO1xuICAgICAgICAgIHRoaXMuc2VuZFBhY2tldChcInBvbmdcIik7XG4gICAgICAgICAgdGhpcy5lbWl0KFwicG9uZ1wiKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoXCJzZXJ2ZXIgZXJyb3JcIik7XG4gICAgICAgICAgZXJyLmNvZGUgPSBwYWNrZXQuZGF0YTtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFwibWVzc2FnZVwiOlxuICAgICAgICAgIHRoaXMuZW1pdChcImRhdGFcIiwgcGFja2V0LmRhdGEpO1xuICAgICAgICAgIHRoaXMuZW1pdChcIm1lc3NhZ2VcIiwgcGFja2V0LmRhdGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygncGFja2V0IHJlY2VpdmVkIHdpdGggc29ja2V0IHJlYWR5U3RhdGUgXCIlc1wiJywgdGhpcy5yZWFkeVN0YXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHVwb24gaGFuZHNoYWtlIGNvbXBsZXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kc2hha2Ugb2JqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb25IYW5kc2hha2UoZGF0YSkge1xuICAgIHRoaXMuZW1pdChcImhhbmRzaGFrZVwiLCBkYXRhKTtcbiAgICB0aGlzLmlkID0gZGF0YS5zaWQ7XG4gICAgdGhpcy50cmFuc3BvcnQucXVlcnkuc2lkID0gZGF0YS5zaWQ7XG4gICAgdGhpcy51cGdyYWRlcyA9IHRoaXMuZmlsdGVyVXBncmFkZXMoZGF0YS51cGdyYWRlcyk7XG4gICAgdGhpcy5waW5nSW50ZXJ2YWwgPSBkYXRhLnBpbmdJbnRlcnZhbDtcbiAgICB0aGlzLnBpbmdUaW1lb3V0ID0gZGF0YS5waW5nVGltZW91dDtcbiAgICB0aGlzLm9uT3BlbigpO1xuICAgIC8vIEluIGNhc2Ugb3BlbiBoYW5kbGVyIGNsb3NlcyBzb2NrZXRcbiAgICBpZiAoXCJjbG9zZWRcIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSByZXR1cm47XG4gICAgdGhpcy5yZXNldFBpbmdUaW1lb3V0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhbmQgcmVzZXRzIHBpbmcgdGltZW91dCB0aW1lciBiYXNlZCBvbiBzZXJ2ZXIgcGluZ3MuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcmVzZXRQaW5nVGltZW91dCgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKTtcbiAgICB0aGlzLnBpbmdUaW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub25DbG9zZShcInBpbmcgdGltZW91dFwiKTtcbiAgICB9LCB0aGlzLnBpbmdJbnRlcnZhbCArIHRoaXMucGluZ1RpbWVvdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbiBgZHJhaW5gIGV2ZW50XG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb25EcmFpbigpIHtcbiAgICB0aGlzLndyaXRlQnVmZmVyLnNwbGljZSgwLCB0aGlzLnByZXZCdWZmZXJMZW4pO1xuXG4gICAgLy8gc2V0dGluZyBwcmV2QnVmZmVyTGVuID0gMCBpcyB2ZXJ5IGltcG9ydGFudFxuICAgIC8vIGZvciBleGFtcGxlLCB3aGVuIHVwZ3JhZGluZywgdXBncmFkZSBwYWNrZXQgaXMgc2VudCBvdmVyLFxuICAgIC8vIGFuZCBhIG5vbnplcm8gcHJldkJ1ZmZlckxlbiBjb3VsZCBjYXVzZSBwcm9ibGVtcyBvbiBgZHJhaW5gXG4gICAgdGhpcy5wcmV2QnVmZmVyTGVuID0gMDtcblxuICAgIGlmICgwID09PSB0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCkge1xuICAgICAgdGhpcy5lbWl0KFwiZHJhaW5cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmx1c2goKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmx1c2ggd3JpdGUgYnVmZmVycy5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBmbHVzaCgpIHtcbiAgICBpZiAoXG4gICAgICBcImNsb3NlZFwiICE9PSB0aGlzLnJlYWR5U3RhdGUgJiZcbiAgICAgIHRoaXMudHJhbnNwb3J0LndyaXRhYmxlICYmXG4gICAgICAhdGhpcy51cGdyYWRpbmcgJiZcbiAgICAgIHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoXG4gICAgKSB7XG4gICAgICBkZWJ1ZyhcImZsdXNoaW5nICVkIHBhY2tldHMgaW4gc29ja2V0XCIsIHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoKTtcbiAgICAgIHRoaXMudHJhbnNwb3J0LnNlbmQodGhpcy53cml0ZUJ1ZmZlcik7XG4gICAgICAvLyBrZWVwIHRyYWNrIG9mIGN1cnJlbnQgbGVuZ3RoIG9mIHdyaXRlQnVmZmVyXG4gICAgICAvLyBzcGxpY2Ugd3JpdGVCdWZmZXIgYW5kIGNhbGxiYWNrQnVmZmVyIG9uIGBkcmFpbmBcbiAgICAgIHRoaXMucHJldkJ1ZmZlckxlbiA9IHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoO1xuICAgICAgdGhpcy5lbWl0KFwiZmx1c2hcIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgbWVzc2FnZS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5cbiAgICogQHJldHVybiB7U29ja2V0fSBmb3IgY2hhaW5pbmcuXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICB3cml0ZShtc2csIG9wdGlvbnMsIGZuKSB7XG4gICAgdGhpcy5zZW5kUGFja2V0KFwibWVzc2FnZVwiLCBtc2csIG9wdGlvbnMsIGZuKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlbmQobXNnLCBvcHRpb25zLCBmbikge1xuICAgIHRoaXMuc2VuZFBhY2tldChcIm1lc3NhZ2VcIiwgbXNnLCBvcHRpb25zLCBmbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBwYWNrZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYWNrZXQgdHlwZS5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbi5cbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZW5kUGFja2V0KHR5cGUsIGRhdGEsIG9wdGlvbnMsIGZuKSB7XG4gICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGRhdGEpIHtcbiAgICAgIGZuID0gZGF0YTtcbiAgICAgIGRhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG9wdGlvbnMpIHtcbiAgICAgIGZuID0gb3B0aW9ucztcbiAgICAgIG9wdGlvbnMgPSBudWxsO1xuICAgIH1cblxuICAgIGlmIChcImNsb3NpbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8IFwiY2xvc2VkXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIG9wdGlvbnMuY29tcHJlc3MgPSBmYWxzZSAhPT0gb3B0aW9ucy5jb21wcmVzcztcblxuICAgIGNvbnN0IHBhY2tldCA9IHtcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBkYXRhOiBkYXRhLFxuICAgICAgb3B0aW9uczogb3B0aW9uc1xuICAgIH07XG4gICAgdGhpcy5lbWl0KFwicGFja2V0Q3JlYXRlXCIsIHBhY2tldCk7XG4gICAgdGhpcy53cml0ZUJ1ZmZlci5wdXNoKHBhY2tldCk7XG4gICAgaWYgKGZuKSB0aGlzLm9uY2UoXCJmbHVzaFwiLCBmbik7XG4gICAgdGhpcy5mbHVzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIGlmIChcIm9wZW5pbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8IFwib3BlblwiID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiY2xvc2luZ1wiO1xuXG4gICAgICBpZiAodGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5vbmNlKFwiZHJhaW5cIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKHRoaXMudXBncmFkaW5nKSB7XG4gICAgICAgICAgICB3YWl0Rm9yVXBncmFkZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudXBncmFkaW5nKSB7XG4gICAgICAgIHdhaXRGb3JVcGdyYWRlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgICAgc2VsZi5vbkNsb3NlKFwiZm9yY2VkIGNsb3NlXCIpO1xuICAgICAgZGVidWcoXCJzb2NrZXQgY2xvc2luZyAtIHRlbGxpbmcgdHJhbnNwb3J0IHRvIGNsb3NlXCIpO1xuICAgICAgc2VsZi50cmFuc3BvcnQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGVhbnVwQW5kQ2xvc2UoKSB7XG4gICAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKFwidXBncmFkZVwiLCBjbGVhbnVwQW5kQ2xvc2UpO1xuICAgICAgc2VsZi5yZW1vdmVMaXN0ZW5lcihcInVwZ3JhZGVFcnJvclwiLCBjbGVhbnVwQW5kQ2xvc2UpO1xuICAgICAgY2xvc2UoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3YWl0Rm9yVXBncmFkZSgpIHtcbiAgICAgIC8vIHdhaXQgZm9yIHVwZ3JhZGUgdG8gZmluaXNoIHNpbmNlIHdlIGNhbid0IHNlbmQgcGFja2V0cyB3aGlsZSBwYXVzaW5nIGEgdHJhbnNwb3J0XG4gICAgICBzZWxmLm9uY2UoXCJ1cGdyYWRlXCIsIGNsZWFudXBBbmRDbG9zZSk7XG4gICAgICBzZWxmLm9uY2UoXCJ1cGdyYWRlRXJyb3JcIiwgY2xlYW51cEFuZENsb3NlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgdXBvbiB0cmFuc3BvcnQgZXJyb3JcbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkVycm9yKGVycikge1xuICAgIGRlYnVnKFwic29ja2V0IGVycm9yICVqXCIsIGVycik7XG4gICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuZW1pdChcImVycm9yXCIsIGVycik7XG4gICAgdGhpcy5vbkNsb3NlKFwidHJhbnNwb3J0IGVycm9yXCIsIGVycik7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHVwb24gdHJhbnNwb3J0IGNsb3NlLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG9uQ2xvc2UocmVhc29uLCBkZXNjKSB7XG4gICAgaWYgKFxuICAgICAgXCJvcGVuaW5nXCIgPT09IHRoaXMucmVhZHlTdGF0ZSB8fFxuICAgICAgXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSB8fFxuICAgICAgXCJjbG9zaW5nXCIgPT09IHRoaXMucmVhZHlTdGF0ZVxuICAgICkge1xuICAgICAgZGVidWcoJ3NvY2tldCBjbG9zZSB3aXRoIHJlYXNvbjogXCIlc1wiJywgcmVhc29uKTtcbiAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgICAvLyBjbGVhciB0aW1lcnNcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnBpbmdJbnRlcnZhbFRpbWVyKTtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnBpbmdUaW1lb3V0VGltZXIpO1xuXG4gICAgICAvLyBzdG9wIGV2ZW50IGZyb20gZmlyaW5nIGFnYWluIGZvciB0cmFuc3BvcnRcbiAgICAgIHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycyhcImNsb3NlXCIpO1xuXG4gICAgICAvLyBlbnN1cmUgdHJhbnNwb3J0IHdvbid0IHN0YXkgb3BlblxuICAgICAgdGhpcy50cmFuc3BvcnQuY2xvc2UoKTtcblxuICAgICAgLy8gaWdub3JlIGZ1cnRoZXIgdHJhbnNwb3J0IGNvbW11bmljYXRpb25cbiAgICAgIHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpO1xuXG4gICAgICAvLyBzZXQgcmVhZHkgc3RhdGVcbiAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiY2xvc2VkXCI7XG5cbiAgICAgIC8vIGNsZWFyIHNlc3Npb24gaWRcbiAgICAgIHRoaXMuaWQgPSBudWxsO1xuXG4gICAgICAvLyBlbWl0IGNsb3NlIGV2ZW50XG4gICAgICB0aGlzLmVtaXQoXCJjbG9zZVwiLCByZWFzb24sIGRlc2MpO1xuXG4gICAgICAvLyBjbGVhbiBidWZmZXJzIGFmdGVyLCBzbyB1c2VycyBjYW4gc3RpbGxcbiAgICAgIC8vIGdyYWIgdGhlIGJ1ZmZlcnMgb24gYGNsb3NlYCBldmVudFxuICAgICAgc2VsZi53cml0ZUJ1ZmZlciA9IFtdO1xuICAgICAgc2VsZi5wcmV2QnVmZmVyTGVuID0gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB1cGdyYWRlcywgcmV0dXJuaW5nIG9ubHkgdGhvc2UgbWF0Y2hpbmcgY2xpZW50IHRyYW5zcG9ydHMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXl9IHNlcnZlciB1cGdyYWRlc1xuICAgKiBAYXBpIHByaXZhdGVcbiAgICpcbiAgICovXG4gIGZpbHRlclVwZ3JhZGVzKHVwZ3JhZGVzKSB7XG4gICAgY29uc3QgZmlsdGVyZWRVcGdyYWRlcyA9IFtdO1xuICAgIGxldCBpID0gMDtcbiAgICBjb25zdCBqID0gdXBncmFkZXMubGVuZ3RoO1xuICAgIGZvciAoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpZiAofnRoaXMudHJhbnNwb3J0cy5pbmRleE9mKHVwZ3JhZGVzW2ldKSlcbiAgICAgICAgZmlsdGVyZWRVcGdyYWRlcy5wdXNoKHVwZ3JhZGVzW2ldKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkVXBncmFkZXM7XG4gIH1cbn1cblxuU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IGZhbHNlO1xuXG4vKipcbiAqIFByb3RvY29sIHZlcnNpb24uXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5Tb2NrZXQucHJvdG9jb2wgPSBwYXJzZXIucHJvdG9jb2w7IC8vIHRoaXMgaXMgYW4gaW50XG5cbmZ1bmN0aW9uIGNsb25lKG9iaikge1xuICBjb25zdCBvID0ge307XG4gIGZvciAobGV0IGkgaW4gb2JqKSB7XG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgb1tpXSA9IG9ialtpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG87XG59XG5cbm1vZHVsZS5leHBvcnRzID0gU29ja2V0O1xuIiwiY29uc3QgcGFyc2VyID0gcmVxdWlyZShcImVuZ2luZS5pby1wYXJzZXJcIik7XG5jb25zdCBFbWl0dGVyID0gcmVxdWlyZShcImNvbXBvbmVudC1lbWl0dGVyXCIpO1xuXG5jbGFzcyBUcmFuc3BvcnQgZXh0ZW5kcyBFbWl0dGVyIHtcbiAgLyoqXG4gICAqIFRyYW5zcG9ydCBhYnN0cmFjdCBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0cykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgIHRoaXMucXVlcnkgPSBvcHRzLnF1ZXJ5O1xuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiXCI7XG4gICAgdGhpcy5zb2NrZXQgPSBvcHRzLnNvY2tldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBlcnJvci5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtUcmFuc3BvcnR9IGZvciBjaGFpbmluZ1xuICAgKiBAYXBpIHB1YmxpY1xuICAgKi9cbiAgb25FcnJvcihtc2csIGRlc2MpIHtcbiAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgICBlcnIudHlwZSA9IFwiVHJhbnNwb3J0RXJyb3JcIjtcbiAgICBlcnIuZGVzY3JpcHRpb24gPSBkZXNjO1xuICAgIHRoaXMuZW1pdChcImVycm9yXCIsIGVycik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIHRyYW5zcG9ydC5cbiAgICpcbiAgICogQGFwaSBwdWJsaWNcbiAgICovXG4gIG9wZW4oKSB7XG4gICAgaWYgKFwiY2xvc2VkXCIgPT09IHRoaXMucmVhZHlTdGF0ZSB8fCBcIlwiID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwib3BlbmluZ1wiO1xuICAgICAgdGhpcy5kb09wZW4oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHRyYW5zcG9ydC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICBpZiAoXCJvcGVuaW5nXCIgPT09IHRoaXMucmVhZHlTdGF0ZSB8fCBcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICB0aGlzLmRvQ2xvc2UoKTtcbiAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIG11bHRpcGxlIHBhY2tldHMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXl9IHBhY2tldHNcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZW5kKHBhY2tldHMpIHtcbiAgICBpZiAoXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgdGhpcy53cml0ZShwYWNrZXRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHJhbnNwb3J0IG5vdCBvcGVuXCIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgdXBvbiBvcGVuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb25PcGVuKCkge1xuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwib3BlblwiO1xuICAgIHRoaXMud3JpdGFibGUgPSB0cnVlO1xuICAgIHRoaXMuZW1pdChcIm9wZW5cIik7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdpdGggZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGFcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkRhdGEoZGF0YSkge1xuICAgIGNvbnN0IHBhY2tldCA9IHBhcnNlci5kZWNvZGVQYWNrZXQoZGF0YSwgdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSk7XG4gICAgdGhpcy5vblBhY2tldChwYWNrZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aXRoIGEgZGVjb2RlZCBwYWNrZXQuXG4gICAqL1xuICBvblBhY2tldChwYWNrZXQpIHtcbiAgICB0aGlzLmVtaXQoXCJwYWNrZXRcIiwgcGFja2V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgdXBvbiBjbG9zZS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkNsb3NlKCkge1xuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiY2xvc2VkXCI7XG4gICAgdGhpcy5lbWl0KFwiY2xvc2VcIik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc3BvcnQ7XG4iLCJjb25zdCBYTUxIdHRwUmVxdWVzdCA9IHJlcXVpcmUoXCJ4bWxodHRwcmVxdWVzdC1zc2xcIik7XG5jb25zdCBYSFIgPSByZXF1aXJlKFwiLi9wb2xsaW5nLXhoclwiKTtcbmNvbnN0IEpTT05QID0gcmVxdWlyZShcIi4vcG9sbGluZy1qc29ucFwiKTtcbmNvbnN0IHdlYnNvY2tldCA9IHJlcXVpcmUoXCIuL3dlYnNvY2tldFwiKTtcblxuZXhwb3J0cy5wb2xsaW5nID0gcG9sbGluZztcbmV4cG9ydHMud2Vic29ja2V0ID0gd2Vic29ja2V0O1xuXG4vKipcbiAqIFBvbGxpbmcgdHJhbnNwb3J0IHBvbHltb3JwaGljIGNvbnN0cnVjdG9yLlxuICogRGVjaWRlcyBvbiB4aHIgdnMganNvbnAgYmFzZWQgb24gZmVhdHVyZSBkZXRlY3Rpb24uXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcG9sbGluZyhvcHRzKSB7XG4gIGxldCB4aHI7XG4gIGxldCB4ZCA9IGZhbHNlO1xuICBsZXQgeHMgPSBmYWxzZTtcbiAgY29uc3QganNvbnAgPSBmYWxzZSAhPT0gb3B0cy5qc29ucDtcblxuICBpZiAodHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgY29uc3QgaXNTU0wgPSBcImh0dHBzOlwiID09PSBsb2NhdGlvbi5wcm90b2NvbDtcbiAgICBsZXQgcG9ydCA9IGxvY2F0aW9uLnBvcnQ7XG5cbiAgICAvLyBzb21lIHVzZXIgYWdlbnRzIGhhdmUgZW1wdHkgYGxvY2F0aW9uLnBvcnRgXG4gICAgaWYgKCFwb3J0KSB7XG4gICAgICBwb3J0ID0gaXNTU0wgPyA0NDMgOiA4MDtcbiAgICB9XG5cbiAgICB4ZCA9IG9wdHMuaG9zdG5hbWUgIT09IGxvY2F0aW9uLmhvc3RuYW1lIHx8IHBvcnQgIT09IG9wdHMucG9ydDtcbiAgICB4cyA9IG9wdHMuc2VjdXJlICE9PSBpc1NTTDtcbiAgfVxuXG4gIG9wdHMueGRvbWFpbiA9IHhkO1xuICBvcHRzLnhzY2hlbWUgPSB4cztcbiAgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KG9wdHMpO1xuXG4gIGlmIChcIm9wZW5cIiBpbiB4aHIgJiYgIW9wdHMuZm9yY2VKU09OUCkge1xuICAgIHJldHVybiBuZXcgWEhSKG9wdHMpO1xuICB9IGVsc2Uge1xuICAgIGlmICghanNvbnApIHRocm93IG5ldyBFcnJvcihcIkpTT05QIGRpc2FibGVkXCIpO1xuICAgIHJldHVybiBuZXcgSlNPTlAob3B0cyk7XG4gIH1cbn1cbiIsImNvbnN0IFBvbGxpbmcgPSByZXF1aXJlKFwiLi9wb2xsaW5nXCIpO1xuY29uc3QgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoXCIuLi9nbG9iYWxUaGlzXCIpO1xuXG5jb25zdCByTmV3bGluZSA9IC9cXG4vZztcbmNvbnN0IHJFc2NhcGVkTmV3bGluZSA9IC9cXFxcbi9nO1xuXG4vKipcbiAqIEdsb2JhbCBKU09OUCBjYWxsYmFja3MuXG4gKi9cblxubGV0IGNhbGxiYWNrcztcblxuLyoqXG4gKiBOb29wLlxuICovXG5cbmZ1bmN0aW9uIGVtcHR5KCkge31cblxuY2xhc3MgSlNPTlBQb2xsaW5nIGV4dGVuZHMgUG9sbGluZyB7XG4gIC8qKlxuICAgKiBKU09OUCBQb2xsaW5nIGNvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cy5cbiAgICogQGFwaSBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICBzdXBlcihvcHRzKTtcblxuICAgIHRoaXMucXVlcnkgPSB0aGlzLnF1ZXJ5IHx8IHt9O1xuXG4gICAgLy8gZGVmaW5lIGdsb2JhbCBjYWxsYmFja3MgYXJyYXkgaWYgbm90IHByZXNlbnRcbiAgICAvLyB3ZSBkbyB0aGlzIGhlcmUgKGxhemlseSkgdG8gYXZvaWQgdW5uZWVkZWQgZ2xvYmFsIHBvbGx1dGlvblxuICAgIGlmICghY2FsbGJhY2tzKSB7XG4gICAgICAvLyB3ZSBuZWVkIHRvIGNvbnNpZGVyIG11bHRpcGxlIGVuZ2luZXMgaW4gdGhlIHNhbWUgcGFnZVxuICAgICAgY2FsbGJhY2tzID0gZ2xvYmFsVGhpcy5fX19laW8gPSBnbG9iYWxUaGlzLl9fX2VpbyB8fCBbXTtcbiAgICB9XG5cbiAgICAvLyBjYWxsYmFjayBpZGVudGlmaWVyXG4gICAgdGhpcy5pbmRleCA9IGNhbGxiYWNrcy5sZW5ndGg7XG5cbiAgICAvLyBhZGQgY2FsbGJhY2sgdG8ganNvbnAgZ2xvYmFsXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24obXNnKSB7XG4gICAgICBzZWxmLm9uRGF0YShtc2cpO1xuICAgIH0pO1xuXG4gICAgLy8gYXBwZW5kIHRvIHF1ZXJ5IHN0cmluZ1xuICAgIHRoaXMucXVlcnkuaiA9IHRoaXMuaW5kZXg7XG5cbiAgICAvLyBwcmV2ZW50IHNwdXJpb3VzIGVycm9ycyBmcm9tIGJlaW5nIGVtaXR0ZWQgd2hlbiB0aGUgd2luZG93IGlzIHVubG9hZGVkXG4gICAgaWYgKHR5cGVvZiBhZGRFdmVudExpc3RlbmVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIFwiYmVmb3JldW5sb2FkXCIsXG4gICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGlmIChzZWxmLnNjcmlwdCkgc2VsZi5zY3JpcHQub25lcnJvciA9IGVtcHR5O1xuICAgICAgICB9LFxuICAgICAgICBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSlNPTlAgb25seSBzdXBwb3J0cyBiaW5hcnkgYXMgYmFzZTY0IGVuY29kZWQgc3RyaW5nc1xuICAgKi9cbiAgZ2V0IHN1cHBvcnRzQmluYXJ5KCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHNvY2tldC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkb0Nsb3NlKCkge1xuICAgIGlmICh0aGlzLnNjcmlwdCkge1xuICAgICAgdGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCk7XG4gICAgICB0aGlzLnNjcmlwdCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5mb3JtKTtcbiAgICAgIHRoaXMuZm9ybSA9IG51bGw7XG4gICAgICB0aGlzLmlmcmFtZSA9IG51bGw7XG4gICAgfVxuXG4gICAgc3VwZXIuZG9DbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIHBvbGwgY3ljbGUuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZG9Qb2xsKCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG5cbiAgICBpZiAodGhpcy5zY3JpcHQpIHtcbiAgICAgIHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpO1xuICAgICAgdGhpcy5zY3JpcHQgPSBudWxsO1xuICAgIH1cblxuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LnNyYyA9IHRoaXMudXJpKCk7XG4gICAgc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm9uRXJyb3IoXCJqc29ucCBwb2xsIGVycm9yXCIsIGUpO1xuICAgIH07XG5cbiAgICBjb25zdCBpbnNlcnRBdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpWzBdO1xuICAgIGlmIChpbnNlcnRBdCkge1xuICAgICAgaW5zZXJ0QXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc2NyaXB0LCBpbnNlcnRBdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuICAgIHRoaXMuc2NyaXB0ID0gc2NyaXB0O1xuXG4gICAgY29uc3QgaXNVQWdlY2tvID1cbiAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBuYXZpZ2F0b3IgJiYgL2dlY2tvL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuICAgIGlmIChpc1VBZ2Vja28pIHtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWUpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHdpdGggYSBoaWRkZW4gaWZyYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0YSB0byBzZW5kXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxlZCB1cG9uIGZsdXNoLlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGRvV3JpdGUoZGF0YSwgZm4pIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBsZXQgaWZyYW1lO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiKTtcbiAgICAgIGNvbnN0IGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIik7XG4gICAgICBjb25zdCBpZCA9ICh0aGlzLmlmcmFtZUlkID0gXCJlaW9faWZyYW1lX1wiICsgdGhpcy5pbmRleCk7XG5cbiAgICAgIGZvcm0uY2xhc3NOYW1lID0gXCJzb2NrZXRpb1wiO1xuICAgICAgZm9ybS5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICAgIGZvcm0uc3R5bGUudG9wID0gXCItMTAwMHB4XCI7XG4gICAgICBmb3JtLnN0eWxlLmxlZnQgPSBcIi0xMDAwcHhcIjtcbiAgICAgIGZvcm0udGFyZ2V0ID0gaWQ7XG4gICAgICBmb3JtLm1ldGhvZCA9IFwiUE9TVFwiO1xuICAgICAgZm9ybS5zZXRBdHRyaWJ1dGUoXCJhY2NlcHQtY2hhcnNldFwiLCBcInV0Zi04XCIpO1xuICAgICAgYXJlYS5uYW1lID0gXCJkXCI7XG4gICAgICBmb3JtLmFwcGVuZENoaWxkKGFyZWEpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcblxuICAgICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICAgIHRoaXMuYXJlYSA9IGFyZWE7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtLmFjdGlvbiA9IHRoaXMudXJpKCk7XG5cbiAgICBmdW5jdGlvbiBjb21wbGV0ZSgpIHtcbiAgICAgIGluaXRJZnJhbWUoKTtcbiAgICAgIGZuKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5pdElmcmFtZSgpIHtcbiAgICAgIGlmIChzZWxmLmlmcmFtZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNlbGYuZm9ybS5yZW1vdmVDaGlsZChzZWxmLmlmcmFtZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBzZWxmLm9uRXJyb3IoXCJqc29ucCBwb2xsaW5nIGlmcmFtZSByZW1vdmFsIGVycm9yXCIsIGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGllNiBkeW5hbWljIGlmcmFtZXMgd2l0aCB0YXJnZXQ9XCJcIiBzdXBwb3J0ICh0aGFua3MgQ2hyaXMgTGFtYmFjaGVyKVxuICAgICAgICBjb25zdCBodG1sID0gJzxpZnJhbWUgc3JjPVwiamF2YXNjcmlwdDowXCIgbmFtZT1cIicgKyBzZWxmLmlmcmFtZUlkICsgJ1wiPic7XG4gICAgICAgIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaHRtbCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7XG4gICAgICAgIGlmcmFtZS5uYW1lID0gc2VsZi5pZnJhbWVJZDtcbiAgICAgICAgaWZyYW1lLnNyYyA9IFwiamF2YXNjcmlwdDowXCI7XG4gICAgICB9XG5cbiAgICAgIGlmcmFtZS5pZCA9IHNlbGYuaWZyYW1lSWQ7XG5cbiAgICAgIHNlbGYuZm9ybS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAgICAgc2VsZi5pZnJhbWUgPSBpZnJhbWU7XG4gICAgfVxuXG4gICAgaW5pdElmcmFtZSgpO1xuXG4gICAgLy8gZXNjYXBlIFxcbiB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY29udmVydGVkIGludG8gXFxyXFxuIGJ5IHNvbWUgVUFzXG4gICAgLy8gZG91YmxlIGVzY2FwaW5nIGlzIHJlcXVpcmVkIGZvciBlc2NhcGVkIG5ldyBsaW5lcyBiZWNhdXNlIHVuZXNjYXBpbmcgb2YgbmV3IGxpbmVzIGNhbiBiZSBkb25lIHNhZmVseSBvbiBzZXJ2ZXItc2lkZVxuICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UockVzY2FwZWROZXdsaW5lLCBcIlxcXFxcXG5cIik7XG4gICAgdGhpcy5hcmVhLnZhbHVlID0gZGF0YS5yZXBsYWNlKHJOZXdsaW5lLCBcIlxcXFxuXCIpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZm9ybS5zdWJtaXQoKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgaWYgKHRoaXMuaWZyYW1lLmF0dGFjaEV2ZW50KSB7XG4gICAgICB0aGlzLmlmcmFtZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHNlbGYuaWZyYW1lLnJlYWR5U3RhdGUgPT09IFwiY29tcGxldGVcIikge1xuICAgICAgICAgIGNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaWZyYW1lLm9ubG9hZCA9IGNvbXBsZXRlO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEpTT05QUG9sbGluZztcbiIsIi8qIGdsb2JhbCBhdHRhY2hFdmVudCAqL1xuXG5jb25zdCBYTUxIdHRwUmVxdWVzdCA9IHJlcXVpcmUoXCJ4bWxodHRwcmVxdWVzdC1zc2xcIik7XG5jb25zdCBQb2xsaW5nID0gcmVxdWlyZShcIi4vcG9sbGluZ1wiKTtcbmNvbnN0IEVtaXR0ZXIgPSByZXF1aXJlKFwiY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCB7IHBpY2sgfSA9IHJlcXVpcmUoXCIuLi91dGlsXCIpO1xuY29uc3QgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoXCIuLi9nbG9iYWxUaGlzXCIpO1xuXG5jb25zdCBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcImVuZ2luZS5pby1jbGllbnQ6cG9sbGluZy14aHJcIik7XG5cbi8qKlxuICogRW1wdHkgZnVuY3Rpb25cbiAqL1xuXG5mdW5jdGlvbiBlbXB0eSgpIHt9XG5cbmNvbnN0IGhhc1hIUjIgPSAoZnVuY3Rpb24oKSB7XG4gIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCh7IHhkb21haW46IGZhbHNlIH0pO1xuICByZXR1cm4gbnVsbCAhPSB4aHIucmVzcG9uc2VUeXBlO1xufSkoKTtcblxuY2xhc3MgWEhSIGV4dGVuZHMgUG9sbGluZyB7XG4gIC8qKlxuICAgKiBYSFIgUG9sbGluZyBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHNcbiAgICogQGFwaSBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICBzdXBlcihvcHRzKTtcblxuICAgIGlmICh0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IGlzU1NMID0gXCJodHRwczpcIiA9PT0gbG9jYXRpb24ucHJvdG9jb2w7XG4gICAgICBsZXQgcG9ydCA9IGxvY2F0aW9uLnBvcnQ7XG5cbiAgICAgIC8vIHNvbWUgdXNlciBhZ2VudHMgaGF2ZSBlbXB0eSBgbG9jYXRpb24ucG9ydGBcbiAgICAgIGlmICghcG9ydCkge1xuICAgICAgICBwb3J0ID0gaXNTU0wgPyA0NDMgOiA4MDtcbiAgICAgIH1cblxuICAgICAgdGhpcy54ZCA9XG4gICAgICAgICh0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgICAgICBvcHRzLmhvc3RuYW1lICE9PSBsb2NhdGlvbi5ob3N0bmFtZSkgfHxcbiAgICAgICAgcG9ydCAhPT0gb3B0cy5wb3J0O1xuICAgICAgdGhpcy54cyA9IG9wdHMuc2VjdXJlICE9PSBpc1NTTDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogWEhSIHN1cHBvcnRzIGJpbmFyeVxuICAgICAqL1xuICAgIGNvbnN0IGZvcmNlQmFzZTY0ID0gb3B0cyAmJiBvcHRzLmZvcmNlQmFzZTY0O1xuICAgIHRoaXMuc3VwcG9ydHNCaW5hcnkgPSBoYXNYSFIyICYmICFmb3JjZUJhc2U2NDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcmVxdWVzdC5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJlcXVlc3Qob3B0cyA9IHt9KSB7XG4gICAgT2JqZWN0LmFzc2lnbihvcHRzLCB7IHhkOiB0aGlzLnhkLCB4czogdGhpcy54cyB9LCB0aGlzLm9wdHMpO1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCh0aGlzLnVyaSgpLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0YSB0byBzZW5kLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsZWQgdXBvbiBmbHVzaC5cbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkb1dyaXRlKGRhdGEsIGZuKSB7XG4gICAgY29uc3QgcmVxID0gdGhpcy5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBkYXRhOiBkYXRhXG4gICAgfSk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmVxLm9uKFwic3VjY2Vzc1wiLCBmbik7XG4gICAgcmVxLm9uKFwiZXJyb3JcIiwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICBzZWxmLm9uRXJyb3IoXCJ4aHIgcG9zdCBlcnJvclwiLCBlcnIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIHBvbGwgY3ljbGUuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZG9Qb2xsKCkge1xuICAgIGRlYnVnKFwieGhyIHBvbGxcIik7XG4gICAgY29uc3QgcmVxID0gdGhpcy5yZXF1ZXN0KCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmVxLm9uKFwiZGF0YVwiLCBmdW5jdGlvbihkYXRhKSB7XG4gICAgICBzZWxmLm9uRGF0YShkYXRhKTtcbiAgICB9KTtcbiAgICByZXEub24oXCJlcnJvclwiLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgIHNlbGYub25FcnJvcihcInhociBwb2xsIGVycm9yXCIsIGVycik7XG4gICAgfSk7XG4gICAgdGhpcy5wb2xsWGhyID0gcmVxO1xuICB9XG59XG5cbmNsYXNzIFJlcXVlc3QgZXh0ZW5kcyBFbWl0dGVyIHtcbiAgLyoqXG4gICAqIFJlcXVlc3QgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQGFwaSBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHVyaSwgb3B0cykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcblxuICAgIHRoaXMubWV0aG9kID0gb3B0cy5tZXRob2QgfHwgXCJHRVRcIjtcbiAgICB0aGlzLnVyaSA9IHVyaTtcbiAgICB0aGlzLmFzeW5jID0gZmFsc2UgIT09IG9wdHMuYXN5bmM7XG4gICAgdGhpcy5kYXRhID0gdW5kZWZpbmVkICE9PSBvcHRzLmRhdGEgPyBvcHRzLmRhdGEgOiBudWxsO1xuXG4gICAgdGhpcy5jcmVhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBYSFIgb2JqZWN0IGFuZCBzZW5kcyB0aGUgcmVxdWVzdC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjcmVhdGUoKSB7XG4gICAgY29uc3Qgb3B0cyA9IHBpY2soXG4gICAgICB0aGlzLm9wdHMsXG4gICAgICBcImFnZW50XCIsXG4gICAgICBcImVuYWJsZXNYRFJcIixcbiAgICAgIFwicGZ4XCIsXG4gICAgICBcImtleVwiLFxuICAgICAgXCJwYXNzcGhyYXNlXCIsXG4gICAgICBcImNlcnRcIixcbiAgICAgIFwiY2FcIixcbiAgICAgIFwiY2lwaGVyc1wiLFxuICAgICAgXCJyZWplY3RVbmF1dGhvcml6ZWRcIlxuICAgICk7XG4gICAgb3B0cy54ZG9tYWluID0gISF0aGlzLm9wdHMueGQ7XG4gICAgb3B0cy54c2NoZW1lID0gISF0aGlzLm9wdHMueHM7XG5cbiAgICBjb25zdCB4aHIgPSAodGhpcy54aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Qob3B0cykpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRlYnVnKFwieGhyIG9wZW4gJXM6ICVzXCIsIHRoaXMubWV0aG9kLCB0aGlzLnVyaSk7XG4gICAgICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmksIHRoaXMuYXN5bmMpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMub3B0cy5leHRyYUhlYWRlcnMpIHtcbiAgICAgICAgICB4aHIuc2V0RGlzYWJsZUhlYWRlckNoZWNrICYmIHhoci5zZXREaXNhYmxlSGVhZGVyQ2hlY2sodHJ1ZSk7XG4gICAgICAgICAgZm9yIChsZXQgaSBpbiB0aGlzLm9wdHMuZXh0cmFIZWFkZXJzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRzLmV4dHJhSGVhZGVycy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihpLCB0aGlzLm9wdHMuZXh0cmFIZWFkZXJzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAgIGlmIChcIlBPU1RcIiA9PT0gdGhpcy5tZXRob2QpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtdHlwZVwiLCBcInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOFwiKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJBY2NlcHRcIiwgXCIqLypcIik7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAvLyBpZTYgY2hlY2tcbiAgICAgIGlmIChcIndpdGhDcmVkZW50aWFsc1wiIGluIHhocikge1xuICAgICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gdGhpcy5vcHRzLndpdGhDcmVkZW50aWFscztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub3B0cy5yZXF1ZXN0VGltZW91dCkge1xuICAgICAgICB4aHIudGltZW91dCA9IHRoaXMub3B0cy5yZXF1ZXN0VGltZW91dDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaGFzWERSKCkpIHtcbiAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHNlbGYub25Mb2FkKCk7XG4gICAgICAgIH07XG4gICAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgc2VsZi5vbkVycm9yKHhoci5yZXNwb25zZVRleHQpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGlmICg0ICE9PSB4aHIucmVhZHlTdGF0ZSkgcmV0dXJuO1xuICAgICAgICAgIGlmICgyMDAgPT09IHhoci5zdGF0dXMgfHwgMTIyMyA9PT0geGhyLnN0YXR1cykge1xuICAgICAgICAgICAgc2VsZi5vbkxvYWQoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBgZXJyb3JgIGV2ZW50IGhhbmRsZXIgdGhhdCdzIHVzZXItc2V0XG4gICAgICAgICAgICAvLyBkb2VzIG5vdCB0aHJvdyBpbiB0aGUgc2FtZSB0aWNrIGFuZCBnZXRzIGNhdWdodCBoZXJlXG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICBzZWxmLm9uRXJyb3IodHlwZW9mIHhoci5zdGF0dXMgPT09IFwibnVtYmVyXCIgPyB4aHIuc3RhdHVzIDogMCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGRlYnVnKFwieGhyIGRhdGEgJXNcIiwgdGhpcy5kYXRhKTtcbiAgICAgIHhoci5zZW5kKHRoaXMuZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gTmVlZCB0byBkZWZlciBzaW5jZSAuY3JlYXRlKCkgaXMgY2FsbGVkIGRpcmVjdGx5IGZyb20gdGhlIGNvbnN0cnVjdG9yXG4gICAgICAvLyBhbmQgdGh1cyB0aGUgJ2Vycm9yJyBldmVudCBjYW4gb25seSBiZSBvbmx5IGJvdW5kICphZnRlciogdGhpcyBleGNlcHRpb25cbiAgICAgIC8vIG9jY3Vycy4gIFRoZXJlZm9yZSwgYWxzbywgd2UgY2Fubm90IHRocm93IGhlcmUgYXQgYWxsLlxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5vbkVycm9yKGUpO1xuICAgICAgfSwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5pbmRleCA9IFJlcXVlc3QucmVxdWVzdHNDb3VudCsrO1xuICAgICAgUmVxdWVzdC5yZXF1ZXN0c1t0aGlzLmluZGV4XSA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB1cG9uIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb25TdWNjZXNzKCkge1xuICAgIHRoaXMuZW1pdChcInN1Y2Nlc3NcIik7XG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGlmIHdlIGhhdmUgZGF0YS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkRhdGEoZGF0YSkge1xuICAgIHRoaXMuZW1pdChcImRhdGFcIiwgZGF0YSk7XG4gICAgdGhpcy5vblN1Y2Nlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgdXBvbiBlcnJvci5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkVycm9yKGVycikge1xuICAgIHRoaXMuZW1pdChcImVycm9yXCIsIGVycik7XG4gICAgdGhpcy5jbGVhbnVwKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyB1cCBob3VzZS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjbGVhbnVwKGZyb21FcnJvcikge1xuICAgIGlmIChcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgdGhpcy54aHIgfHwgbnVsbCA9PT0gdGhpcy54aHIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8geG1saHR0cHJlcXVlc3RcbiAgICBpZiAodGhpcy5oYXNYRFIoKSkge1xuICAgICAgdGhpcy54aHIub25sb2FkID0gdGhpcy54aHIub25lcnJvciA9IGVtcHR5O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBlbXB0eTtcbiAgICB9XG5cbiAgICBpZiAoZnJvbUVycm9yKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnhoci5hYm9ydCgpO1xuICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBkZWxldGUgUmVxdWVzdC5yZXF1ZXN0c1t0aGlzLmluZGV4XTtcbiAgICB9XG5cbiAgICB0aGlzLnhociA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHVwb24gbG9hZC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkxvYWQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMueGhyLnJlc3BvbnNlVGV4dDtcbiAgICBpZiAoZGF0YSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5vbkRhdGEoZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGl0IGhhcyBYRG9tYWluUmVxdWVzdC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBoYXNYRFIoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBYRG9tYWluUmVxdWVzdCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhdGhpcy54cyAmJiB0aGlzLmVuYWJsZXNYRFI7XG4gIH1cblxuICAvKipcbiAgICogQWJvcnRzIHRoZSByZXF1ZXN0LlxuICAgKlxuICAgKiBAYXBpIHB1YmxpY1xuICAgKi9cbiAgYWJvcnQoKSB7XG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBYm9ydHMgcGVuZGluZyByZXF1ZXN0cyB3aGVuIHVubG9hZGluZyB0aGUgd2luZG93LiBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50XG4gKiBtZW1vcnkgbGVha3MgKGUuZy4gd2hlbiB1c2luZyBJRSkgYW5kIHRvIGVuc3VyZSB0aGF0IG5vIHNwdXJpb3VzIGVycm9yIGlzXG4gKiBlbWl0dGVkLlxuICovXG5cblJlcXVlc3QucmVxdWVzdHNDb3VudCA9IDA7XG5SZXF1ZXN0LnJlcXVlc3RzID0ge307XG5cbmlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgaWYgKHR5cGVvZiBhdHRhY2hFdmVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYXR0YWNoRXZlbnQoXCJvbnVubG9hZFwiLCB1bmxvYWRIYW5kbGVyKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYWRkRXZlbnRMaXN0ZW5lciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc3QgdGVybWluYXRpb25FdmVudCA9IFwib25wYWdlaGlkZVwiIGluIGdsb2JhbFRoaXMgPyBcInBhZ2VoaWRlXCIgOiBcInVubG9hZFwiO1xuICAgIGFkZEV2ZW50TGlzdGVuZXIodGVybWluYXRpb25FdmVudCwgdW5sb2FkSGFuZGxlciwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVubG9hZEhhbmRsZXIoKSB7XG4gIGZvciAobGV0IGkgaW4gUmVxdWVzdC5yZXF1ZXN0cykge1xuICAgIGlmIChSZXF1ZXN0LnJlcXVlc3RzLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICBSZXF1ZXN0LnJlcXVlc3RzW2ldLmFib3J0KCk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gWEhSO1xubW9kdWxlLmV4cG9ydHMuUmVxdWVzdCA9IFJlcXVlc3Q7XG4iLCJjb25zdCBUcmFuc3BvcnQgPSByZXF1aXJlKFwiLi4vdHJhbnNwb3J0XCIpO1xuY29uc3QgcGFyc2VxcyA9IHJlcXVpcmUoXCJwYXJzZXFzXCIpO1xuY29uc3QgcGFyc2VyID0gcmVxdWlyZShcImVuZ2luZS5pby1wYXJzZXJcIik7XG5jb25zdCB5ZWFzdCA9IHJlcXVpcmUoXCJ5ZWFzdFwiKTtcblxuY29uc3QgZGVidWcgPSByZXF1aXJlKFwiZGVidWdcIikoXCJlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmdcIik7XG5cbmNsYXNzIFBvbGxpbmcgZXh0ZW5kcyBUcmFuc3BvcnQge1xuICAvKipcbiAgICogVHJhbnNwb3J0IG5hbWUuXG4gICAqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gXCJwb2xsaW5nXCI7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIHNvY2tldCAodHJpZ2dlcnMgcG9sbGluZykuIFdlIHdyaXRlIGEgUElORyBtZXNzYWdlIHRvIGRldGVybWluZVxuICAgKiB3aGVuIHRoZSB0cmFuc3BvcnQgaXMgb3Blbi5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkb09wZW4oKSB7XG4gICAgdGhpcy5wb2xsKCk7XG4gIH1cblxuICAvKipcbiAgICogUGF1c2VzIHBvbGxpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIHVwb24gYnVmZmVycyBhcmUgZmx1c2hlZCBhbmQgdHJhbnNwb3J0IGlzIHBhdXNlZFxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHBhdXNlKG9uUGF1c2UpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwicGF1c2luZ1wiO1xuXG4gICAgZnVuY3Rpb24gcGF1c2UoKSB7XG4gICAgICBkZWJ1ZyhcInBhdXNlZFwiKTtcbiAgICAgIHNlbGYucmVhZHlTdGF0ZSA9IFwicGF1c2VkXCI7XG4gICAgICBvblBhdXNlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9sbGluZyB8fCAhdGhpcy53cml0YWJsZSkge1xuICAgICAgbGV0IHRvdGFsID0gMDtcblxuICAgICAgaWYgKHRoaXMucG9sbGluZykge1xuICAgICAgICBkZWJ1ZyhcIndlIGFyZSBjdXJyZW50bHkgcG9sbGluZyAtIHdhaXRpbmcgdG8gcGF1c2VcIik7XG4gICAgICAgIHRvdGFsKys7XG4gICAgICAgIHRoaXMub25jZShcInBvbGxDb21wbGV0ZVwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICBkZWJ1ZyhcInByZS1wYXVzZSBwb2xsaW5nIGNvbXBsZXRlXCIpO1xuICAgICAgICAgIC0tdG90YWwgfHwgcGF1c2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy53cml0YWJsZSkge1xuICAgICAgICBkZWJ1ZyhcIndlIGFyZSBjdXJyZW50bHkgd3JpdGluZyAtIHdhaXRpbmcgdG8gcGF1c2VcIik7XG4gICAgICAgIHRvdGFsKys7XG4gICAgICAgIHRoaXMub25jZShcImRyYWluXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGRlYnVnKFwicHJlLXBhdXNlIHdyaXRpbmcgY29tcGxldGVcIik7XG4gICAgICAgICAgLS10b3RhbCB8fCBwYXVzZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGF1c2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIHBvbGxpbmcgY3ljbGUuXG4gICAqXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICBwb2xsKCkge1xuICAgIGRlYnVnKFwicG9sbGluZ1wiKTtcbiAgICB0aGlzLnBvbGxpbmcgPSB0cnVlO1xuICAgIHRoaXMuZG9Qb2xsKCk7XG4gICAgdGhpcy5lbWl0KFwicG9sbFwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVybG9hZHMgb25EYXRhIHRvIGRldGVjdCBwYXlsb2Fkcy5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBvbkRhdGEoZGF0YSkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGRlYnVnKFwicG9sbGluZyBnb3QgZGF0YSAlc1wiLCBkYXRhKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IGZ1bmN0aW9uKHBhY2tldCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgICAvLyBpZiBpdHMgdGhlIGZpcnN0IG1lc3NhZ2Ugd2UgY29uc2lkZXIgdGhlIHRyYW5zcG9ydCBvcGVuXG4gICAgICBpZiAoXCJvcGVuaW5nXCIgPT09IHNlbGYucmVhZHlTdGF0ZSAmJiBwYWNrZXQudHlwZSA9PT0gXCJvcGVuXCIpIHtcbiAgICAgICAgc2VsZi5vbk9wZW4oKTtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgaXRzIGEgY2xvc2UgcGFja2V0LCB3ZSBjbG9zZSB0aGUgb25nb2luZyByZXF1ZXN0c1xuICAgICAgaWYgKFwiY2xvc2VcIiA9PT0gcGFja2V0LnR5cGUpIHtcbiAgICAgICAgc2VsZi5vbkNsb3NlKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gb3RoZXJ3aXNlIGJ5cGFzcyBvbkRhdGEgYW5kIGhhbmRsZSB0aGUgbWVzc2FnZVxuICAgICAgc2VsZi5vblBhY2tldChwYWNrZXQpO1xuICAgIH07XG5cbiAgICAvLyBkZWNvZGUgcGF5bG9hZFxuICAgIHBhcnNlci5kZWNvZGVQYXlsb2FkKGRhdGEsIHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpLmZvckVhY2goY2FsbGJhY2spO1xuXG4gICAgLy8gaWYgYW4gZXZlbnQgZGlkIG5vdCB0cmlnZ2VyIGNsb3NpbmdcbiAgICBpZiAoXCJjbG9zZWRcIiAhPT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAvLyBpZiB3ZSBnb3QgZGF0YSB3ZSdyZSBub3QgcG9sbGluZ1xuICAgICAgdGhpcy5wb2xsaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmVtaXQoXCJwb2xsQ29tcGxldGVcIik7XG5cbiAgICAgIGlmIChcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgIHRoaXMucG9sbCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVidWcoJ2lnbm9yaW5nIHBvbGwgLSB0cmFuc3BvcnQgc3RhdGUgXCIlc1wiJywgdGhpcy5yZWFkeVN0YXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yIHBvbGxpbmcsIHNlbmQgYSBjbG9zZSBwYWNrZXQuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZG9DbG9zZSgpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgICAgZGVidWcoXCJ3cml0aW5nIGNsb3NlIHBhY2tldFwiKTtcbiAgICAgIHNlbGYud3JpdGUoW3sgdHlwZTogXCJjbG9zZVwiIH1dKTtcbiAgICB9XG5cbiAgICBpZiAoXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgb3BlbiAtIGNsb3NpbmdcIik7XG4gICAgICBjbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbiBjYXNlIHdlJ3JlIHRyeWluZyB0byBjbG9zZSB3aGlsZVxuICAgICAgLy8gaGFuZHNoYWtpbmcgaXMgaW4gcHJvZ3Jlc3MgKEdILTE2NClcbiAgICAgIGRlYnVnKFwidHJhbnNwb3J0IG5vdCBvcGVuIC0gZGVmZXJyaW5nIGNsb3NlXCIpO1xuICAgICAgdGhpcy5vbmNlKFwib3BlblwiLCBjbG9zZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhIHBhY2tldHMgcGF5bG9hZC5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheX0gZGF0YSBwYWNrZXRzXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGRyYWluIGNhbGxiYWNrXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgd3JpdGUocGFja2V0cykge1xuICAgIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcblxuICAgIHBhcnNlci5lbmNvZGVQYXlsb2FkKHBhY2tldHMsIGRhdGEgPT4ge1xuICAgICAgdGhpcy5kb1dyaXRlKGRhdGEsICgpID0+IHtcbiAgICAgICAgdGhpcy53cml0YWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1pdChcImRyYWluXCIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHVyaSBmb3IgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB1cmkoKSB7XG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5xdWVyeSB8fCB7fTtcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLm9wdHMuc2VjdXJlID8gXCJodHRwc1wiIDogXCJodHRwXCI7XG4gICAgbGV0IHBvcnQgPSBcIlwiO1xuXG4gICAgLy8gY2FjaGUgYnVzdGluZyBpcyBmb3JjZWRcbiAgICBpZiAoZmFsc2UgIT09IHRoaXMub3B0cy50aW1lc3RhbXBSZXF1ZXN0cykge1xuICAgICAgcXVlcnlbdGhpcy5vcHRzLnRpbWVzdGFtcFBhcmFtXSA9IHllYXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN1cHBvcnRzQmluYXJ5ICYmICFxdWVyeS5zaWQpIHtcbiAgICAgIHF1ZXJ5LmI2NCA9IDE7XG4gICAgfVxuXG4gICAgcXVlcnkgPSBwYXJzZXFzLmVuY29kZShxdWVyeSk7XG5cbiAgICAvLyBhdm9pZCBwb3J0IGlmIGRlZmF1bHQgZm9yIHNjaGVtYVxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0cy5wb3J0ICYmXG4gICAgICAoKFwiaHR0cHNcIiA9PT0gc2NoZW1hICYmIE51bWJlcih0aGlzLm9wdHMucG9ydCkgIT09IDQ0MykgfHxcbiAgICAgICAgKFwiaHR0cFwiID09PSBzY2hlbWEgJiYgTnVtYmVyKHRoaXMub3B0cy5wb3J0KSAhPT0gODApKVxuICAgICkge1xuICAgICAgcG9ydCA9IFwiOlwiICsgdGhpcy5vcHRzLnBvcnQ7XG4gICAgfVxuXG4gICAgLy8gcHJlcGVuZCA/IHRvIHF1ZXJ5XG4gICAgaWYgKHF1ZXJ5Lmxlbmd0aCkge1xuICAgICAgcXVlcnkgPSBcIj9cIiArIHF1ZXJ5O1xuICAgIH1cblxuICAgIGNvbnN0IGlwdjYgPSB0aGlzLm9wdHMuaG9zdG5hbWUuaW5kZXhPZihcIjpcIikgIT09IC0xO1xuICAgIHJldHVybiAoXG4gICAgICBzY2hlbWEgK1xuICAgICAgXCI6Ly9cIiArXG4gICAgICAoaXB2NiA/IFwiW1wiICsgdGhpcy5vcHRzLmhvc3RuYW1lICsgXCJdXCIgOiB0aGlzLm9wdHMuaG9zdG5hbWUpICtcbiAgICAgIHBvcnQgK1xuICAgICAgdGhpcy5vcHRzLnBhdGggK1xuICAgICAgcXVlcnlcbiAgICApO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUG9sbGluZztcbiIsImNvbnN0IGdsb2JhbFRoaXMgPSByZXF1aXJlKFwiLi4vZ2xvYmFsVGhpc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIFdlYlNvY2tldDogZ2xvYmFsVGhpcy5XZWJTb2NrZXQgfHwgZ2xvYmFsVGhpcy5Nb3pXZWJTb2NrZXQsXG4gIHVzaW5nQnJvd3NlcldlYlNvY2tldDogdHJ1ZSxcbiAgZGVmYXVsdEJpbmFyeVR5cGU6IFwiYXJyYXlidWZmZXJcIlxufTtcbiIsImNvbnN0IFRyYW5zcG9ydCA9IHJlcXVpcmUoXCIuLi90cmFuc3BvcnRcIik7XG5jb25zdCBwYXJzZXIgPSByZXF1aXJlKFwiZW5naW5lLmlvLXBhcnNlclwiKTtcbmNvbnN0IHBhcnNlcXMgPSByZXF1aXJlKFwicGFyc2Vxc1wiKTtcbmNvbnN0IHllYXN0ID0gcmVxdWlyZShcInllYXN0XCIpO1xuY29uc3QgeyBwaWNrIH0gPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IHtcbiAgV2ViU29ja2V0LFxuICB1c2luZ0Jyb3dzZXJXZWJTb2NrZXQsXG4gIGRlZmF1bHRCaW5hcnlUeXBlXG59ID0gcmVxdWlyZShcIi4vd2Vic29ja2V0LWNvbnN0cnVjdG9yXCIpO1xuXG5jb25zdCBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcImVuZ2luZS5pby1jbGllbnQ6d2Vic29ja2V0XCIpO1xuXG4vLyBkZXRlY3QgUmVhY3ROYXRpdmUgZW52aXJvbm1lbnRcbmNvbnN0IGlzUmVhY3ROYXRpdmUgPVxuICB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmXG4gIHR5cGVvZiBuYXZpZ2F0b3IucHJvZHVjdCA9PT0gXCJzdHJpbmdcIiAmJlxuICBuYXZpZ2F0b3IucHJvZHVjdC50b0xvd2VyQ2FzZSgpID09PSBcInJlYWN0bmF0aXZlXCI7XG5cbmNsYXNzIFdTIGV4dGVuZHMgVHJhbnNwb3J0IHtcbiAgLyoqXG4gICAqIFdlYlNvY2tldCB0cmFuc3BvcnQgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBhcGkge09iamVjdH0gY29ubmVjdGlvbiBvcHRpb25zXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgc3VwZXIob3B0cyk7XG5cbiAgICB0aGlzLnN1cHBvcnRzQmluYXJ5ID0gIW9wdHMuZm9yY2VCYXNlNjQ7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNwb3J0IG5hbWUuXG4gICAqXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gXCJ3ZWJzb2NrZXRcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBzb2NrZXQuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZG9PcGVuKCkge1xuICAgIGlmICghdGhpcy5jaGVjaygpKSB7XG4gICAgICAvLyBsZXQgcHJvYmUgdGltZW91dFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVyaSA9IHRoaXMudXJpKCk7XG4gICAgY29uc3QgcHJvdG9jb2xzID0gdGhpcy5vcHRzLnByb3RvY29scztcblxuICAgIC8vIFJlYWN0IE5hdGl2ZSBvbmx5IHN1cHBvcnRzIHRoZSAnaGVhZGVycycgb3B0aW9uLCBhbmQgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgYW55dGhpbmcgZWxzZSBpcyBwYXNzZWRcbiAgICBjb25zdCBvcHRzID0gaXNSZWFjdE5hdGl2ZVxuICAgICAgPyB7fVxuICAgICAgOiBwaWNrKFxuICAgICAgICAgIHRoaXMub3B0cyxcbiAgICAgICAgICBcImFnZW50XCIsXG4gICAgICAgICAgXCJwZXJNZXNzYWdlRGVmbGF0ZVwiLFxuICAgICAgICAgIFwicGZ4XCIsXG4gICAgICAgICAgXCJrZXlcIixcbiAgICAgICAgICBcInBhc3NwaHJhc2VcIixcbiAgICAgICAgICBcImNlcnRcIixcbiAgICAgICAgICBcImNhXCIsXG4gICAgICAgICAgXCJjaXBoZXJzXCIsXG4gICAgICAgICAgXCJyZWplY3RVbmF1dGhvcml6ZWRcIixcbiAgICAgICAgICBcImxvY2FsQWRkcmVzc1wiLFxuICAgICAgICAgIFwicHJvdG9jb2xWZXJzaW9uXCIsXG4gICAgICAgICAgXCJvcmlnaW5cIixcbiAgICAgICAgICBcIm1heFBheWxvYWRcIixcbiAgICAgICAgICBcImZhbWlseVwiLFxuICAgICAgICAgIFwiY2hlY2tTZXJ2ZXJJZGVudGl0eVwiXG4gICAgICAgICk7XG5cbiAgICBpZiAodGhpcy5vcHRzLmV4dHJhSGVhZGVycykge1xuICAgICAgb3B0cy5oZWFkZXJzID0gdGhpcy5vcHRzLmV4dHJhSGVhZGVycztcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy53cyA9XG4gICAgICAgIHVzaW5nQnJvd3NlcldlYlNvY2tldCAmJiAhaXNSZWFjdE5hdGl2ZVxuICAgICAgICAgID8gcHJvdG9jb2xzXG4gICAgICAgICAgICA/IG5ldyBXZWJTb2NrZXQodXJpLCBwcm90b2NvbHMpXG4gICAgICAgICAgICA6IG5ldyBXZWJTb2NrZXQodXJpKVxuICAgICAgICAgIDogbmV3IFdlYlNvY2tldCh1cmksIHByb3RvY29scywgb3B0cyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbWl0KFwiZXJyb3JcIiwgZXJyKTtcbiAgICB9XG5cbiAgICB0aGlzLndzLmJpbmFyeVR5cGUgPSB0aGlzLnNvY2tldC5iaW5hcnlUeXBlIHx8IGRlZmF1bHRCaW5hcnlUeXBlO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgZXZlbnQgbGlzdGVuZXJzIHRvIHRoZSBzb2NrZXRcbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGRFdmVudExpc3RlbmVycygpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIHRoaXMud3Mub25vcGVuID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLm9uT3BlbigpO1xuICAgIH07XG4gICAgdGhpcy53cy5vbmNsb3NlID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLm9uQ2xvc2UoKTtcbiAgICB9O1xuICAgIHRoaXMud3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXYpIHtcbiAgICAgIHNlbGYub25EYXRhKGV2LmRhdGEpO1xuICAgIH07XG4gICAgdGhpcy53cy5vbmVycm9yID0gZnVuY3Rpb24oZSkge1xuICAgICAgc2VsZi5vbkVycm9yKFwid2Vic29ja2V0IGVycm9yXCIsIGUpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIGRhdGEgdG8gc29ja2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBvZiBwYWNrZXRzLlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHdyaXRlKHBhY2tldHMpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLndyaXRhYmxlID0gZmFsc2U7XG5cbiAgICAvLyBlbmNvZGVQYWNrZXQgZWZmaWNpZW50IGFzIGl0IHVzZXMgV1MgZnJhbWluZ1xuICAgIC8vIG5vIG5lZWQgZm9yIGVuY29kZVBheWxvYWRcbiAgICBsZXQgdG90YWwgPSBwYWNrZXRzLmxlbmd0aDtcbiAgICBsZXQgaSA9IDA7XG4gICAgY29uc3QgbCA9IHRvdGFsO1xuICAgIGZvciAoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAoZnVuY3Rpb24ocGFja2V0KSB7XG4gICAgICAgIHBhcnNlci5lbmNvZGVQYWNrZXQocGFja2V0LCBzZWxmLnN1cHBvcnRzQmluYXJ5LCBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgLy8gYWx3YXlzIGNyZWF0ZSBhIG5ldyBvYmplY3QgKEdILTQzNylcbiAgICAgICAgICBjb25zdCBvcHRzID0ge307XG4gICAgICAgICAgaWYgKCF1c2luZ0Jyb3dzZXJXZWJTb2NrZXQpIHtcbiAgICAgICAgICAgIGlmIChwYWNrZXQub3B0aW9ucykge1xuICAgICAgICAgICAgICBvcHRzLmNvbXByZXNzID0gcGFja2V0Lm9wdGlvbnMuY29tcHJlc3M7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxmLm9wdHMucGVyTWVzc2FnZURlZmxhdGUpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGVuID1cbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZGF0YVxuICAgICAgICAgICAgICAgICAgPyBCdWZmZXIuYnl0ZUxlbmd0aChkYXRhKVxuICAgICAgICAgICAgICAgICAgOiBkYXRhLmxlbmd0aDtcbiAgICAgICAgICAgICAgaWYgKGxlbiA8IHNlbGYub3B0cy5wZXJNZXNzYWdlRGVmbGF0ZS50aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBvcHRzLmNvbXByZXNzID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTb21ldGltZXMgdGhlIHdlYnNvY2tldCBoYXMgYWxyZWFkeSBiZWVuIGNsb3NlZCBidXQgdGhlIGJyb3dzZXIgZGlkbid0XG4gICAgICAgICAgLy8gaGF2ZSBhIGNoYW5jZSBvZiBpbmZvcm1pbmcgdXMgYWJvdXQgaXQgeWV0LCBpbiB0aGF0IGNhc2Ugc2VuZCB3aWxsXG4gICAgICAgICAgLy8gdGhyb3cgYW4gZXJyb3JcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHVzaW5nQnJvd3NlcldlYlNvY2tldCkge1xuICAgICAgICAgICAgICAvLyBUeXBlRXJyb3IgaXMgdGhyb3duIHdoZW4gcGFzc2luZyB0aGUgc2Vjb25kIGFyZ3VtZW50IG9uIFNhZmFyaVxuICAgICAgICAgICAgICBzZWxmLndzLnNlbmQoZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZWxmLndzLnNlbmQoZGF0YSwgb3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGVidWcoXCJ3ZWJzb2NrZXQgY2xvc2VkIGJlZm9yZSBvbmNsb3NlIGV2ZW50XCIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC0tdG90YWwgfHwgZG9uZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pKHBhY2tldHNbaV0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRvbmUoKSB7XG4gICAgICBzZWxmLmVtaXQoXCJmbHVzaFwiKTtcblxuICAgICAgLy8gZmFrZSBkcmFpblxuICAgICAgLy8gZGVmZXIgdG8gbmV4dCB0aWNrIHRvIGFsbG93IFNvY2tldCB0byBjbGVhciB3cml0ZUJ1ZmZlclxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi53cml0YWJsZSA9IHRydWU7XG4gICAgICAgIHNlbGYuZW1pdChcImRyYWluXCIpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB1cG9uIGNsb3NlXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb25DbG9zZSgpIHtcbiAgICBUcmFuc3BvcnQucHJvdG90eXBlLm9uQ2xvc2UuY2FsbCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgc29ja2V0LlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGRvQ2xvc2UoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLndzICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aGlzLndzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB1cmkgZm9yIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdXJpKCkge1xuICAgIGxldCBxdWVyeSA9IHRoaXMucXVlcnkgfHwge307XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5vcHRzLnNlY3VyZSA/IFwid3NzXCIgOiBcIndzXCI7XG4gICAgbGV0IHBvcnQgPSBcIlwiO1xuXG4gICAgLy8gYXZvaWQgcG9ydCBpZiBkZWZhdWx0IGZvciBzY2hlbWFcbiAgICBpZiAoXG4gICAgICB0aGlzLm9wdHMucG9ydCAmJlxuICAgICAgKChcIndzc1wiID09PSBzY2hlbWEgJiYgTnVtYmVyKHRoaXMub3B0cy5wb3J0KSAhPT0gNDQzKSB8fFxuICAgICAgICAoXCJ3c1wiID09PSBzY2hlbWEgJiYgTnVtYmVyKHRoaXMub3B0cy5wb3J0KSAhPT0gODApKVxuICAgICkge1xuICAgICAgcG9ydCA9IFwiOlwiICsgdGhpcy5vcHRzLnBvcnQ7XG4gICAgfVxuXG4gICAgLy8gYXBwZW5kIHRpbWVzdGFtcCB0byBVUklcbiAgICBpZiAodGhpcy5vcHRzLnRpbWVzdGFtcFJlcXVlc3RzKSB7XG4gICAgICBxdWVyeVt0aGlzLm9wdHMudGltZXN0YW1wUGFyYW1dID0geWVhc3QoKTtcbiAgICB9XG5cbiAgICAvLyBjb21tdW5pY2F0ZSBiaW5hcnkgc3VwcG9ydCBjYXBhYmlsaXRpZXNcbiAgICBpZiAoIXRoaXMuc3VwcG9ydHNCaW5hcnkpIHtcbiAgICAgIHF1ZXJ5LmI2NCA9IDE7XG4gICAgfVxuXG4gICAgcXVlcnkgPSBwYXJzZXFzLmVuY29kZShxdWVyeSk7XG5cbiAgICAvLyBwcmVwZW5kID8gdG8gcXVlcnlcbiAgICBpZiAocXVlcnkubGVuZ3RoKSB7XG4gICAgICBxdWVyeSA9IFwiP1wiICsgcXVlcnk7XG4gICAgfVxuXG4gICAgY29uc3QgaXB2NiA9IHRoaXMub3B0cy5ob3N0bmFtZS5pbmRleE9mKFwiOlwiKSAhPT0gLTE7XG4gICAgcmV0dXJuIChcbiAgICAgIHNjaGVtYSArXG4gICAgICBcIjovL1wiICtcbiAgICAgIChpcHY2ID8gXCJbXCIgKyB0aGlzLm9wdHMuaG9zdG5hbWUgKyBcIl1cIiA6IHRoaXMub3B0cy5ob3N0bmFtZSkgK1xuICAgICAgcG9ydCArXG4gICAgICB0aGlzLm9wdHMucGF0aCArXG4gICAgICBxdWVyeVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmVhdHVyZSBkZXRlY3Rpb24gZm9yIFdlYlNvY2tldC5cbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gd2hldGhlciB0aGlzIHRyYW5zcG9ydCBpcyBhdmFpbGFibGUuXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICBjaGVjaygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgISFXZWJTb2NrZXQgJiZcbiAgICAgICEoXCJfX2luaXRpYWxpemVcIiBpbiBXZWJTb2NrZXQgJiYgdGhpcy5uYW1lID09PSBXUy5wcm90b3R5cGUubmFtZSlcbiAgICApO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gV1M7XG4iLCJtb2R1bGUuZXhwb3J0cy5waWNrID0gKG9iaiwgLi4uYXR0cikgPT4ge1xuICByZXR1cm4gYXR0ci5yZWR1Y2UoKGFjYywgaykgPT4ge1xuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgIGFjY1trXSA9IG9ialtrXTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufTtcbiIsIi8vIGJyb3dzZXIgc2hpbSBmb3IgeG1saHR0cHJlcXVlc3QgbW9kdWxlXG5cbmNvbnN0IGhhc0NPUlMgPSByZXF1aXJlKFwiaGFzLWNvcnNcIik7XG5jb25zdCBnbG9iYWxUaGlzID0gcmVxdWlyZShcIi4vZ2xvYmFsVGhpc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvcHRzKSB7XG4gIGNvbnN0IHhkb21haW4gPSBvcHRzLnhkb21haW47XG5cbiAgLy8gc2NoZW1lIG11c3QgYmUgc2FtZSB3aGVuIHVzaWduIFhEb21haW5SZXF1ZXN0XG4gIC8vIGh0dHA6Ly9ibG9ncy5tc2RuLmNvbS9iL2llaW50ZXJuYWxzL2FyY2hpdmUvMjAxMC8wNS8xMy94ZG9tYWlucmVxdWVzdC1yZXN0cmljdGlvbnMtbGltaXRhdGlvbnMtYW5kLXdvcmthcm91bmRzLmFzcHhcbiAgY29uc3QgeHNjaGVtZSA9IG9wdHMueHNjaGVtZTtcblxuICAvLyBYRG9tYWluUmVxdWVzdCBoYXMgYSBmbG93IG9mIG5vdCBzZW5kaW5nIGNvb2tpZSwgdGhlcmVmb3JlIGl0IHNob3VsZCBiZSBkaXNhYmxlZCBhcyBhIGRlZmF1bHQuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9BdXRvbWF0dGljL2VuZ2luZS5pby1jbGllbnQvcHVsbC8yMTdcbiAgY29uc3QgZW5hYmxlc1hEUiA9IG9wdHMuZW5hYmxlc1hEUjtcblxuICAvLyBYTUxIdHRwUmVxdWVzdCBjYW4gYmUgZGlzYWJsZWQgb24gSUVcbiAgdHJ5IHtcbiAgICBpZiAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICYmICgheGRvbWFpbiB8fCBoYXNDT1JTKSkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge31cblxuICAvLyBVc2UgWERvbWFpblJlcXVlc3QgZm9yIElFOCBpZiBlbmFibGVzWERSIGlzIHRydWVcbiAgLy8gYmVjYXVzZSBsb2FkaW5nIGJhciBrZWVwcyBmbGFzaGluZyB3aGVuIHVzaW5nIGpzb25wLXBvbGxpbmdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3l1amlvc2FrYS9zb2NrZS5pby1pZTgtbG9hZGluZy1leGFtcGxlXG4gIHRyeSB7XG4gICAgaWYgKFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBYRG9tYWluUmVxdWVzdCAmJiAheHNjaGVtZSAmJiBlbmFibGVzWERSKSB7XG4gICAgICByZXR1cm4gbmV3IFhEb21haW5SZXF1ZXN0KCk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7fVxuXG4gIGlmICgheGRvbWFpbikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IGdsb2JhbFRoaXNbW1wiQWN0aXZlXCJdLmNvbmNhdChcIk9iamVjdFwiKS5qb2luKFwiWFwiKV0oXG4gICAgICAgIFwiTWljcm9zb2Z0LlhNTEhUVFBcIlxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG59O1xuIiwiY29uc3QgUEFDS0VUX1RZUEVTID0gT2JqZWN0LmNyZWF0ZShudWxsKTsgLy8gbm8gTWFwID0gbm8gcG9seWZpbGxcblBBQ0tFVF9UWVBFU1tcIm9wZW5cIl0gPSBcIjBcIjtcblBBQ0tFVF9UWVBFU1tcImNsb3NlXCJdID0gXCIxXCI7XG5QQUNLRVRfVFlQRVNbXCJwaW5nXCJdID0gXCIyXCI7XG5QQUNLRVRfVFlQRVNbXCJwb25nXCJdID0gXCIzXCI7XG5QQUNLRVRfVFlQRVNbXCJtZXNzYWdlXCJdID0gXCI0XCI7XG5QQUNLRVRfVFlQRVNbXCJ1cGdyYWRlXCJdID0gXCI1XCI7XG5QQUNLRVRfVFlQRVNbXCJub29wXCJdID0gXCI2XCI7XG5cbmNvbnN0IFBBQ0tFVF9UWVBFU19SRVZFUlNFID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbk9iamVjdC5rZXlzKFBBQ0tFVF9UWVBFUykuZm9yRWFjaChrZXkgPT4ge1xuICBQQUNLRVRfVFlQRVNfUkVWRVJTRVtQQUNLRVRfVFlQRVNba2V5XV0gPSBrZXk7XG59KTtcblxuY29uc3QgRVJST1JfUEFDS0VUID0geyB0eXBlOiBcImVycm9yXCIsIGRhdGE6IFwicGFyc2VyIGVycm9yXCIgfTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIFBBQ0tFVF9UWVBFUyxcbiAgUEFDS0VUX1RZUEVTX1JFVkVSU0UsXG4gIEVSUk9SX1BBQ0tFVFxufTtcbiIsImNvbnN0IHsgUEFDS0VUX1RZUEVTX1JFVkVSU0UsIEVSUk9SX1BBQ0tFVCB9ID0gcmVxdWlyZShcIi4vY29tbW9uc1wiKTtcblxuY29uc3Qgd2l0aE5hdGl2ZUFycmF5QnVmZmVyID0gdHlwZW9mIEFycmF5QnVmZmVyID09PSBcImZ1bmN0aW9uXCI7XG5cbmxldCBiYXNlNjRkZWNvZGVyO1xuaWYgKHdpdGhOYXRpdmVBcnJheUJ1ZmZlcikge1xuICBiYXNlNjRkZWNvZGVyID0gcmVxdWlyZShcImJhc2U2NC1hcnJheWJ1ZmZlclwiKTtcbn1cblxuY29uc3QgZGVjb2RlUGFja2V0ID0gKGVuY29kZWRQYWNrZXQsIGJpbmFyeVR5cGUpID0+IHtcbiAgaWYgKHR5cGVvZiBlbmNvZGVkUGFja2V0ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwibWVzc2FnZVwiLFxuICAgICAgZGF0YTogbWFwQmluYXJ5KGVuY29kZWRQYWNrZXQsIGJpbmFyeVR5cGUpXG4gICAgfTtcbiAgfVxuICBjb25zdCB0eXBlID0gZW5jb2RlZFBhY2tldC5jaGFyQXQoMCk7XG4gIGlmICh0eXBlID09PSBcImJcIikge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcIm1lc3NhZ2VcIixcbiAgICAgIGRhdGE6IGRlY29kZUJhc2U2NFBhY2tldChlbmNvZGVkUGFja2V0LnN1YnN0cmluZygxKSwgYmluYXJ5VHlwZSlcbiAgICB9O1xuICB9XG4gIGNvbnN0IHBhY2tldFR5cGUgPSBQQUNLRVRfVFlQRVNfUkVWRVJTRVt0eXBlXTtcbiAgaWYgKCFwYWNrZXRUeXBlKSB7XG4gICAgcmV0dXJuIEVSUk9SX1BBQ0tFVDtcbiAgfVxuICByZXR1cm4gZW5jb2RlZFBhY2tldC5sZW5ndGggPiAxXG4gICAgPyB7XG4gICAgICAgIHR5cGU6IFBBQ0tFVF9UWVBFU19SRVZFUlNFW3R5cGVdLFxuICAgICAgICBkYXRhOiBlbmNvZGVkUGFja2V0LnN1YnN0cmluZygxKVxuICAgICAgfVxuICAgIDoge1xuICAgICAgICB0eXBlOiBQQUNLRVRfVFlQRVNfUkVWRVJTRVt0eXBlXVxuICAgICAgfTtcbn07XG5cbmNvbnN0IGRlY29kZUJhc2U2NFBhY2tldCA9IChkYXRhLCBiaW5hcnlUeXBlKSA9PiB7XG4gIGlmIChiYXNlNjRkZWNvZGVyKSB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2U2NGRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICAgIHJldHVybiBtYXBCaW5hcnkoZGVjb2RlZCwgYmluYXJ5VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgYmFzZTY0OiB0cnVlLCBkYXRhIH07IC8vIGZhbGxiYWNrIGZvciBvbGQgYnJvd3NlcnNcbiAgfVxufTtcblxuY29uc3QgbWFwQmluYXJ5ID0gKGRhdGEsIGJpbmFyeVR5cGUpID0+IHtcbiAgc3dpdGNoIChiaW5hcnlUeXBlKSB7XG4gICAgY2FzZSBcImJsb2JcIjpcbiAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgPyBuZXcgQmxvYihbZGF0YV0pIDogZGF0YTtcbiAgICBjYXNlIFwiYXJyYXlidWZmZXJcIjpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGRhdGE7IC8vIGFzc3VtaW5nIHRoZSBkYXRhIGlzIGFscmVhZHkgYW4gQXJyYXlCdWZmZXJcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWNvZGVQYWNrZXQ7XG4iLCJjb25zdCB7IFBBQ0tFVF9UWVBFUyB9ID0gcmVxdWlyZShcIi4vY29tbW9uc1wiKTtcblxuY29uc3Qgd2l0aE5hdGl2ZUJsb2IgPVxuICB0eXBlb2YgQmxvYiA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICh0eXBlb2YgQmxvYiAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChCbG9iKSA9PT0gXCJbb2JqZWN0IEJsb2JDb25zdHJ1Y3Rvcl1cIik7XG5jb25zdCB3aXRoTmF0aXZlQXJyYXlCdWZmZXIgPSB0eXBlb2YgQXJyYXlCdWZmZXIgPT09IFwiZnVuY3Rpb25cIjtcblxuLy8gQXJyYXlCdWZmZXIuaXNWaWV3IG1ldGhvZCBpcyBub3QgZGVmaW5lZCBpbiBJRTEwXG5jb25zdCBpc1ZpZXcgPSBvYmogPT4ge1xuICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gXCJmdW5jdGlvblwiXG4gICAgPyBBcnJheUJ1ZmZlci5pc1ZpZXcob2JqKVxuICAgIDogb2JqICYmIG9iai5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcjtcbn07XG5cbmNvbnN0IGVuY29kZVBhY2tldCA9ICh7IHR5cGUsIGRhdGEgfSwgc3VwcG9ydHNCaW5hcnksIGNhbGxiYWNrKSA9PiB7XG4gIGlmICh3aXRoTmF0aXZlQmxvYiAmJiBkYXRhIGluc3RhbmNlb2YgQmxvYikge1xuICAgIGlmIChzdXBwb3J0c0JpbmFyeSkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZW5jb2RlQmxvYkFzQmFzZTY0KGRhdGEsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoXG4gICAgd2l0aE5hdGl2ZUFycmF5QnVmZmVyICYmXG4gICAgKGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBpc1ZpZXcoZGF0YSkpXG4gICkge1xuICAgIGlmIChzdXBwb3J0c0JpbmFyeSkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciA/IGRhdGEgOiBkYXRhLmJ1ZmZlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbmNvZGVCbG9iQXNCYXNlNjQobmV3IEJsb2IoW2RhdGFdKSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxuICAvLyBwbGFpbiBzdHJpbmdcbiAgcmV0dXJuIGNhbGxiYWNrKFBBQ0tFVF9UWVBFU1t0eXBlXSArIChkYXRhIHx8IFwiXCIpKTtcbn07XG5cbmNvbnN0IGVuY29kZUJsb2JBc0Jhc2U2NCA9IChkYXRhLCBjYWxsYmFjaykgPT4ge1xuICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgZmlsZVJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBjb250ZW50ID0gZmlsZVJlYWRlci5yZXN1bHQuc3BsaXQoXCIsXCIpWzFdO1xuICAgIGNhbGxiYWNrKFwiYlwiICsgY29udGVudCk7XG4gIH07XG4gIHJldHVybiBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoZGF0YSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGVuY29kZVBhY2tldDtcbiIsImNvbnN0IGVuY29kZVBhY2tldCA9IHJlcXVpcmUoXCIuL2VuY29kZVBhY2tldFwiKTtcbmNvbnN0IGRlY29kZVBhY2tldCA9IHJlcXVpcmUoXCIuL2RlY29kZVBhY2tldFwiKTtcblxuY29uc3QgU0VQQVJBVE9SID0gU3RyaW5nLmZyb21DaGFyQ29kZSgzMCk7IC8vIHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EZWxpbWl0ZXIjQVNDSUlfZGVsaW1pdGVkX3RleHRcblxuY29uc3QgZW5jb2RlUGF5bG9hZCA9IChwYWNrZXRzLCBjYWxsYmFjaykgPT4ge1xuICAvLyBzb21lIHBhY2tldHMgbWF5IGJlIGFkZGVkIHRvIHRoZSBhcnJheSB3aGlsZSBlbmNvZGluZywgc28gdGhlIGluaXRpYWwgbGVuZ3RoIG11c3QgYmUgc2F2ZWRcbiAgY29uc3QgbGVuZ3RoID0gcGFja2V0cy5sZW5ndGg7XG4gIGNvbnN0IGVuY29kZWRQYWNrZXRzID0gbmV3IEFycmF5KGxlbmd0aCk7XG4gIGxldCBjb3VudCA9IDA7XG5cbiAgcGFja2V0cy5mb3JFYWNoKChwYWNrZXQsIGkpID0+IHtcbiAgICAvLyBmb3JjZSBiYXNlNjQgZW5jb2RpbmcgZm9yIGJpbmFyeSBwYWNrZXRzXG4gICAgZW5jb2RlUGFja2V0KHBhY2tldCwgZmFsc2UsIGVuY29kZWRQYWNrZXQgPT4ge1xuICAgICAgZW5jb2RlZFBhY2tldHNbaV0gPSBlbmNvZGVkUGFja2V0O1xuICAgICAgaWYgKCsrY291bnQgPT09IGxlbmd0aCkge1xuICAgICAgICBjYWxsYmFjayhlbmNvZGVkUGFja2V0cy5qb2luKFNFUEFSQVRPUikpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbmNvbnN0IGRlY29kZVBheWxvYWQgPSAoZW5jb2RlZFBheWxvYWQsIGJpbmFyeVR5cGUpID0+IHtcbiAgY29uc3QgZW5jb2RlZFBhY2tldHMgPSBlbmNvZGVkUGF5bG9hZC5zcGxpdChTRVBBUkFUT1IpO1xuICBjb25zdCBwYWNrZXRzID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZW5jb2RlZFBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBkZWNvZGVkUGFja2V0ID0gZGVjb2RlUGFja2V0KGVuY29kZWRQYWNrZXRzW2ldLCBiaW5hcnlUeXBlKTtcbiAgICBwYWNrZXRzLnB1c2goZGVjb2RlZFBhY2tldCk7XG4gICAgaWYgKGRlY29kZWRQYWNrZXQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhY2tldHM7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcHJvdG9jb2w6IDQsXG4gIGVuY29kZVBhY2tldCxcbiAgZW5jb2RlUGF5bG9hZCxcbiAgZGVjb2RlUGFja2V0LFxuICBkZWNvZGVQYXlsb2FkXG59O1xuIiwiXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICpcbiAqIExvZ2ljIGJvcnJvd2VkIGZyb20gTW9kZXJuaXpyOlxuICpcbiAqICAgLSBodHRwczovL2dpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9ibG9iL21hc3Rlci9mZWF0dXJlLWRldGVjdHMvY29ycy5qc1xuICovXG5cbnRyeSB7XG4gIG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICd3aXRoQ3JlZGVudGlhbHMnIGluIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xufSBjYXRjaCAoZXJyKSB7XG4gIC8vIGlmIFhNTEh0dHAgc3VwcG9ydCBpcyBkaXNhYmxlZCBpbiBJRSB0aGVuIGl0IHdpbGwgdGhyb3dcbiAgLy8gd2hlbiB0cnlpbmcgdG8gY3JlYXRlXG4gIG1vZHVsZS5leHBvcnRzID0gZmFsc2U7XG59XG4iLCIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHcgPSBkICogNztcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEB0aHJvd3Mge0Vycm9yfSB0aHJvdyBhbiBlcnJvciBpZiB2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIG51bWJlclxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbDtcbiAgaWYgKHR5cGUgPT09ICdzdHJpbmcnICYmIHZhbC5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnNlKHZhbCk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUodmFsKSkge1xuICAgIHJldHVybiBvcHRpb25zLmxvbmcgPyBmbXRMb25nKHZhbCkgOiBmbXRTaG9ydCh2YWwpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAndmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD0nICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KHZhbClcbiAgKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGBzdHJgIGFuZCByZXR1cm4gbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlKHN0cikge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHN0ci5sZW5ndGggPiAxMDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG1hdGNoID0gL14oLT8oPzpcXGQrKT9cXC4/XFxkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHdlZWtzP3x3fHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKFxuICAgIHN0clxuICApO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICd3ZWVrcyc6XG4gICAgY2FzZSAnd2Vlayc6XG4gICAgY2FzZSAndyc6XG4gICAgICByZXR1cm4gbiAqIHc7XG4gICAgY2FzZSAnZGF5cyc6XG4gICAgY2FzZSAnZGF5JzpcbiAgICBjYXNlICdkJzpcbiAgICAgIHJldHVybiBuICogZDtcbiAgICBjYXNlICdob3Vycyc6XG4gICAgY2FzZSAnaG91cic6XG4gICAgY2FzZSAnaHJzJzpcbiAgICBjYXNlICdocic6XG4gICAgY2FzZSAnaCc6XG4gICAgICByZXR1cm4gbiAqIGg7XG4gICAgY2FzZSAnbWludXRlcyc6XG4gICAgY2FzZSAnbWludXRlJzpcbiAgICBjYXNlICdtaW5zJzpcbiAgICBjYXNlICdtaW4nOlxuICAgIGNhc2UgJ20nOlxuICAgICAgcmV0dXJuIG4gKiBtO1xuICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgY2FzZSAnc2Vjcyc6XG4gICAgY2FzZSAnc2VjJzpcbiAgICBjYXNlICdzJzpcbiAgICAgIHJldHVybiBuICogcztcbiAgICBjYXNlICdtaWxsaXNlY29uZHMnOlxuICAgIGNhc2UgJ21pbGxpc2Vjb25kJzpcbiAgICBjYXNlICdtc2Vjcyc6XG4gICAgY2FzZSAnbXNlYyc6XG4gICAgY2FzZSAnbXMnOlxuICAgICAgcmV0dXJuIG47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBTaG9ydCBmb3JtYXQgZm9yIGBtc2AuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG1zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBmbXRTaG9ydChtcykge1xuICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gIGlmIChtc0FicyA+PSBkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBkKSArICdkJztcbiAgfVxuICBpZiAobXNBYnMgPj0gaCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gaCkgKyAnaCc7XG4gIH1cbiAgaWYgKG1zQWJzID49IG0pIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG0pICsgJ20nO1xuICB9XG4gIGlmIChtc0FicyA+PSBzKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBzKSArICdzJztcbiAgfVxuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10TG9uZyhtcykge1xuICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gIGlmIChtc0FicyA+PSBkKSB7XG4gICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIGQsICdkYXknKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gaCkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBoLCAnaG91cicpO1xuICB9XG4gIGlmIChtc0FicyA+PSBtKSB7XG4gICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIG0sICdtaW51dGUnKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gcykge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBzLCAnc2Vjb25kJyk7XG4gIH1cbiAgcmV0dXJuIG1zICsgJyBtcyc7XG59XG5cbi8qKlxuICogUGx1cmFsaXphdGlvbiBoZWxwZXIuXG4gKi9cblxuZnVuY3Rpb24gcGx1cmFsKG1zLCBtc0FicywgbiwgbmFtZSkge1xuICB2YXIgaXNQbHVyYWwgPSBtc0FicyA+PSBuICogMS41O1xuICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG4pICsgJyAnICsgbmFtZSArIChpc1BsdXJhbCA/ICdzJyA6ICcnKTtcbn1cbiIsIi8qISBwNS5qcyB2MS4yLjAgRGVjZW1iZXIgMTksIDIwMjAgKi9cblxuIWZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPWUoKTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClkZWZpbmUoW10sZSk7ZWxzZXsoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzKS5wNT1lKCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBhKG8scyxsKXtmdW5jdGlvbiB1KHQsZSl7aWYoIXNbdF0pe2lmKCFvW3RdKXt2YXIgcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZyKXJldHVybiByKHQsITApO2lmKGgpcmV0dXJuIGgodCwhMCk7dmFyIGk9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIit0K1wiJ1wiKTt0aHJvdyBpLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsaX12YXIgbj1zW3RdPXtleHBvcnRzOnt9fTtvW3RdWzBdLmNhbGwobi5leHBvcnRzLGZ1bmN0aW9uKGUpe3JldHVybiB1KG9bdF1bMV1bZV18fGUpfSxuLG4uZXhwb3J0cyxhLG8scyxsKX1yZXR1cm4gc1t0XS5leHBvcnRzfWZvcih2YXIgaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKyl1KGxbZV0pO3JldHVybiB1fSh7MTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3IuYnl0ZUxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1jKGUpLHI9dFswXSxpPXRbMV07cmV0dXJuIDMqKHIraSkvNC1pfSxyLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe3ZhciB0LHIsaT1jKGUpLG49aVswXSxhPWlbMV0sbz1uZXcgaChmdW5jdGlvbihlLHQpe3JldHVybiAzKihlK3QpLzQtdH0obixhKSkscz0wLGw9MDxhP24tNDpuO2ZvcihyPTA7cjxsO3IrPTQpdD11W2UuY2hhckNvZGVBdChyKV08PDE4fHVbZS5jaGFyQ29kZUF0KHIrMSldPDwxMnx1W2UuY2hhckNvZGVBdChyKzIpXTw8Nnx1W2UuY2hhckNvZGVBdChyKzMpXSxvW3MrK109dD4+MTYmMjU1LG9bcysrXT10Pj44JjI1NSxvW3MrK109MjU1JnQ7Mj09PWEmJih0PXVbZS5jaGFyQ29kZUF0KHIpXTw8Mnx1W2UuY2hhckNvZGVBdChyKzEpXT4+NCxvW3MrK109MjU1JnQpOzE9PT1hJiYodD11W2UuY2hhckNvZGVBdChyKV08PDEwfHVbZS5jaGFyQ29kZUF0KHIrMSldPDw0fHVbZS5jaGFyQ29kZUF0KHIrMildPj4yLG9bcysrXT10Pj44JjI1NSxvW3MrK109MjU1JnQpO3JldHVybiBvfSxyLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9ZS5sZW5ndGgsaT1yJTMsbj1bXSxhPTAsbz1yLWk7YTxvO2ErPTE2MzgzKW4ucHVzaChsKGUsYSxvPGErMTYzODM/bzphKzE2MzgzKSk7MT09aT8odD1lW3ItMV0sbi5wdXNoKHNbdD4+Ml0rc1t0PDw0JjYzXStcIj09XCIpKToyPT1pJiYodD0oZVtyLTJdPDw4KStlW3ItMV0sbi5wdXNoKHNbdD4+MTBdK3NbdD4+NCY2M10rc1t0PDwyJjYzXStcIj1cIikpO3JldHVybiBuLmpvaW4oXCJcIil9O2Zvcih2YXIgcz1bXSx1PVtdLGg9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxpPVwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1wiLG49MCxhPWkubGVuZ3RoO248YTsrK24pc1tuXT1pW25dLHVbaS5jaGFyQ29kZUF0KG4pXT1uO2Z1bmN0aW9uIGMoZSl7dmFyIHQ9ZS5sZW5ndGg7aWYoMDx0JTQpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNFwiKTt2YXIgcj1lLmluZGV4T2YoXCI9XCIpO3JldHVybi0xPT09ciYmKHI9dCksW3Iscj09PXQ/MDo0LXIlNF19ZnVuY3Rpb24gbChlLHQscil7Zm9yKHZhciBpLG4sYT1bXSxvPXQ7bzxyO28rPTMpaT0oZVtvXTw8MTYmMTY3MTE2ODApKyhlW28rMV08PDgmNjUyODApKygyNTUmZVtvKzJdKSxhLnB1c2goc1sobj1pKT4+MTgmNjNdK3Nbbj4+MTImNjNdK3Nbbj4+NiY2M10rc1s2MyZuXSk7cmV0dXJuIGEuam9pbihcIlwiKX11W1wiLVwiLmNoYXJDb2RlQXQoMCldPTYyLHVbXCJfXCIuY2hhckNvZGVBdCgwKV09NjN9LHt9XSwyOltmdW5jdGlvbihlLHQscil7fSx7fV0sMzpbZnVuY3Rpb24oZSx0LHIpe2FyZ3VtZW50c1s0XVsyXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6Mn1dLDQ6W2Z1bmN0aW9uKE4sZSxGKXsoZnVuY3Rpb24oYyl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGk9TihcImJhc2U2NC1qc1wiKSxhPU4oXCJpZWVlNzU0XCIpLGU9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoXCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbVwiKTpudWxsO0YuQnVmZmVyPWMsRi5TbG93QnVmZmVyPWZ1bmN0aW9uKGUpeytlIT1lJiYoZT0wKTtyZXR1cm4gYy5hbGxvYygrZSl9LEYuSU5TUEVDVF9NQVhfQllURVM9NTA7dmFyIHI9MjE0NzQ4MzY0NztmdW5jdGlvbiBvKGUpe2lmKHI8ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIFwiJytlKydcIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gXCJzaXplXCInKTt2YXIgdD1uZXcgVWludDhBcnJheShlKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYy5wcm90b3R5cGUpLHR9ZnVuY3Rpb24gYyhlLHQscil7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGUpcmV0dXJuIG4oZSx0LHIpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInN0cmluZ1wiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIGwoZSl9ZnVuY3Rpb24gbihlLHQscil7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJlwiXCIhPT10fHwodD1cInV0ZjhcIik7aWYoIWMuaXNFbmNvZGluZyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5rbm93biBlbmNvZGluZzogXCIrdCk7dmFyIHI9MHxmKGUsdCksaT1vKHIpLG49aS53cml0ZShlLHQpO24hPT1yJiYoaT1pLnNsaWNlKDAsbikpO3JldHVybiBpfShlLHQpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhlKSlyZXR1cm4gdShlKTtpZihudWxsPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSBcIit0eXBlb2YgZSk7aWYoQShlLEFycmF5QnVmZmVyKXx8ZSYmQShlLmJ1ZmZlcixBcnJheUJ1ZmZlcikpcmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXtpZih0PDB8fGUuYnl0ZUxlbmd0aDx0KXRocm93IG5ldyBSYW5nZUVycm9yKCdcIm9mZnNldFwiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKGUuYnl0ZUxlbmd0aDx0KyhyfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJsZW5ndGhcIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTt2YXIgaTtpPXZvaWQgMD09PXQmJnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkoZSk6dm9pZCAwPT09cj9uZXcgVWludDhBcnJheShlLHQpOm5ldyBVaW50OEFycmF5KGUsdCxyKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGksYy5wcm90b3R5cGUpLGl9KGUsdCxyKTtpZihcIm51bWJlclwiPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3ZhciBpPWUudmFsdWVPZiYmZS52YWx1ZU9mKCk7aWYobnVsbCE9aSYmaSE9PWUpcmV0dXJuIGMuZnJvbShpLHQscik7dmFyIG49ZnVuY3Rpb24oZSl7aWYoYy5pc0J1ZmZlcihlKSl7dmFyIHQ9MHxoKGUubGVuZ3RoKSxyPW8odCk7cmV0dXJuIDA9PT1yLmxlbmd0aHx8ZS5jb3B5KHIsMCwwLHQpLHJ9aWYodm9pZCAwIT09ZS5sZW5ndGgpcmV0dXJuXCJudW1iZXJcIiE9dHlwZW9mIGUubGVuZ3RofHxJKGUubGVuZ3RoKT9vKDApOnUoZSk7aWYoXCJCdWZmZXJcIj09PWUudHlwZSYmQXJyYXkuaXNBcnJheShlLmRhdGEpKXJldHVybiB1KGUuZGF0YSl9KGUpO2lmKG4pcmV0dXJuIG47aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnRvUHJpbWl0aXZlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlW1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIGMuZnJvbShlW1N5bWJvbC50b1ByaW1pdGl2ZV0oXCJzdHJpbmdcIiksdCxyKTt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgXCIrdHlwZW9mIGUpfWZ1bmN0aW9uIHMoZSl7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIFwiJytlKydcIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gXCJzaXplXCInKX1mdW5jdGlvbiBsKGUpe3JldHVybiBzKGUpLG8oZTwwPzA6MHxoKGUpKX1mdW5jdGlvbiB1KGUpe2Zvcih2YXIgdD1lLmxlbmd0aDwwPzA6MHxoKGUubGVuZ3RoKSxyPW8odCksaT0wO2k8dDtpKz0xKXJbaV09MjU1JmVbaV07cmV0dXJuIHJ9ZnVuY3Rpb24gaChlKXtpZihyPD1lKXRocm93IG5ldyBSYW5nZUVycm9yKFwiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweFwiK3IudG9TdHJpbmcoMTYpK1wiIGJ5dGVzXCIpO3JldHVybiAwfGV9ZnVuY3Rpb24gZihlLHQpe2lmKGMuaXNCdWZmZXIoZSkpcmV0dXJuIGUubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhlKXx8QShlLEFycmF5QnVmZmVyKSlyZXR1cm4gZS5ieXRlTGVuZ3RoO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInN0cmluZ1wiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIG9yIEFycmF5QnVmZmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGUpO3ZhciByPWUubGVuZ3RoLGk9Mjxhcmd1bWVudHMubGVuZ3RoJiYhMD09PWFyZ3VtZW50c1syXTtpZighaSYmMD09PXIpcmV0dXJuIDA7Zm9yKHZhciBuPSExOzspc3dpdGNoKHQpe2Nhc2VcImFzY2lpXCI6Y2FzZVwibGF0aW4xXCI6Y2FzZVwiYmluYXJ5XCI6cmV0dXJuIHI7Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6cmV0dXJuIFIoZSkubGVuZ3RoO2Nhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOnJldHVybiAyKnI7Y2FzZVwiaGV4XCI6cmV0dXJuIHI+Pj4xO2Nhc2VcImJhc2U2NFwiOnJldHVybiBEKGUpLmxlbmd0aDtkZWZhdWx0OmlmKG4pcmV0dXJuIGk/LTE6UihlKS5sZW5ndGg7dD0oXCJcIit0KS50b0xvd2VyQ2FzZSgpLG49ITB9fWZ1bmN0aW9uIGQoZSx0LHIpe3ZhciBpPWVbdF07ZVt0XT1lW3JdLGVbcl09aX1mdW5jdGlvbiBwKGUsdCxyLGksbil7aWYoMD09PWUubGVuZ3RoKXJldHVybi0xO2lmKFwic3RyaW5nXCI9PXR5cGVvZiByPyhpPXIscj0wKToyMTQ3NDgzNjQ3PHI/cj0yMTQ3NDgzNjQ3OnI8LTIxNDc0ODM2NDgmJihyPS0yMTQ3NDgzNjQ4KSxJKHI9K3IpJiYocj1uPzA6ZS5sZW5ndGgtMSkscjwwJiYocj1lLmxlbmd0aCtyKSxyPj1lLmxlbmd0aCl7aWYobilyZXR1cm4tMTtyPWUubGVuZ3RoLTF9ZWxzZSBpZihyPDApe2lmKCFuKXJldHVybi0xO3I9MH1pZihcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9Yy5mcm9tKHQsaSkpLGMuaXNCdWZmZXIodCkpcmV0dXJuIDA9PT10Lmxlbmd0aD8tMTptKGUsdCxyLGksbik7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpcmV0dXJuIHQmPTI1NSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP24/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUsdCxyKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGUsdCxyKTptKGUsW3RdLHIsaSxuKTt0aHJvdyBuZXcgVHlwZUVycm9yKFwidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyXCIpfWZ1bmN0aW9uIG0oZSx0LHIsaSxuKXt2YXIgYSxvPTEscz1lLmxlbmd0aCxsPXQubGVuZ3RoO2lmKHZvaWQgMCE9PWkmJihcInVjczJcIj09PShpPVN0cmluZyhpKS50b0xvd2VyQ2FzZSgpKXx8XCJ1Y3MtMlwiPT09aXx8XCJ1dGYxNmxlXCI9PT1pfHxcInV0Zi0xNmxlXCI9PT1pKSl7aWYoZS5sZW5ndGg8Mnx8dC5sZW5ndGg8MilyZXR1cm4tMTtzLz1vPTIsbC89MixyLz0yfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gMT09PW8/ZVt0XTplLnJlYWRVSW50MTZCRSh0Km8pfWlmKG4pe3ZhciBoPS0xO2ZvcihhPXI7YTxzO2ErKylpZih1KGUsYSk9PT11KHQsLTE9PT1oPzA6YS1oKSl7aWYoLTE9PT1oJiYoaD1hKSxhLWgrMT09PWwpcmV0dXJuIGgqb31lbHNlLTEhPT1oJiYoYS09YS1oKSxoPS0xfWVsc2UgZm9yKHM8citsJiYocj1zLWwpLGE9cjswPD1hO2EtLSl7Zm9yKHZhciBjPSEwLGY9MDtmPGw7ZisrKWlmKHUoZSxhK2YpIT09dSh0LGYpKXtjPSExO2JyZWFrfWlmKGMpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gdihlLHQscixpKXtyPU51bWJlcihyKXx8MDt2YXIgbj1lLmxlbmd0aC1yO2k/bjwoaT1OdW1iZXIoaSkpJiYoaT1uKTppPW47dmFyIGE9dC5sZW5ndGg7YS8yPGkmJihpPWEvMik7Zm9yKHZhciBvPTA7bzxpOysrbyl7dmFyIHM9cGFyc2VJbnQodC5zdWJzdHIoMipvLDIpLDE2KTtpZihJKHMpKXJldHVybiBvO2VbcitvXT1zfXJldHVybiBvfWZ1bmN0aW9uIHkoZSx0LHIsaSl7cmV0dXJuIGsoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MDtyPGUubGVuZ3RoOysrcil0LnB1c2goMjU1JmUuY2hhckNvZGVBdChyKSk7cmV0dXJuIHR9KHQpLGUscixpKX1mdW5jdGlvbiBnKGUsdCxyLGkpe3JldHVybiBrKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByLGksbixhPVtdLG89MDtvPGUubGVuZ3RoJiYhKCh0LT0yKTwwKTsrK28pcj1lLmNoYXJDb2RlQXQobyksaT1yPj44LG49ciUyNTYsYS5wdXNoKG4pLGEucHVzaChpKTtyZXR1cm4gYX0odCxlLmxlbmd0aC1yKSxlLHIsaSl9ZnVuY3Rpb24gYihlLHQscil7cmV0dXJuIDA9PT10JiZyPT09ZS5sZW5ndGg/aS5mcm9tQnl0ZUFycmF5KGUpOmkuZnJvbUJ5dGVBcnJheShlLnNsaWNlKHQscikpfWZ1bmN0aW9uIF8oZSx0LHIpe3I9TWF0aC5taW4oZS5sZW5ndGgscik7Zm9yKHZhciBpPVtdLG49dDtuPHI7KXt2YXIgYSxvLHMsbCx1PWVbbl0saD1udWxsLGM9MjM5PHU/NDoyMjM8dT8zOjE5MTx1PzI6MTtpZihuK2M8PXIpc3dpdGNoKGMpe2Nhc2UgMTp1PDEyOCYmKGg9dSk7YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYoYT1lW24rMV0pKSYmMTI3PChsPSgzMSZ1KTw8Nnw2MyZhKSYmKGg9bCk7YnJlYWs7Y2FzZSAzOmE9ZVtuKzFdLG89ZVtuKzJdLDEyOD09KDE5MiZhKSYmMTI4PT0oMTkyJm8pJiYyMDQ3PChsPSgxNSZ1KTw8MTJ8KDYzJmEpPDw2fDYzJm8pJiYobDw1NTI5Nnx8NTczNDM8bCkmJihoPWwpO2JyZWFrO2Nhc2UgNDphPWVbbisxXSxvPWVbbisyXSxzPWVbbiszXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiY2NTUzNTwobD0oMTUmdSk8PDE4fCg2MyZhKTw8MTJ8KDYzJm8pPDw2fDYzJnMpJiZsPDExMTQxMTImJihoPWwpfW51bGw9PT1oPyhoPTY1NTMzLGM9MSk6NjU1MzU8aCYmKGgtPTY1NTM2LGkucHVzaChoPj4+MTAmMTAyM3w1NTI5NiksaD01NjMyMHwxMDIzJmgpLGkucHVzaChoKSxuKz1jfXJldHVybiBmdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtpZih0PD14KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxlKTt2YXIgcj1cIlwiLGk9MDtmb3IoO2k8dDspcis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZS5zbGljZShpLGkrPXgpKTtyZXR1cm4gcn0oaSl9Ri5rTWF4TGVuZ3RoPXIsKGMuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVWludDhBcnJheSgxKSx0PXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHQsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpLDQyPT09ZS5mb28oKX1jYXRjaChlKXtyZXR1cm4hMX19KCkpfHxcInVuZGVmaW5lZFwiPT10eXBlb2YgY29uc29sZXx8XCJmdW5jdGlvblwiIT10eXBlb2YgY29uc29sZS5lcnJvcnx8Y29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBsYWNrcyB0eXBlZCBhcnJheSAoVWludDhBcnJheSkgc3VwcG9ydCB3aGljaCBpcyByZXF1aXJlZCBieSBgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LlwiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsXCJwYXJlbnRcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihjLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsXCJvZmZzZXRcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihjLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnNwZWNpZXMmJmNbU3ltYm9sLnNwZWNpZXNdPT09YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsU3ltYm9sLnNwZWNpZXMse3ZhbHVlOm51bGwsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITF9KSxjLnBvb2xTaXplPTgxOTIsYy5mcm9tPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbihlLHQscil9LE9iamVjdC5zZXRQcm90b3R5cGVPZihjLnByb3RvdHlwZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKGMsVWludDhBcnJheSksYy5hbGxvYz1mdW5jdGlvbihlLHQscil7cmV0dXJuIG49dCxhPXIscyhpPWUpLGk8PTA/byhpKTp2b2lkIDAhPT1uP1wic3RyaW5nXCI9PXR5cGVvZiBhP28oaSkuZmlsbChuLGEpOm8oaSkuZmlsbChuKTpvKGkpO3ZhciBpLG4sYX0sYy5hbGxvY1Vuc2FmZT1mdW5jdGlvbihlKXtyZXR1cm4gbChlKX0sYy5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSl9LGMuaXNCdWZmZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJiEwPT09ZS5faXNCdWZmZXImJmUhPT1jLnByb3RvdHlwZX0sYy5jb21wYXJlPWZ1bmN0aW9uKGUsdCl7aWYoQShlLFVpbnQ4QXJyYXkpJiYoZT1jLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpKSxBKHQsVWludDhBcnJheSkmJih0PWMuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLCFjLmlzQnVmZmVyKGUpfHwhYy5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJidWYxXCIsIFwiYnVmMlwiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYoZT09PXQpcmV0dXJuIDA7Zm9yKHZhciByPWUubGVuZ3RoLGk9dC5sZW5ndGgsbj0wLGE9TWF0aC5taW4ocixpKTtuPGE7KytuKWlmKGVbbl0hPT10W25dKXtyPWVbbl0saT10W25dO2JyZWFrfXJldHVybiByPGk/LTE6aTxyPzE6MH0sYy5pc0VuY29kaW5nPWZ1bmN0aW9uKGUpe3N3aXRjaChTdHJpbmcoZSkudG9Mb3dlckNhc2UoKSl7Y2FzZVwiaGV4XCI6Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6Y2FzZVwiYXNjaWlcIjpjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpjYXNlXCJiYXNlNjRcIjpjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sYy5jb25jYXQ9ZnVuY3Rpb24oZSx0KXtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RcIiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGMuYWxsb2MoMCk7dmFyIHI7aWYodm9pZCAwPT09dClmb3Iocj10PTA7cjxlLmxlbmd0aDsrK3IpdCs9ZVtyXS5sZW5ndGg7dmFyIGk9Yy5hbGxvY1Vuc2FmZSh0KSxuPTA7Zm9yKHI9MDtyPGUubGVuZ3RoOysrcil7dmFyIGE9ZVtyXTtpZihBKGEsVWludDhBcnJheSkmJihhPWMuZnJvbShhKSksIWMuaXNCdWZmZXIoYSkpdGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7YS5jb3B5KGksbiksbis9YS5sZW5ndGh9cmV0dXJuIGl9LGMuYnl0ZUxlbmd0aD1mLGMucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxjLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlJTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0c1wiKTtmb3IodmFyIHQ9MDt0PGU7dCs9MilkKHRoaXMsdCx0KzEpO3JldHVybiB0aGlzfSxjLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlJTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0c1wiKTtmb3IodmFyIHQ9MDt0PGU7dCs9NClkKHRoaXMsdCx0KzMpLGQodGhpcyx0KzEsdCsyKTtyZXR1cm4gdGhpc30sYy5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKFwiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHNcIik7Zm9yKHZhciB0PTA7dDxlO3QrPTgpZCh0aGlzLHQsdCs3KSxkKHRoaXMsdCsxLHQrNiksZCh0aGlzLHQrMix0KzUpLGQodGhpcyx0KzMsdCs0KTtyZXR1cm4gdGhpc30sYy5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmxlbmd0aDtyZXR1cm4gMD09PWU/XCJcIjowPT09YXJndW1lbnRzLmxlbmd0aD9fKHRoaXMsMCxlKTpmdW5jdGlvbihlLHQscil7dmFyIGk9ITE7aWYoKHZvaWQgMD09PXR8fHQ8MCkmJih0PTApLHQ+dGhpcy5sZW5ndGgpcmV0dXJuXCJcIjtpZigodm9pZCAwPT09cnx8cj50aGlzLmxlbmd0aCkmJihyPXRoaXMubGVuZ3RoKSxyPD0wKXJldHVyblwiXCI7aWYoKHI+Pj49MCk8PSh0Pj4+PTApKXJldHVyblwiXCI7Zm9yKGU9ZXx8XCJ1dGY4XCI7Oylzd2l0Y2goZSl7Y2FzZVwiaGV4XCI6cmV0dXJuIE0odGhpcyx0LHIpO2Nhc2VcInV0ZjhcIjpjYXNlXCJ1dGYtOFwiOnJldHVybiBfKHRoaXMsdCxyKTtjYXNlXCJhc2NpaVwiOnJldHVybiB3KHRoaXMsdCxyKTtjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm4gUyh0aGlzLHQscik7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIGIodGhpcyx0LHIpO2Nhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOnJldHVybiBUKHRoaXMsdCxyKTtkZWZhdWx0OmlmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK2UpO2U9KGUrXCJcIikudG9Mb3dlckNhc2UoKSxpPSEwfX0uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxjLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oZSl7aWYoIWMuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXJcIik7cmV0dXJuIHRoaXM9PT1lfHwwPT09Yy5jb21wYXJlKHRoaXMsZSl9LGMucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgZT1cIlwiLHQ9Ri5JTlNQRUNUX01BWF9CWVRFUztyZXR1cm4gZT10aGlzLnRvU3RyaW5nKFwiaGV4XCIsMCx0KS5yZXBsYWNlKC8oLnsyfSkvZyxcIiQxIFwiKS50cmltKCksdGhpcy5sZW5ndGg+dCYmKGUrPVwiIC4uLiBcIiksXCI8QnVmZmVyIFwiK2UrXCI+XCJ9LGUmJihjLnByb3RvdHlwZVtlXT1jLnByb3RvdHlwZS5pbnNwZWN0KSxjLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKGUsdCxyLGksbil7aWYoQShlLFVpbnQ4QXJyYXkpJiYoZT1jLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpKSwhYy5pc0J1ZmZlcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJ0YXJnZXRcIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGUpO2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PXImJihyPWU/ZS5sZW5ndGg6MCksdm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09biYmKG49dGhpcy5sZW5ndGgpLHQ8MHx8cj5lLmxlbmd0aHx8aTwwfHxuPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwib3V0IG9mIHJhbmdlIGluZGV4XCIpO2lmKG48PWkmJnI8PXQpcmV0dXJuIDA7aWYobjw9aSlyZXR1cm4tMTtpZihyPD10KXJldHVybiAxO2lmKHRoaXM9PT1lKXJldHVybiAwO2Zvcih2YXIgYT0obj4+Pj0wKS0oaT4+Pj0wKSxvPShyPj4+PTApLSh0Pj4+PTApLHM9TWF0aC5taW4oYSxvKSxsPXRoaXMuc2xpY2UoaSxuKSx1PWUuc2xpY2UodCxyKSxoPTA7aDxzOysraClpZihsW2hdIT09dVtoXSl7YT1sW2hdLG89dVtoXTticmVha31yZXR1cm4gYTxvPy0xOm88YT8xOjB9LGMucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZihlLHQscil9LGMucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBwKHRoaXMsZSx0LHIsITApfSxjLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHAodGhpcyxlLHQsciwhMSl9LGMucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUsdCxyLGkpe2lmKHZvaWQgMD09PXQpaT1cInV0ZjhcIixyPXRoaXMubGVuZ3RoLHQ9MDtlbHNlIGlmKHZvaWQgMD09PXImJlwic3RyaW5nXCI9PXR5cGVvZiB0KWk9dCxyPXRoaXMubGVuZ3RoLHQ9MDtlbHNle2lmKCFpc0Zpbml0ZSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZFwiKTt0Pj4+PTAsaXNGaW5pdGUocik/KHI+Pj49MCx2b2lkIDA9PT1pJiYoaT1cInV0ZjhcIikpOihpPXIscj12b2lkIDApfXZhciBuPXRoaXMubGVuZ3RoLXQ7aWYoKHZvaWQgMD09PXJ8fG48cikmJihyPW4pLDA8ZS5sZW5ndGgmJihyPDB8fHQ8MCl8fHQ+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kc1wiKTtpPWl8fFwidXRmOFwiO2Zvcih2YXIgYSxvLHMsbCx1LGgsYz0hMTs7KXN3aXRjaChpKXtjYXNlXCJoZXhcIjpyZXR1cm4gdih0aGlzLGUsdCxyKTtjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpyZXR1cm4gdT10LGg9cixrKFIoZSwobD10aGlzKS5sZW5ndGgtdSksbCx1LGgpO2Nhc2VcImFzY2lpXCI6cmV0dXJuIHkodGhpcyxlLHQscik7Y2FzZVwibGF0aW4xXCI6Y2FzZVwiYmluYXJ5XCI6cmV0dXJuIHkodGhpcyxlLHQscik7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIGE9dGhpcyxvPXQscz1yLGsoRChlKSxhLG8scyk7Y2FzZVwidWNzMlwiOmNhc2VcInVjcy0yXCI6Y2FzZVwidXRmMTZsZVwiOmNhc2VcInV0Zi0xNmxlXCI6cmV0dXJuIGcodGhpcyxlLHQscik7ZGVmYXVsdDppZihjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIitpKTtpPShcIlwiK2kpLnRvTG93ZXJDYXNlKCksYz0hMH19LGMucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOlwiQnVmZmVyXCIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTt2YXIgeD00MDk2O2Z1bmN0aW9uIHcoZSx0LHIpe3ZhciBpPVwiXCI7cj1NYXRoLm1pbihlLmxlbmd0aCxyKTtmb3IodmFyIG49dDtuPHI7KytuKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JmVbbl0pO3JldHVybiBpfWZ1bmN0aW9uIFMoZSx0LHIpe3ZhciBpPVwiXCI7cj1NYXRoLm1pbihlLmxlbmd0aCxyKTtmb3IodmFyIG49dDtuPHI7KytuKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtuXSk7cmV0dXJuIGl9ZnVuY3Rpb24gTShlLHQscil7dmFyIGk9ZS5sZW5ndGg7KCF0fHx0PDApJiYodD0wKSwoIXJ8fHI8MHx8aTxyKSYmKHI9aSk7Zm9yKHZhciBuPVwiXCIsYT10O2E8cjsrK2Epbis9VVtlW2FdXTtyZXR1cm4gbn1mdW5jdGlvbiBUKGUsdCxyKXtmb3IodmFyIGk9ZS5zbGljZSh0LHIpLG49XCJcIixhPTA7YTxpLmxlbmd0aDthKz0yKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUoaVthXSsyNTYqaVthKzFdKTtyZXR1cm4gbn1mdW5jdGlvbiBFKGUsdCxyKXtpZihlJTEhPTB8fGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIm9mZnNldCBpcyBub3QgdWludFwiKTtpZihyPGUrdCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGhcIil9ZnVuY3Rpb24gQyhlLHQscixpLG4sYSl7aWYoIWMuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignXCJidWZmZXJcIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYobjx0fHx0PGEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1widmFsdWVcIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYocitpPmUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5kZXggb3V0IG9mIHJhbmdlXCIpfWZ1bmN0aW9uIEwoZSx0LHIsaSl7aWYocitpPmUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5kZXggb3V0IG9mIHJhbmdlXCIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKX1mdW5jdGlvbiBPKGUsdCxyLGksbil7cmV0dXJuIHQ9K3Qscj4+Pj0wLG58fEwoZSwwLHIsNCksYS53cml0ZShlLHQscixpLDIzLDQpLHIrNH1mdW5jdGlvbiBQKGUsdCxyLGksbil7cmV0dXJuIHQ9K3Qscj4+Pj0wLG58fEwoZSwwLHIsOCksYS53cml0ZShlLHQscixpLDUyLDgpLHIrOH1jLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMubGVuZ3RoOyhlPX5+ZSk8MD8oZSs9cik8MCYmKGU9MCk6cjxlJiYoZT1yKSwodD12b2lkIDA9PT10P3I6fn50KTwwPyh0Kz1yKTwwJiYodD0wKTpyPHQmJih0PXIpLHQ8ZSYmKHQ9ZSk7dmFyIGk9dGhpcy5zdWJhcnJheShlLHQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoaSxjLnByb3RvdHlwZSksaX0sYy5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbihlLHQscil7ZT4+Pj0wLHQ+Pj49MCxyfHxFKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPXRoaXNbZV0sbj0xLGE9MDsrK2E8dCYmKG4qPTI1Nik7KWkrPXRoaXNbZSthXSpuO3JldHVybiBpfSxjLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKGUsdCxyKXtlPj4+PTAsdD4+Pj0wLHJ8fEUoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIGk9dGhpc1tlKy0tdF0sbj0xOzA8dCYmKG4qPTI1Nik7KWkrPXRoaXNbZSstLXRdKm47cmV0dXJuIGl9LGMucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8RShlLDEsdGhpcy5sZW5ndGgpLHRoaXNbZV19LGMucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8RShlLDIsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fSxjLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fEUoZSwyLHRoaXMubGVuZ3RoKSx0aGlzW2VdPDw4fHRoaXNbZSsxXX0sYy5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHxFKGUsNCx0aGlzLmxlbmd0aCksKHRoaXNbZV18dGhpc1tlKzFdPDw4fHRoaXNbZSsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbZSszXX0sYy5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHxFKGUsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tlXSsodGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdKX0sYy5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKGUsdCxyKXtlPj4+PTAsdD4+Pj0wLHJ8fEUoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIGk9dGhpc1tlXSxuPTEsYT0wOysrYTx0JiYobio9MjU2KTspaSs9dGhpc1tlK2FdKm47cmV0dXJuKG4qPTEyOCk8PWkmJihpLT1NYXRoLnBvdygyLDgqdCkpLGl9LGMucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihlLHQscil7ZT4+Pj0wLHQ+Pj49MCxyfHxFKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPXQsbj0xLGE9dGhpc1tlKy0taV07MDxpJiYobio9MjU2KTspYSs9dGhpc1tlKy0taV0qbjtyZXR1cm4obio9MTI4KTw9YSYmKGEtPU1hdGgucG93KDIsOCp0KSksYX0sYy5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fEUoZSwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1tlXT8tMSooMjU1LXRoaXNbZV0rMSk6dGhpc1tlXX0sYy5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24oZSx0KXtlPj4+PTAsdHx8RShlLDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbZV18dGhpc1tlKzFdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxjLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbihlLHQpe2U+Pj49MCx0fHxFKGUsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1tlKzFdfHRoaXNbZV08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LGMucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHxFKGUsNCx0aGlzLmxlbmd0aCksdGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNnx0aGlzW2UrM108PDI0fSxjLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8RShlLDQsdGhpcy5sZW5ndGgpLHRoaXNbZV08PDI0fHRoaXNbZSsxXTw8MTZ8dGhpc1tlKzJdPDw4fHRoaXNbZSszXX0sYy5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fEUoZSw0LHRoaXMubGVuZ3RoKSxhLnJlYWQodGhpcyxlLCEwLDIzLDQpfSxjLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8RShlLDQsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLGUsITEsMjMsNCl9LGMucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8RShlLDgsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLGUsITAsNTIsOCl9LGMucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8RShlLDgsdGhpcy5sZW5ndGgpLGEucmVhZCh0aGlzLGUsITEsNTIsOCl9LGMucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKGUsdCxyLGkpe2U9K2UsdD4+Pj0wLHI+Pj49MCxpfHxDKHRoaXMsZSx0LHIsTWF0aC5wb3coMiw4KnIpLTEsMCk7dmFyIG49MSxhPTA7Zm9yKHRoaXNbdF09MjU1JmU7KythPHImJihuKj0yNTYpOyl0aGlzW3QrYV09ZS9uJjI1NTtyZXR1cm4gdCtyfSxjLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbihlLHQscixpKXtlPStlLHQ+Pj49MCxyPj4+PTAsaXx8Qyh0aGlzLGUsdCxyLE1hdGgucG93KDIsOCpyKS0xLDApO3ZhciBuPXItMSxhPTE7Zm9yKHRoaXNbdCtuXT0yNTUmZTswPD0tLW4mJihhKj0yNTYpOyl0aGlzW3Qrbl09ZS9hJjI1NTtyZXR1cm4gdCtyfSxjLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Qyh0aGlzLGUsdCwxLDI1NSwwKSx0aGlzW3RdPTI1NSZlLHQrMX0sYy5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdD4+Pj0wLHJ8fEModGhpcyxlLHQsMiw2NTUzNSwwKSx0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCx0KzJ9LGMucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHQ+Pj49MCxyfHxDKHRoaXMsZSx0LDIsNjU1MzUsMCksdGhpc1t0XT1lPj4+OCx0aGlzW3QrMV09MjU1JmUsdCsyfSxjLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Qyh0aGlzLGUsdCw0LDQyOTQ5NjcyOTUsMCksdGhpc1t0KzNdPWU+Pj4yNCx0aGlzW3QrMl09ZT4+PjE2LHRoaXNbdCsxXT1lPj4+OCx0aGlzW3RdPTI1NSZlLHQrNH0sYy5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdD4+Pj0wLHJ8fEModGhpcyxlLHQsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSx0KzR9LGMucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oZSx0LHIsaSl7aWYoZT0rZSx0Pj4+PTAsIWkpe3ZhciBuPU1hdGgucG93KDIsOCpyLTEpO0ModGhpcyxlLHQscixuLTEsLW4pfXZhciBhPTAsbz0xLHM9MDtmb3IodGhpc1t0XT0yNTUmZTsrK2E8ciYmKG8qPTI1Nik7KWU8MCYmMD09PXMmJjAhPT10aGlzW3QrYS0xXSYmKHM9MSksdGhpc1t0K2FdPShlL28+PjApLXMmMjU1O3JldHVybiB0K3J9LGMucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24oZSx0LHIsaSl7aWYoZT0rZSx0Pj4+PTAsIWkpe3ZhciBuPU1hdGgucG93KDIsOCpyLTEpO0ModGhpcyxlLHQscixuLTEsLW4pfXZhciBhPXItMSxvPTEscz0wO2Zvcih0aGlzW3QrYV09MjU1JmU7MDw9LS1hJiYobyo9MjU2KTspZTwwJiYwPT09cyYmMCE9PXRoaXNbdCthKzFdJiYocz0xKSx0aGlzW3QrYV09KGUvbz4+MCktcyYyNTU7cmV0dXJuIHQrcn0sYy5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Qyh0aGlzLGUsdCwxLDEyNywtMTI4KSxlPDAmJihlPTI1NStlKzEpLHRoaXNbdF09MjU1JmUsdCsxfSxjLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHQ+Pj49MCxyfHxDKHRoaXMsZSx0LDIsMzI3NjcsLTMyNzY4KSx0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCx0KzJ9LGMucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdD4+Pj0wLHJ8fEModGhpcyxlLHQsMiwzMjc2NywtMzI3NjgpLHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlLHQrMn0sYy5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT0rZSx0Pj4+PTAscnx8Qyh0aGlzLGUsdCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44LHRoaXNbdCsyXT1lPj4+MTYsdGhpc1t0KzNdPWU+Pj4yNCx0KzR9LGMucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdD4+Pj0wLHJ8fEModGhpcyxlLHQsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSxlPDAmJihlPTQyOTQ5NjcyOTUrZSsxKSx0aGlzW3RdPWU+Pj4yNCx0aGlzW3QrMV09ZT4+PjE2LHRoaXNbdCsyXT1lPj4+OCx0aGlzW3QrM109MjU1JmUsdCs0fSxjLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBPKHRoaXMsZSx0LCEwLHIpfSxjLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBPKHRoaXMsZSx0LCExLHIpfSxjLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gUCh0aGlzLGUsdCwhMCxyKX0sYy5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIFAodGhpcyxlLHQsITEscil9LGMucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZSx0LHIsaSl7aWYoIWMuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlclwiKTtpZihyPXJ8fDAsaXx8MD09PWl8fChpPXRoaXMubGVuZ3RoKSx0Pj1lLmxlbmd0aCYmKHQ9ZS5sZW5ndGgpLHQ9dHx8MCwwPGkmJmk8ciYmKGk9ciksaT09PXIpcmV0dXJuIDA7aWYoMD09PWUubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYodDwwKXRocm93IG5ldyBSYW5nZUVycm9yKFwidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kc1wiKTtpZihyPDB8fHI+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW5kZXggb3V0IG9mIHJhbmdlXCIpO2lmKGk8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzXCIpO2k+dGhpcy5sZW5ndGgmJihpPXRoaXMubGVuZ3RoKSxlLmxlbmd0aC10PGktciYmKGk9ZS5sZW5ndGgtdCtyKTt2YXIgbj1pLXI7aWYodGhpcz09PWUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4pdGhpcy5jb3B5V2l0aGluKHQscixpKTtlbHNlIGlmKHRoaXM9PT1lJiZyPHQmJnQ8aSlmb3IodmFyIGE9bi0xOzA8PWE7LS1hKWVbYSt0XT10aGlzW2Ercl07ZWxzZSBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChlLHRoaXMuc3ViYXJyYXkocixpKSx0KTtyZXR1cm4gbn0sYy5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbihlLHQscixpKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQ/KGk9dCx0PTAscj10aGlzLmxlbmd0aCk6XCJzdHJpbmdcIj09dHlwZW9mIHImJihpPXIscj10aGlzLmxlbmd0aCksdm9pZCAwIT09aSYmXCJzdHJpbmdcIiE9dHlwZW9mIGkpdGhyb3cgbmV3IFR5cGVFcnJvcihcImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmdcIik7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGkmJiFjLmlzRW5jb2RpbmcoaSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK2kpO2lmKDE9PT1lLmxlbmd0aCl7dmFyIG49ZS5jaGFyQ29kZUF0KDApOyhcInV0ZjhcIj09PWkmJm48MTI4fHxcImxhdGluMVwiPT09aSkmJihlPW4pfX1lbHNlXCJudW1iZXJcIj09dHlwZW9mIGU/ZSY9MjU1OlwiYm9vbGVhblwiPT10eXBlb2YgZSYmKGU9TnVtYmVyKGUpKTtpZih0PDB8fHRoaXMubGVuZ3RoPHR8fHRoaXMubGVuZ3RoPHIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJPdXQgb2YgcmFuZ2UgaW5kZXhcIik7aWYocjw9dClyZXR1cm4gdGhpczt2YXIgYTtpZih0Pj4+PTAscj12b2lkIDA9PT1yP3RoaXMubGVuZ3RoOnI+Pj4wLFwibnVtYmVyXCI9PXR5cGVvZihlPWV8fDApKWZvcihhPXQ7YTxyOysrYSl0aGlzW2FdPWU7ZWxzZXt2YXIgbz1jLmlzQnVmZmVyKGUpP2U6Yy5mcm9tKGUsaSkscz1vLmxlbmd0aDtpZigwPT09cyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgXCInK2UrJ1wiIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50IFwidmFsdWVcIicpO2ZvcihhPTA7YTxyLXQ7KythKXRoaXNbYSt0XT1vW2Elc119cmV0dXJuIHRoaXN9O3ZhciB0PS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gUihlLHQpe3ZhciByO3Q9dHx8MS8wO2Zvcih2YXIgaT1lLmxlbmd0aCxuPW51bGwsYT1bXSxvPTA7bzxpOysrbyl7aWYoNTUyOTU8KHI9ZS5jaGFyQ29kZUF0KG8pKSYmcjw1NzM0NCl7aWYoIW4pe2lmKDU2MzE5PHIpey0xPCh0LT0zKSYmYS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihvKzE9PT1pKXstMTwodC09MykmJmEucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9bj1yO2NvbnRpbnVlfWlmKHI8NTYzMjApey0xPCh0LT0zKSYmYS5wdXNoKDIzOSwxOTEsMTg5KSxuPXI7Y29udGludWV9cj02NTUzNisobi01NTI5Njw8MTB8ci01NjMyMCl9ZWxzZSBuJiYtMTwodC09MykmJmEucHVzaCgyMzksMTkxLDE4OSk7aWYobj1udWxsLHI8MTI4KXtpZigtLXQ8MClicmVhazthLnB1c2gocil9ZWxzZSBpZihyPDIwNDgpe2lmKCh0LT0yKTwwKWJyZWFrO2EucHVzaChyPj42fDE5Miw2MyZyfDEyOCl9ZWxzZSBpZihyPDY1NTM2KXtpZigodC09Myk8MClicmVhazthLnB1c2gocj4+MTJ8MjI0LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX1lbHNle2lmKCEocjwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNvZGUgcG9pbnRcIik7aWYoKHQtPTQpPDApYnJlYWs7YS5wdXNoKHI+PjE4fDI0MCxyPj4xMiY2M3wxMjgscj4+NiY2M3wxMjgsNjMmcnwxMjgpfX1yZXR1cm4gYX1mdW5jdGlvbiBEKGUpe3JldHVybiBpLnRvQnl0ZUFycmF5KGZ1bmN0aW9uKGUpe2lmKChlPShlPWUuc3BsaXQoXCI9XCIpWzBdKS50cmltKCkucmVwbGFjZSh0LFwiXCIpKS5sZW5ndGg8MilyZXR1cm5cIlwiO2Zvcig7ZS5sZW5ndGglNCE9MDspZSs9XCI9XCI7cmV0dXJuIGV9KGUpKX1mdW5jdGlvbiBrKGUsdCxyLGkpe2Zvcih2YXIgbj0wO248aSYmIShuK3I+PXQubGVuZ3RofHxuPj1lLmxlbmd0aCk7KytuKXRbbityXT1lW25dO3JldHVybiBufWZ1bmN0aW9uIEEoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIHR8fG51bGwhPWUmJm51bGwhPWUuY29uc3RydWN0b3ImJm51bGwhPWUuY29uc3RydWN0b3IubmFtZSYmZS5jb25zdHJ1Y3Rvci5uYW1lPT09dC5uYW1lfWZ1bmN0aW9uIEkoZSl7cmV0dXJuIGUhPWV9dmFyIFU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9XCIwMTIzNDU2Nzg5YWJjZGVmXCIsdD1uZXcgQXJyYXkoMjU2KSxyPTA7cjwxNjsrK3IpZm9yKHZhciBpPTE2KnIsbj0wO248MTY7KytuKXRbaStuXT1lW3JdK2Vbbl07cmV0dXJuIHR9KCl9KS5jYWxsKHRoaXMsTihcImJ1ZmZlclwiKS5CdWZmZXIpfSx7XCJiYXNlNjQtanNcIjoxLGJ1ZmZlcjo0LGllZWU3NTQ6OX1dLDU6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt0LmV4cG9ydHM9ZShcIi4vXCIpLnBvbHlmaWxsKCl9LHtcIi4vXCI6Nn1dLDY6W2Z1bmN0aW9uKHoscixpKXsoZnVuY3Rpb24oaixWKXt2YXIgZSx0O2U9dGhpcyx0PWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbChlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlfXZhciByPUFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheTpmdW5jdGlvbihlKXtyZXR1cm5cIltvYmplY3QgQXJyYXldXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9LGk9MCx0PXZvaWQgMCxuPXZvaWQgMCxvPWZ1bmN0aW9uKGUsdCl7ZltpXT1lLGZbaSsxXT10LDI9PT0oaSs9MikmJihuP24oZCk6ZygpKX07dmFyIGU9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dm9pZCAwLGE9ZXx8e30scz1hLk11dGF0aW9uT2JzZXJ2ZXJ8fGEuV2ViS2l0TXV0YXRpb25PYnNlcnZlcix1PVwidW5kZWZpbmVkXCI9PXR5cGVvZiBzZWxmJiZ2b2lkIDAhPT1qJiZcIltvYmplY3QgcHJvY2Vzc11cIj09PXt9LnRvU3RyaW5nLmNhbGwoaiksaD1cInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBpbXBvcnRTY3JpcHRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgTWVzc2FnZUNoYW5uZWw7ZnVuY3Rpb24gYygpe3ZhciBlPXNldFRpbWVvdXQ7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUoZCwxKX19dmFyIGY9bmV3IEFycmF5KDFlMyk7ZnVuY3Rpb24gZCgpe2Zvcih2YXIgZT0wO2U8aTtlKz0yKXsoMCxmW2VdKShmW2UrMV0pLGZbZV09dm9pZCAwLGZbZSsxXT12b2lkIDB9aT0wfXZhciBwLG0sdix5LGc9dm9pZCAwO2Z1bmN0aW9uIGIoZSx0KXt2YXIgcj10aGlzLGk9bmV3IHRoaXMuY29uc3RydWN0b3Iodyk7dm9pZCAwPT09aVt4XSYmVShpKTt2YXIgbj1yLl9zdGF0ZTtpZihuKXt2YXIgYT1hcmd1bWVudHNbbi0xXTtvKGZ1bmN0aW9uKCl7cmV0dXJuIEEobixpLGEsci5fcmVzdWx0KX0pfWVsc2UgRChyLGksZSx0KTtyZXR1cm4gaX1mdW5jdGlvbiBfKGUpe2lmKGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZlLmNvbnN0cnVjdG9yPT09dGhpcylyZXR1cm4gZTt2YXIgdD1uZXcgdGhpcyh3KTtyZXR1cm4gTCh0LGUpLHR9Zz11P2Z1bmN0aW9uKCl7cmV0dXJuIGoubmV4dFRpY2soZCl9OnM/KG09MCx2PW5ldyBzKGQpLHk9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIiksdi5vYnNlcnZlKHkse2NoYXJhY3RlckRhdGE6ITB9KSxmdW5jdGlvbigpe3kuZGF0YT1tPSsrbSUyfSk6aD8oKHA9bmV3IE1lc3NhZ2VDaGFubmVsKS5wb3J0MS5vbm1lc3NhZ2U9ZCxmdW5jdGlvbigpe3JldHVybiBwLnBvcnQyLnBvc3RNZXNzYWdlKDApfSk6dm9pZCAwPT09ZSYmXCJmdW5jdGlvblwiPT10eXBlb2Ygej9mdW5jdGlvbigpe3RyeXt2YXIgZT1GdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCkucmVxdWlyZShcInZlcnR4XCIpO3JldHVybiB2b2lkIDAhPT0odD1lLnJ1bk9uTG9vcHx8ZS5ydW5PbkNvbnRleHQpP2Z1bmN0aW9uKCl7dChkKX06YygpfWNhdGNoKGUpe3JldHVybiBjKCl9fSgpOmMoKTt2YXIgeD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7ZnVuY3Rpb24gdygpe312YXIgUz12b2lkIDAsTT0xLFQ9MjtmdW5jdGlvbiBFKGUsaSxuKXtvKGZ1bmN0aW9uKHQpe3ZhciByPSExLGU9ZnVuY3Rpb24oZSx0LHIsaSl7dHJ5e2UuY2FsbCh0LHIsaSl9Y2F0Y2goZSl7cmV0dXJuIGV9fShuLGksZnVuY3Rpb24oZSl7cnx8KHI9ITAsaSE9PWU/TCh0LGUpOlAodCxlKSl9LGZ1bmN0aW9uKGUpe3J8fChyPSEwLFIodCxlKSl9LHQuX2xhYmVsKTshciYmZSYmKHI9ITAsUih0LGUpKX0sZSl9ZnVuY3Rpb24gQyhlLHQscil7dmFyIGksbjt0LmNvbnN0cnVjdG9yPT09ZS5jb25zdHJ1Y3RvciYmcj09PWImJnQuY29uc3RydWN0b3IucmVzb2x2ZT09PV8/KGk9ZSwobj10KS5fc3RhdGU9PT1NP1AoaSxuLl9yZXN1bHQpOm4uX3N0YXRlPT09VD9SKGksbi5fcmVzdWx0KTpEKG4sdm9pZCAwLGZ1bmN0aW9uKGUpe3JldHVybiBMKGksZSl9LGZ1bmN0aW9uKGUpe3JldHVybiBSKGksZSl9KSk6dm9pZCAwPT09cj9QKGUsdCk6bChyKT9FKGUsdCxyKTpQKGUsdCl9ZnVuY3Rpb24gTCh0LGUpe2lmKHQ9PT1lKVIodCxuZXcgVHlwZUVycm9yKFwiWW91IGNhbm5vdCByZXNvbHZlIGEgcHJvbWlzZSB3aXRoIGl0c2VsZlwiKSk7ZWxzZSBpZihuPXR5cGVvZihpPWUpLG51bGw9PT1pfHxcIm9iamVjdFwiIT1uJiZcImZ1bmN0aW9uXCIhPW4pUCh0LGUpO2Vsc2V7dmFyIHI9dm9pZCAwO3RyeXtyPWUudGhlbn1jYXRjaChlKXtyZXR1cm4gdm9pZCBSKHQsZSl9Qyh0LGUscil9dmFyIGksbn1mdW5jdGlvbiBPKGUpe2UuX29uZXJyb3ImJmUuX29uZXJyb3IoZS5fcmVzdWx0KSxrKGUpfWZ1bmN0aW9uIFAoZSx0KXtlLl9zdGF0ZT09PVMmJihlLl9yZXN1bHQ9dCxlLl9zdGF0ZT1NLDAhPT1lLl9zdWJzY3JpYmVycy5sZW5ndGgmJm8oayxlKSl9ZnVuY3Rpb24gUihlLHQpe2UuX3N0YXRlPT09UyYmKGUuX3N0YXRlPVQsZS5fcmVzdWx0PXQsbyhPLGUpKX1mdW5jdGlvbiBEKGUsdCxyLGkpe3ZhciBuPWUuX3N1YnNjcmliZXJzLGE9bi5sZW5ndGg7ZS5fb25lcnJvcj1udWxsLG5bYV09dCxuW2ErTV09cixuW2ErVF09aSwwPT09YSYmZS5fc3RhdGUmJm8oayxlKX1mdW5jdGlvbiBrKGUpe3ZhciB0PWUuX3N1YnNjcmliZXJzLHI9ZS5fc3RhdGU7aWYoMCE9PXQubGVuZ3RoKXtmb3IodmFyIGk9dm9pZCAwLG49dm9pZCAwLGE9ZS5fcmVzdWx0LG89MDtvPHQubGVuZ3RoO28rPTMpaT10W29dLG49dFtvK3JdLGk/QShyLGksbixhKTpuKGEpO2UuX3N1YnNjcmliZXJzLmxlbmd0aD0wfX1mdW5jdGlvbiBBKGUsdCxyLGkpe3ZhciBuPWwociksYT12b2lkIDAsbz12b2lkIDAscz0hMDtpZihuKXt0cnl7YT1yKGkpfWNhdGNoKGUpe3M9ITEsbz1lfWlmKHQ9PT1hKXJldHVybiB2b2lkIFIodCxuZXcgVHlwZUVycm9yKFwiQSBwcm9taXNlcyBjYWxsYmFjayBjYW5ub3QgcmV0dXJuIHRoYXQgc2FtZSBwcm9taXNlLlwiKSl9ZWxzZSBhPWk7dC5fc3RhdGUhPT1TfHwobiYmcz9MKHQsYSk6ITE9PT1zP1IodCxvKTplPT09TT9QKHQsYSk6ZT09PVQmJlIodCxhKSl9dmFyIEk9MDtmdW5jdGlvbiBVKGUpe2VbeF09SSsrLGUuX3N0YXRlPXZvaWQgMCxlLl9yZXN1bHQ9dm9pZCAwLGUuX3N1YnNjcmliZXJzPVtdfXZhciBOPShGLnByb3RvdHlwZS5fZW51bWVyYXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3RoaXMuX3N0YXRlPT09UyYmdDxlLmxlbmd0aDt0KyspdGhpcy5fZWFjaEVudHJ5KGVbdF0sdCl9LEYucHJvdG90eXBlLl9lYWNoRW50cnk9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9pbnN0YW5jZUNvbnN0cnVjdG9yLGk9ci5yZXNvbHZlO2lmKGk9PT1fKXt2YXIgbj12b2lkIDAsYT12b2lkIDAsbz0hMTt0cnl7bj10LnRoZW59Y2F0Y2goZSl7bz0hMCxhPWV9aWYobj09PWImJnQuX3N0YXRlIT09Uyl0aGlzLl9zZXR0bGVkQXQodC5fc3RhdGUsZSx0Ll9yZXN1bHQpO2Vsc2UgaWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aGlzLl9yZW1haW5pbmctLSx0aGlzLl9yZXN1bHRbZV09dDtlbHNlIGlmKHI9PT1CKXt2YXIgcz1uZXcgcih3KTtvP1IocyxhKTpDKHMsdCxuKSx0aGlzLl93aWxsU2V0dGxlQXQocyxlKX1lbHNlIHRoaXMuX3dpbGxTZXR0bGVBdChuZXcgcihmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pLGUpfWVsc2UgdGhpcy5fd2lsbFNldHRsZUF0KGkodCksZSl9LEYucHJvdG90eXBlLl9zZXR0bGVkQXQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMucHJvbWlzZTtpLl9zdGF0ZT09PVMmJih0aGlzLl9yZW1haW5pbmctLSxlPT09VD9SKGkscik6dGhpcy5fcmVzdWx0W3RdPXIpLDA9PT10aGlzLl9yZW1haW5pbmcmJlAoaSx0aGlzLl9yZXN1bHQpfSxGLnByb3RvdHlwZS5fd2lsbFNldHRsZUF0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztEKGUsdm9pZCAwLGZ1bmN0aW9uKGUpe3JldHVybiByLl9zZXR0bGVkQXQoTSx0LGUpfSxmdW5jdGlvbihlKXtyZXR1cm4gci5fc2V0dGxlZEF0KFQsdCxlKX0pfSxGKTtmdW5jdGlvbiBGKGUsdCl7dGhpcy5faW5zdGFuY2VDb25zdHJ1Y3Rvcj1lLHRoaXMucHJvbWlzZT1uZXcgZSh3KSx0aGlzLnByb21pc2VbeF18fFUodGhpcy5wcm9taXNlKSxyKHQpPyh0aGlzLmxlbmd0aD10Lmxlbmd0aCx0aGlzLl9yZW1haW5pbmc9dC5sZW5ndGgsdGhpcy5fcmVzdWx0PW5ldyBBcnJheSh0aGlzLmxlbmd0aCksMD09PXRoaXMubGVuZ3RoP1AodGhpcy5wcm9taXNlLHRoaXMuX3Jlc3VsdCk6KHRoaXMubGVuZ3RoPXRoaXMubGVuZ3RofHwwLHRoaXMuX2VudW1lcmF0ZSh0KSwwPT09dGhpcy5fcmVtYWluaW5nJiZQKHRoaXMucHJvbWlzZSx0aGlzLl9yZXN1bHQpKSk6Uih0aGlzLnByb21pc2UsbmV3IEVycm9yKFwiQXJyYXkgTWV0aG9kcyBtdXN0IGJlIHByb3ZpZGVkIGFuIEFycmF5XCIpKX12YXIgQj0oRy5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGhlbihudWxsLGUpfSxHLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIGwodCk/dGhpcy50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiByLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KX0sZnVuY3Rpb24oZSl7cmV0dXJuIHIucmVzb2x2ZSh0KCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBlfSl9KTp0aGlzLnRoZW4odCx0KX0sRyk7ZnVuY3Rpb24gRyhlKXt0aGlzW3hdPUkrKyx0aGlzLl9yZXN1bHQ9dGhpcy5fc3RhdGU9dm9pZCAwLHRoaXMuX3N1YnNjcmliZXJzPVtdLHchPT1lJiYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiWW91IG11c3QgcGFzcyBhIHJlc29sdmVyIGZ1bmN0aW9uIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgcHJvbWlzZSBjb25zdHJ1Y3RvclwiKX0oKSx0aGlzIGluc3RhbmNlb2YgRz9mdW5jdGlvbih0LGUpe3RyeXtlKGZ1bmN0aW9uKGUpe0wodCxlKX0sZnVuY3Rpb24oZSl7Uih0LGUpfSl9Y2F0Y2goZSl7Uih0LGUpfX0odGhpcyxlKTpmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdQcm9taXNlJzogUGxlYXNlIHVzZSB0aGUgJ25ldycgb3BlcmF0b3IsIHRoaXMgb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi5cIil9KCkpfXJldHVybiBCLnByb3RvdHlwZS50aGVuPWIsQi5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBOKHRoaXMsZSkucHJvbWlzZX0sQi5yYWNlPWZ1bmN0aW9uKG4pe3ZhciBhPXRoaXM7cmV0dXJuIHIobik/bmV3IGEoZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9bi5sZW5ndGgsaT0wO2k8cjtpKyspYS5yZXNvbHZlKG5baV0pLnRoZW4oZSx0KX0pOm5ldyBhKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobmV3IFR5cGVFcnJvcihcIllvdSBtdXN0IHBhc3MgYW4gYXJyYXkgdG8gcmFjZS5cIikpfSl9LEIucmVzb2x2ZT1fLEIucmVqZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyB0aGlzKHcpO3JldHVybiBSKHQsZSksdH0sQi5fc2V0U2NoZWR1bGVyPWZ1bmN0aW9uKGUpe249ZX0sQi5fc2V0QXNhcD1mdW5jdGlvbihlKXtvPWV9LEIuX2FzYXA9byxCLnBvbHlmaWxsPWZ1bmN0aW9uKCl7dmFyIGU9dm9pZCAwO2lmKHZvaWQgMCE9PVYpZT1WO2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGYpZT1zZWxmO2Vsc2UgdHJ5e2U9RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpfWNhdGNoKGUpe3Rocm93IG5ldyBFcnJvcihcInBvbHlmaWxsIGZhaWxlZCBiZWNhdXNlIGdsb2JhbCBvYmplY3QgaXMgdW5hdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudFwiKX12YXIgdD1lLlByb21pc2U7aWYodCl7dmFyIHI9bnVsbDt0cnl7cj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodC5yZXNvbHZlKCkpfWNhdGNoKGUpe31pZihcIltvYmplY3QgUHJvbWlzZV1cIj09PXImJiF0LmNhc3QpcmV0dXJufWUuUHJvbWlzZT1CfSxCLlByb21pc2U9Qn0sXCJvYmplY3RcIj09dHlwZW9mIGkmJnZvaWQgMCE9PXI/ci5leHBvcnRzPXQoKTplLkVTNlByb21pc2U9dCgpfSkuY2FsbCh0aGlzLHooXCJfcHJvY2Vzc1wiKSxcInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDpcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOlwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se19wcm9jZXNzOjE0fV0sNzpbZnVuY3Rpb24oZSxpLG4peyFmdW5jdGlvbihlLHQpe2lmKDAsdm9pZCAwIT09biYmdm9pZCAwIT09aSl0KG4saSk7ZWxzZXt2YXIgcj17ZXhwb3J0czp7fX07dChyLmV4cG9ydHMsciksZS5mZXRjaEpzb25wPXIuZXhwb3J0c319KHRoaXMsZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgcj01ZTMsaT1cImNhbGxiYWNrXCI7ZnVuY3Rpb24gYyh0KXt0cnl7ZGVsZXRlIHdpbmRvd1t0XX1jYXRjaChlKXt3aW5kb3dbdF09dm9pZCAwfX1mdW5jdGlvbiBmKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpO3QmJmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5yZW1vdmVDaGlsZCh0KX10LmV4cG9ydHM9ZnVuY3Rpb24oYSl7dmFyIG89YXJndW1lbnRzLmxlbmd0aDw9MXx8dm9pZCAwPT09YXJndW1lbnRzWzFdP3t9OmFyZ3VtZW50c1sxXSxzPWEsbD1vLnRpbWVvdXR8fHIsdT1vLmpzb25wQ2FsbGJhY2t8fGksaD12b2lkIDA7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dmFyIHI9by5qc29ucENhbGxiYWNrRnVuY3Rpb258fFwianNvbnBfXCIrRGF0ZS5ub3coKStcIl9cIitNYXRoLmNlaWwoMWU1Kk1hdGgucmFuZG9tKCkpLGk9dStcIl9cIityO3dpbmRvd1tyXT1mdW5jdGlvbihlKXt0KHtvazohMCxqc29uOmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShlKX19KSxoJiZjbGVhclRpbWVvdXQoaCksZihpKSxjKHIpfSxzKz0tMT09PXMuaW5kZXhPZihcIj9cIik/XCI/XCI6XCImXCI7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtuLnNldEF0dHJpYnV0ZShcInNyY1wiLFwiXCIrcyt1K1wiPVwiK3IpLG8uY2hhcnNldCYmbi5zZXRBdHRyaWJ1dGUoXCJjaGFyc2V0XCIsby5jaGFyc2V0KSxuLmlkPWksZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKG4pLGg9c2V0VGltZW91dChmdW5jdGlvbigpe2UobmV3IEVycm9yKFwiSlNPTlAgcmVxdWVzdCB0byBcIithK1wiIHRpbWVkIG91dFwiKSksYyhyKSxmKGkpLHdpbmRvd1tyXT1mdW5jdGlvbigpe2Mocil9fSxsKSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG5ldyBFcnJvcihcIkpTT05QIHJlcXVlc3QgdG8gXCIrYStcIiBmYWlsZWRcIikpLGMociksZihpKSxoJiZjbGVhclRpbWVvdXQoaCl9fSl9fSl9LHt9XSw4OltmdW5jdGlvbihlLHQscil7dmFyIGk9aXx8ZnVuY3Rpb24ocyl7XCJ1c2Ugc3RyaWN0XCI7aWYoISh2b2lkIDA9PT1zfHxcInVuZGVmaW5lZFwiIT10eXBlb2YgbmF2aWdhdG9yJiYvTVNJRSBbMS05XVxcLi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkpe3ZhciBlPXMuZG9jdW1lbnQsbD1mdW5jdGlvbigpe3JldHVybiBzLlVSTHx8cy53ZWJraXRVUkx8fHN9LHU9ZS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsXCJhXCIpLGg9XCJkb3dubG9hZFwiaW4gdSxjPS9jb25zdHJ1Y3Rvci9pLnRlc3Qocy5IVE1MRWxlbWVudCl8fHMuc2FmYXJpLGY9L0NyaU9TXFwvW1xcZF0rLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGQ9ZnVuY3Rpb24oZSl7KHMuc2V0SW1tZWRpYXRlfHxzLnNldFRpbWVvdXQpKGZ1bmN0aW9uKCl7dGhyb3cgZX0sMCl9LHA9ZnVuY3Rpb24oZSl7c2V0VGltZW91dChmdW5jdGlvbigpe1wic3RyaW5nXCI9PXR5cGVvZiBlP2woKS5yZXZva2VPYmplY3RVUkwoZSk6ZS5yZW1vdmUoKX0sNGU0KX0sbT1mdW5jdGlvbihlKXtyZXR1cm4vXlxccyooPzp0ZXh0XFwvXFxTKnxhcHBsaWNhdGlvblxcL3htbHxcXFMqXFwvXFxTKlxcK3htbClcXHMqOy4qY2hhcnNldFxccyo9XFxzKnV0Zi04L2kudGVzdChlLnR5cGUpP25ldyBCbG9iKFtTdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KSxlXSx7dHlwZTplLnR5cGV9KTplfSxpPWZ1bmN0aW9uKGUscix0KXt0fHwoZT1tKGUpKTtmdW5jdGlvbiBpKCl7IWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9KHQ9W10uY29uY2F0KHQpKS5sZW5ndGg7aS0tOyl7dmFyIG49ZVtcIm9uXCIrdFtpXV07aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbil0cnl7bi5jYWxsKGUscnx8ZSl9Y2F0Y2goZSl7ZChlKX19fShhLFwid3JpdGVzdGFydCBwcm9ncmVzcyB3cml0ZSB3cml0ZWVuZFwiLnNwbGl0KFwiIFwiKSl9dmFyIG4sYT10aGlzLG89XCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIj09PWUudHlwZTtpZihhLnJlYWR5U3RhdGU9YS5JTklULGgpcmV0dXJuIG49bCgpLmNyZWF0ZU9iamVjdFVSTChlKSx2b2lkIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZSx0O3UuaHJlZj1uLHUuZG93bmxvYWQ9cixlPXUsdD1uZXcgTW91c2VFdmVudChcImNsaWNrXCIpLGUuZGlzcGF0Y2hFdmVudCh0KSxpKCkscChuKSxhLnJlYWR5U3RhdGU9YS5ET05FfSk7IWZ1bmN0aW9uKCl7aWYoKGZ8fG8mJmMpJiZzLkZpbGVSZWFkZXIpe3ZhciB0PW5ldyBGaWxlUmVhZGVyO3JldHVybiB0Lm9ubG9hZGVuZD1mdW5jdGlvbigpe3ZhciBlPWY/dC5yZXN1bHQ6dC5yZXN1bHQucmVwbGFjZSgvXmRhdGE6W147XSo7LyxcImRhdGE6YXR0YWNobWVudC9maWxlO1wiKTtzLm9wZW4oZSxcIl9ibGFua1wiKXx8KHMubG9jYXRpb24uaHJlZj1lKSxlPXZvaWQgMCxhLnJlYWR5U3RhdGU9YS5ET05FLGkoKX0sdC5yZWFkQXNEYXRhVVJMKGUpLGEucmVhZHlTdGF0ZT1hLklOSVR9KG49bnx8bCgpLmNyZWF0ZU9iamVjdFVSTChlKSxvKT9zLmxvY2F0aW9uLmhyZWY9bjpzLm9wZW4obixcIl9ibGFua1wiKXx8KHMubG9jYXRpb24uaHJlZj1uKTthLnJlYWR5U3RhdGU9YS5ET05FLGkoKSxwKG4pfSgpfSx0PWkucHJvdG90eXBlO3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iP2Z1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD10fHxlLm5hbWV8fFwiZG93bmxvYWRcIixyfHwoZT1tKGUpKSxuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihlLHQpfToodC5hYm9ydD1mdW5jdGlvbigpe30sdC5yZWFkeVN0YXRlPXQuSU5JVD0wLHQuV1JJVElORz0xLHQuRE9ORT0yLHQuZXJyb3I9dC5vbndyaXRlc3RhcnQ9dC5vbnByb2dyZXNzPXQub253cml0ZT10Lm9uYWJvcnQ9dC5vbmVycm9yPXQub253cml0ZWVuZD1udWxsLGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbmV3IGkoZSx0fHxlLm5hbWV8fFwiZG93bmxvYWRcIixyKX0pfX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8dGhpcy5jb250ZW50KTt2b2lkIDAhPT10JiZ0LmV4cG9ydHMmJih0LmV4cG9ydHMuc2F2ZUFzPWkpfSx7fV0sOTpbZnVuY3Rpb24oZSx0LHIpe3IucmVhZD1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBhLG8scz04Km4taS0xLGw9KDE8PHMpLTEsdT1sPj4xLGg9LTcsYz1yP24tMTowLGY9cj8tMToxLGQ9ZVt0K2NdO2ZvcihjKz1mLGE9ZCYoMTw8LWgpLTEsZD4+PS1oLGgrPXM7MDxoO2E9MjU2KmErZVt0K2NdLGMrPWYsaC09OCk7Zm9yKG89YSYoMTw8LWgpLTEsYT4+PS1oLGgrPWk7MDxoO289MjU2Km8rZVt0K2NdLGMrPWYsaC09OCk7aWYoMD09PWEpYT0xLXU7ZWxzZXtpZihhPT09bClyZXR1cm4gbz9OYU46MS8wKihkPy0xOjEpO28rPU1hdGgucG93KDIsaSksYS09dX1yZXR1cm4oZD8tMToxKSpvKk1hdGgucG93KDIsYS1pKX0sci53cml0ZT1mdW5jdGlvbihlLHQscixpLG4sYSl7dmFyIG8scyxsLHU9OCphLW4tMSxoPSgxPDx1KS0xLGM9aD4+MSxmPTIzPT09bj9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsZD1pPzA6YS0xLHA9aT8xOi0xLG09dDwwfHwwPT09dCYmMS90PDA/MTowO2Zvcih0PU1hdGguYWJzKHQpLGlzTmFOKHQpfHx0PT09MS8wPyhzPWlzTmFOKHQpPzE6MCxvPWgpOihvPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLHQqKGw9TWF0aC5wb3coMiwtbykpPDEmJihvLS0sbCo9MiksMjw9KHQrPTE8PW8rYz9mL2w6ZipNYXRoLnBvdygyLDEtYykpKmwmJihvKyssbC89MiksaDw9bytjPyhzPTAsbz1oKToxPD1vK2M/KHM9KHQqbC0xKSpNYXRoLnBvdygyLG4pLG8rPWMpOihzPXQqTWF0aC5wb3coMixjLTEpKk1hdGgucG93KDIsbiksbz0wKSk7ODw9bjtlW3IrZF09MjU1JnMsZCs9cCxzLz0yNTYsbi09OCk7Zm9yKG89bzw8bnxzLHUrPW47MDx1O2VbcitkXT0yNTUmbyxkKz1wLG8vPTI1Nix1LT04KTtlW3IrZC1wXXw9MTI4Km19fSx7fV0sMTA6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaTtmdW5jdGlvbiB2KGUsdCl7cmV0dXJuIGUuYj09PXQuYiYmZS5hPT09dC5hfWZ1bmN0aW9uIHkoZSx0KXtyZXR1cm4gZS5iPHQuYnx8ZS5iPT09dC5iJiZlLmE8PXQuYX1mdW5jdGlvbiBnKGUsdCxyKXt2YXIgaT10LmItZS5iLG49ci5iLXQuYjtyZXR1cm4gMDxpK24/aTxuP3QuYS1lLmEraS8oaStuKSooZS5hLXIuYSk6dC5hLXIuYStuLyhpK24pKihyLmEtZS5hKTowfWZ1bmN0aW9uIGIoZSx0LHIpe3ZhciBpPXQuYi1lLmIsbj1yLmItdC5iO3JldHVybiAwPGkrbj8odC5hLXIuYSkqaSsodC5hLWUuYSkqbjowfWZ1bmN0aW9uIF8oZSx0KXtyZXR1cm4gZS5hPHQuYXx8ZS5hPT09dC5hJiZlLmI8PXQuYn1mdW5jdGlvbiB4KGUsdCxyKXt2YXIgaT10LmEtZS5hLG49ci5hLXQuYTtyZXR1cm4gMDxpK24/aTxuP3QuYi1lLmIraS8oaStuKSooZS5iLXIuYik6dC5iLXIuYituLyhpK24pKihyLmItZS5iKTowfWZ1bmN0aW9uIHcoZSx0LHIpe3ZhciBpPXQuYS1lLmEsbj1yLmEtdC5hO3JldHVybiAwPGkrbj8odC5iLXIuYikqaSsodC5iLWUuYikqbjowfWZ1bmN0aW9uIFMoZSx0LHIsaSl7cmV0dXJuKGU9ZTwwPzA6ZSk8PShyPXI8MD8wOnIpPzA9PT1yPyh0K2kpLzI6dCtlLyhlK3IpKihpLXQpOmkrci8oZStyKSoodC1pKX1mdW5jdGlvbiBvKGUpe3ZhciB0PWEoZS5iKTtyZXR1cm4gbih0LGUuYyksbih0LmIsZS5jKSxzKHQsZS5hKSx0fWZ1bmN0aW9uIE0oZSx0KXt2YXIgcj0hMSxpPSExO2UhPT10JiYodC5hIT09ZS5hJiYoaT0hMCxtKHQuYSxlLmEpKSx0LmQhPT1lLmQmJihyPSEwLGwodC5kLGUuZCkpLGQodCxlKSxpfHwobih0LGUuYSksZS5hLmM9ZSkscnx8KHModCxlLmQpLGUuZC5hPWUpKX1mdW5jdGlvbiBjKGUpe3ZhciB0PWUuYixyPSExO2UuZCE9PWUuYi5kJiYocj0hMCxsKGUuZCxlLmIuZCkpLGUuYz09PWU/bShlLmEsbnVsbCk6KGUuYi5kLmE9SihlKSxlLmEuYz1lLmMsZChlLEooZSkpLHJ8fHMoZSxlLmQpKSx0LmM9PT10PyhtKHQuYSxudWxsKSxsKHQuZCxudWxsKSk6KGUuZC5hPUoodCksdC5hLmM9dC5jLGQodCxKKHQpKSkscChlKX1mdW5jdGlvbiBUKGUpe3ZhciB0PWEoZSkscj10LmI7cmV0dXJuIGQodCxlLmUpLHQuYT1lLmIuYSxuKHIsdC5hKSx0LmQ9ci5kPWUuZCx0PXQuYixkKGUuYixKKGUuYikpLGQoZS5iLHQpLGUuYi5hPXQuYSx0LmIuYS5jPXQuYix0LmIuZD1lLmIuZCx0LmY9ZS5mLHQuYi5mPWUuYi5mLHR9ZnVuY3Rpb24gZihlLHQpe3ZhciByPSExLGk9YShlKSxuPWkuYjtyZXR1cm4gdC5kIT09ZS5kJiYocj0hMCxsKHQuZCxlLmQpKSxkKGksZS5lKSxkKG4sdCksaS5hPWUuYi5hLG4uYT10LmEsaS5kPW4uZD1lLmQsZS5kLmE9bixyfHxzKGksZS5kKSxpfWZ1bmN0aW9uIGEoZSl7dmFyIHQ9bmV3IEsscj1uZXcgSyxpPWUuYi5oO3JldHVybigoKHIuaD1pKS5iLmg9dCkuaD1lKS5iLmg9cix0LmI9ciwoKHQuYz10KS5lPXIpLmI9dCwoci5jPXIpLmU9dH1mdW5jdGlvbiBkKGUsdCl7dmFyIHI9ZS5jLGk9dC5jO3IuYi5lPXQsKGkuYi5lPWUpLmM9aSx0LmM9cn1mdW5jdGlvbiBuKGUsdCl7dmFyIHI9dC5mLGk9bmV3IGVlKHQscik7Zm9yKHIuZT1pLHI9KHQuZj1pKS5jPWU7ci5hPWksKHI9ci5jKSE9PWU7KTt9ZnVuY3Rpb24gcyhlLHQpe3ZhciByPXQuZCxpPW5ldyBRKHQscik7Zm9yKHIuYj1pLCh0LmQ9aSkuYT1lLGkuYz10LmMscj1lO3IuZD1pLChyPXIuZSkhPT1lOyk7fWZ1bmN0aW9uIHAoZSl7dmFyIHQ9ZS5oO2U9ZS5iLmgsKHQuYi5oPWUpLmIuaD10fWZ1bmN0aW9uIG0oZSx0KXtmb3IodmFyIHI9ZS5jLGk9cjtpLmE9dCwoaT1pLmMpIT09cjspO3I9ZS5mLCgoaT1lLmUpLmY9cikuZT1pfWZ1bmN0aW9uIGwoZSx0KXtmb3IodmFyIHI9ZS5hLGk9cjtpLmQ9dCwoaT1pLmUpIT09cjspO3I9ZS5kLCgoaT1lLmIpLmQ9cikuYj1pfWZ1bmN0aW9uIEUoZSl7dmFyIHQ9MDtyZXR1cm4gTWF0aC5hYnMoZVsxXSk+TWF0aC5hYnMoZVswXSkmJih0PTEpLE1hdGguYWJzKGVbMl0pPk1hdGguYWJzKGVbdF0pJiYodD0yKSx0fXZhciBDPTRlMTUwO2Z1bmN0aW9uIEwoZSx0KXtlLmYrPXQuZixlLmIuZis9dC5iLmZ9ZnVuY3Rpb24gdShlLHQscil7cmV0dXJuIGU9ZS5hLHQ9dC5hLHI9ci5hLHQuYi5hPT09ZT9yLmIuYT09PWU/eSh0LmEsci5hKT9iKHIuYi5hLHQuYSxyLmEpPD0wOjA8PWIodC5iLmEsci5hLHQuYSk6YihyLmIuYSxlLHIuYSk8PTA6ci5iLmE9PT1lPzA8PWIodC5iLmEsZSx0LmEpOih0PWcodC5iLmEsZSx0LmEpLChlPWcoci5iLmEsZSxyLmEpKTw9dCl9ZnVuY3Rpb24gTyhlKXtlLmEuaT1udWxsO3ZhciB0PWUuZTt0LmEuYz10LmMsdC5jLmE9dC5hLGUuZT1udWxsfWZ1bmN0aW9uIGgoZSx0KXtjKGUuYSksZS5jPSExLChlLmE9dCkuaT1lfWZ1bmN0aW9uIFAoZSl7Zm9yKHZhciB0PWUuYS5hOyhlPWZlKGUpKS5hLmE9PT10Oyk7cmV0dXJuIGUuYyYmKGgoZSx0PWYoY2UoZSkuYS5iLGUuYS5lKSksZT1mZShlKSksZX1mdW5jdGlvbiBSKGUsdCxyKXt2YXIgaT1uZXcgaGU7cmV0dXJuIGkuYT1yLGkuZT1XKGUuZix0LmUsaSksci5pPWl9ZnVuY3Rpb24gRChlLHQpe3N3aXRjaChlLnMpe2Nhc2UgMTAwMTMwOnJldHVybiAwIT0oMSZ0KTtjYXNlIDEwMDEzMTpyZXR1cm4gMCE9PXQ7Y2FzZSAxMDAxMzI6cmV0dXJuIDA8dDtjYXNlIDEwMDEzMzpyZXR1cm4gdDwwO2Nhc2UgMTAwMTM0OnJldHVybiAyPD10fHx0PD0tMn1yZXR1cm4hMX1mdW5jdGlvbiBrKGUpe3ZhciB0PWUuYSxyPXQuZDtyLmM9ZS5kLHIuYT10LE8oZSl9ZnVuY3Rpb24gQShlLHQscil7Zm9yKHQ9KGU9dCkuYTtlIT09cjspe2UuYz0hMTt2YXIgaT1jZShlKSxuPWkuYTtpZihuLmEhPT10LmEpe2lmKCFpLmMpe2soZSk7YnJlYWt9aChpLG49Zih0LmMuYixuLmIpKX10LmMhPT1uJiYoTShKKG4pLG4pLE0odCxuKSksayhlKSx0PWkuYSxlPWl9cmV0dXJuIHR9ZnVuY3Rpb24gSShlLHQscixpLG4sYSl7Zm9yKHZhciBvPSEwO1IoZSx0LHIuYiksKHI9ci5jKSE9PWk7KTtmb3IobnVsbD09PW4mJihuPWNlKHQpLmEuYi5jKTsocj0oaT1jZSh0KSkuYS5iKS5hPT09bi5hOylyLmMhPT1uJiYoTShKKHIpLHIpLE0oSihuKSxyKSksaS5mPXQuZi1yLmYsaS5kPUQoZSxpLmYpLHQuYj0hMCwhbyYmQihlLHQpJiYoTChyLG4pLE8odCksYyhuKSksbz0hMSx0PWksbj1yO3QuYj0hMCxhJiZqKGUsdCl9ZnVuY3Rpb24gVShlLHQscixpLG4pe3ZhciBhPVt0LmdbMF0sdC5nWzFdLHQuZ1syXV07dC5kPW51bGwsdC5kPWUubyYmZS5vKGEscixpLGUuYyl8fG51bGwsbnVsbD09PXQuZCYmKG4/ZS5ufHwoWihlLDEwMDE1NiksZS5uPSEwKTp0LmQ9clswXSl9ZnVuY3Rpb24gTihlLHQscil7dmFyIGk9W251bGwsbnVsbCxudWxsLG51bGxdO2lbMF09dC5hLmQsaVsxXT1yLmEuZCxVKGUsdC5hLGksWy41LC41LDAsMF0sITEpLE0odCxyKX1mdW5jdGlvbiBGKGUsdCxyLGksbil7dmFyIGE9TWF0aC5hYnModC5iLWUuYikrTWF0aC5hYnModC5hLWUuYSksbz1NYXRoLmFicyhyLmItZS5iKStNYXRoLmFicyhyLmEtZS5hKSxzPW4rMTtpW25dPS41Km8vKGErbyksaVtzXT0uNSphLyhhK28pLGUuZ1swXSs9aVtuXSp0LmdbMF0raVtzXSpyLmdbMF0sZS5nWzFdKz1pW25dKnQuZ1sxXStpW3NdKnIuZ1sxXSxlLmdbMl0rPWlbbl0qdC5nWzJdK2lbc10qci5nWzJdfWZ1bmN0aW9uIEIoZSx0KXt2YXIgcj1jZSh0KSxpPXQuYSxuPXIuYTtpZih5KGkuYSxuLmEpKXtpZigwPGIobi5iLmEsaS5hLG4uYSkpcmV0dXJuITE7aWYodihpLmEsbi5hKSl7aWYoaS5hIT09bi5hKXtyPWUuZTt2YXIgYT1pLmEuaDtpZigwPD1hKXt2YXIgbz0ocj1yLmIpLmQscz1yLmUsbD1yLmMsdT1sW2FdO29bdV09b1tyLmFdLChsW29bdV1dPXUpPD0tLXIuYSYmKHU8PTE/bGUocix1KTp5KHNbb1t1Pj4xXV0sc1tvW3VdXSk/bGUocix1KTp1ZShyLHUpKSxzW2FdPW51bGwsbFthXT1yLmIsci5iPWF9ZWxzZSBmb3Ioci5jWy0oYSsxKV09bnVsbDswPHIuYSYmbnVsbD09PXIuY1tyLmRbci5hLTFdXTspLS1yLmE7TihlLEoobiksaSl9fWVsc2UgVChuLmIpLE0oaSxKKG4pKSx0LmI9ci5iPSEwfWVsc2V7aWYoYihpLmIuYSxuLmEsaS5hKTwwKXJldHVybiExO2ZlKHQpLmI9dC5iPSEwLFQoaS5iKSxNKEoobiksaSl9cmV0dXJuITB9ZnVuY3Rpb24gRyhlLHQpe3ZhciByPWNlKHQpLGk9dC5hLG49ci5hLGE9aS5hLG89bi5hLHM9aS5iLmEsbD1uLmIuYSx1PW5ldyBlZTtpZihiKHMsZS5hLGEpLGIobCxlLmEsbyksYT09PW98fE1hdGgubWluKGEuYSxzLmEpPk1hdGgubWF4KG8uYSxsLmEpKXJldHVybiExO2lmKHkoYSxvKSl7aWYoMDxiKGwsYSxvKSlyZXR1cm4hMX1lbHNlIGlmKGIocyxvLGEpPDApcmV0dXJuITE7dmFyIGgsYyxmPXMsZD1hLHA9bCxtPW87aWYoeShmLGQpfHwoaD1mLGY9ZCxkPWgpLHkocCxtKXx8KGg9cCxwPW0sbT1oKSx5KGYscCl8fChoPWYsZj1wLHA9aCxoPWQsZD1tLG09aCkseShwLGQpP3koZCxtKT8oKGg9ZyhmLHAsZCkpKyhjPWcocCxkLG0pKTwwJiYoaD0taCxjPS1jKSx1LmI9UyhoLHAuYixjLGQuYikpOigoaD1iKGYscCxkKSkrKGM9LWIoZixtLGQpKTwwJiYoaD0taCxjPS1jKSx1LmI9UyhoLHAuYixjLG0uYikpOnUuYj0ocC5iK2QuYikvMixfKGYsZCl8fChoPWYsZj1kLGQ9aCksXyhwLG0pfHwoaD1wLHA9bSxtPWgpLF8oZixwKXx8KGg9ZixmPXAscD1oLGg9ZCxkPW0sbT1oKSxfKHAsZCk/XyhkLG0pPygoaD14KGYscCxkKSkrKGM9eChwLGQsbSkpPDAmJihoPS1oLGM9LWMpLHUuYT1TKGgscC5hLGMsZC5hKSk6KChoPXcoZixwLGQpKSsoYz0tdyhmLG0sZCkpPDAmJihoPS1oLGM9LWMpLHUuYT1TKGgscC5hLGMsbS5hKSk6dS5hPShwLmErZC5hKS8yLHkodSxlLmEpJiYodS5iPWUuYS5iLHUuYT1lLmEuYSksZj15KGEsbyk/YTpvLHkoZix1KSYmKHUuYj1mLmIsdS5hPWYuYSksdih1LGEpfHx2KHUsbykpcmV0dXJuIEIoZSx0KSwhMTtpZighdihzLGUuYSkmJjA8PWIocyxlLmEsdSl8fCF2KGwsZS5hKSYmYihsLGUuYSx1KTw9MCl7aWYobD09PWUuYSlyZXR1cm4gVChpLmIpLE0obi5iLGkpLGk9Y2UodD1QKHQpKS5hLEEoZSxjZSh0KSxyKSxJKGUsdCxKKGkpLGksaSwhMCksITA7aWYocyE9PWUuYSlyZXR1cm4gMDw9YihzLGUuYSx1KSYmKGZlKHQpLmI9dC5iPSEwLFQoaS5iKSxpLmEuYj1lLmEuYixpLmEuYT1lLmEuYSksYihsLGUuYSx1KTw9MCYmKHQuYj1yLmI9ITAsVChuLmIpLG4uYS5iPWUuYS5iLG4uYS5hPWUuYS5hKSwhMTtmb3IoVChuLmIpLE0oaS5lLEoobikpLG89KGE9cj10KS5hLmIuYTsoYT1mZShhKSkuYS5iLmE9PT1vOyk7cmV0dXJuIGE9Y2UodD1hKS5hLmIuYyxyLmE9SihuKSxJKGUsdCwobj1BKGUscixudWxsKSkuYyxpLmIuYyxhLCEwKSwhMH1yZXR1cm4gVChpLmIpLFQobi5iKSxNKEoobiksaSksaS5hLmI9dS5iLGkuYS5hPXUuYSxpLmEuaD1yZShlLmUsaS5hKSxpPWkuYSxuPVswLDAsMCwwXSx1PVthLmQscy5kLG8uZCxsLmRdLGkuZ1swXT1pLmdbMV09aS5nWzJdPTAsRihpLGEscyxuLDApLEYoaSxvLGwsbiwyKSxVKGUsaSx1LG4sITApLGZlKHQpLmI9dC5iPXIuYj0hMCwhMX1mdW5jdGlvbiBqKGUsdCl7Zm9yKHZhciByPWNlKHQpOzspe2Zvcig7ci5iOylyPWNlKHQ9cik7aWYoIXQuYiYmKG51bGw9PT0odD1mZShyPXQpKXx8IXQuYikpYnJlYWs7dC5iPSExO3ZhciBpLG49dC5hLGE9ci5hO2lmKGk9bi5iLmEhPT1hLmIuYSllOnt2YXIgbz1jZShpPXQpLHM9aS5hLGw9by5hLHU9dm9pZCAwO2lmKHkocy5iLmEsbC5iLmEpKXtpZihiKHMuYi5hLGwuYi5hLHMuYSk8MCl7aT0hMTticmVhayBlfWZlKGkpLmI9aS5iPSEwLHU9VChzKSxNKGwuYix1KSx1LmQuYz1pLmR9ZWxzZXtpZigwPGIobC5iLmEscy5iLmEsbC5hKSl7aT0hMTticmVhayBlfWkuYj1vLmI9ITAsdT1UKGwpLE0ocy5lLGwuYiksdS5iLmQuYz1pLmR9aT0hMH1pZihpJiYoci5jPyhPKHIpLGMoYSksYT0ocj1jZSh0KSkuYSk6dC5jJiYoTyh0KSxjKG4pLG49KHQ9ZmUocikpLmEpKSxuLmEhPT1hLmEpaWYobi5iLmE9PT1hLmIuYXx8dC5jfHxyLmN8fG4uYi5hIT09ZS5hJiZhLmIuYSE9PWUuYSlCKGUsdCk7ZWxzZSBpZihHKGUsdCkpYnJlYWs7bi5hPT09YS5hJiZuLmIuYT09PWEuYi5hJiYoTChhLG4pLE8odCksYyhuKSx0PWZlKHIpKX19ZnVuY3Rpb24gVihlLHQpe2Zvcih2YXIgcj0oZS5hPXQpLmM7bnVsbD09PXIuaTspaWYoKHI9ci5jKT09PXQuYyl7cj1lO3ZhciBpPXQ7KG89bmV3IGhlKS5hPWkuYy5iO2Zvcih2YXIgbj0obD1yLmYpLmE7bnVsbCE9PShuPW4uYSkuYiYmIWwuYyhsLmIsbyxuLmIpOyk7dmFyIGE9Y2UobD1uLmIpLG89bC5hO249YS5hO2lmKDA9PT1iKG8uYi5hLGksby5hKSl2KChvPWwuYSkuYSxpKXx8dihvLmIuYSxpKXx8KFQoby5iKSxsLmMmJihjKG8uYyksbC5jPSExKSxNKGkuYyxvKSxWKHIsaSkpO2Vsc2V7dmFyIHM9eShuLmIuYSxvLmIuYSk/bDphO2E9dm9pZCAwO2wuZHx8cy5jPyhhPXM9PT1sP2YoaS5jLmIsby5lKTpmKG4uYi5jLmIsaS5jKS5iLHMuYz9oKHMsYSk6KChsPVIobz1yLGwsYSkpLmY9ZmUobCkuZitsLmEuZixsLmQ9RChvLGwuZikpLFYocixpKSk6SShyLGwsaS5jLGkuYyxudWxsLCEwKX1yZXR1cm59aWYobD0obz1jZShyPVAoci5pKSkpLmEsKG89QShlLG8sbnVsbCkpLmM9PT1sKXtvPShsPW8pLmMsbj1jZShyKSxhPXIuYSxzPW4uYTt2YXIgbCx1PSExO2EuYi5hIT09cy5iLmEmJkcoZSxyKSx2KGEuYSxlLmEpJiYoTShKKG8pLGEpLG89Y2Uocj1QKHIpKS5hLEEoZSxjZShyKSxuKSx1PSEwKSx2KHMuYSxlLmEpJiYoTShsLEoocykpLGw9QShlLG4sbnVsbCksdT0hMCksdT9JKGUscixsLmMsbyxvLCEwKTooaT15KHMuYSxhLmEpP0oocyk6YSxJKGUscixpPWYobC5jLmIsaSksaS5jLGkuYywhMSksaS5iLmkuYz0hMCxqKGUscikpfWVsc2UgSShlLHIsby5jLGwsbCwhMCl9ZnVuY3Rpb24geihlLHQpe3ZhciByPW5ldyBoZSxpPW8oZS5iKTtpLmEuYj1DLGkuYS5hPXQsaS5iLmEuYj0tQyxpLmIuYS5hPXQsZS5hPWkuYi5hLHIuYT1pLHIuZj0wLHIuZD0hMSxyLmM9ITEsci5oPSEwLHIuYj0hMSxpPVcoaT1lLmYsaS5hLHIpLHIuZT1pfWZ1bmN0aW9uIEgoZSl7dGhpcy5hPW5ldyBxLHRoaXMuYj1lLHRoaXMuYz11fWZ1bmN0aW9uIFcoZSx0LHIpe2Zvcig7bnVsbCE9PSh0PXQuYykuYiYmIWUuYyhlLmIsdC5iLHIpOyk7cmV0dXJuIGU9bmV3IHEocix0LmEsdCksdC5hLmM9ZSx0LmE9ZX1mdW5jdGlvbiBxKGUsdCxyKXt0aGlzLmI9ZXx8bnVsbCx0aGlzLmE9dHx8dGhpcyx0aGlzLmM9cnx8dGhpc31mdW5jdGlvbiBYKCl7dGhpcy5kPTAsdGhpcy5wPXRoaXMuYj10aGlzLnE9bnVsbCx0aGlzLmo9WzAsMCwwXSx0aGlzLnM9MTAwMTMwLHRoaXMubj0hMSx0aGlzLm89dGhpcy5hPXRoaXMuZT10aGlzLmY9bnVsbCx0aGlzLm09ITEsdGhpcy5jPXRoaXMucj10aGlzLmk9dGhpcy5rPXRoaXMubD10aGlzLmg9bnVsbH1mdW5jdGlvbiBZKGUsdCl7aWYoZS5kIT09dClmb3IoO2UuZCE9PXQ7KWlmKGUuZDx0KXN3aXRjaChlLmQpe2Nhc2UgMDpaKGUsMTAwMTUxKSxlLnUobnVsbCk7YnJlYWs7Y2FzZSAxOlooZSwxMDAxNTIpLGUudCgpfWVsc2Ugc3dpdGNoKGUuZCl7Y2FzZSAyOlooZSwxMDAxNTQpLGUudigpO2JyZWFrO2Nhc2UgMTpaKGUsMTAwMTUzKSxlLncoKX19ZnVuY3Rpb24gWihlLHQpe2UucCYmZS5wKHQsZS5jKX1mdW5jdGlvbiBRKGUsdCl7dGhpcy5iPWV8fHRoaXMsdGhpcy5kPXR8fHRoaXMsdGhpcy5hPW51bGwsdGhpcy5jPSExfWZ1bmN0aW9uIEsoKXsodGhpcy5oPXRoaXMpLmk9dGhpcy5kPXRoaXMuYT10aGlzLmU9dGhpcy5jPXRoaXMuYj1udWxsLHRoaXMuZj0wfWZ1bmN0aW9uIEooZSl7cmV0dXJuIGUuYi5lfWZ1bmN0aW9uICQoKXt0aGlzLmM9bmV3IGVlLHRoaXMuYT1uZXcgUSx0aGlzLmI9bmV3IEssdGhpcy5kPW5ldyBLLHRoaXMuYi5iPXRoaXMuZCx0aGlzLmQuYj10aGlzLmJ9ZnVuY3Rpb24gZWUoZSx0KXt0aGlzLmU9ZXx8dGhpcyx0aGlzLmY9dHx8dGhpcyx0aGlzLmQ9dGhpcy5jPW51bGwsdGhpcy5nPVswLDAsMF0sdGhpcy5oPXRoaXMuYT10aGlzLmI9MH1mdW5jdGlvbiB0ZSgpe3RoaXMuYz1bXSx0aGlzLmQ9bnVsbCx0aGlzLmE9MCx0aGlzLmU9ITEsdGhpcy5iPW5ldyBuZX1mdW5jdGlvbiByZShlLHQpe2lmKGUuZSl7dmFyIHIsaT1lLmIsbj0rK2kuYTtyZXR1cm4gMipuPmkuZiYmKGkuZio9MixpLmM9YWUoaS5jLGkuZisxKSksMD09PWkuYj9yPW46KHI9aS5iLGkuYj1pLmNbaS5iXSksaS5lW3JdPXQsaS5jW3JdPW4saS5kW25dPXIsaS5oJiZ1ZShpLG4pLHJ9cmV0dXJuIGk9ZS5hKyssZS5jW2ldPXQsLShpKzEpfWZ1bmN0aW9uIGllKGUpe2lmKDA9PT1lLmEpcmV0dXJuIHNlKGUuYik7dmFyIHQ9ZS5jW2UuZFtlLmEtMV1dO2lmKDAhPT1lLmIuYSYmeShvZShlLmIpLHQpKXJldHVybiBzZShlLmIpO2Zvcig7LS1lLmEsMDxlLmEmJm51bGw9PT1lLmNbZS5kW2UuYS0xXV07KTtyZXR1cm4gdH1mdW5jdGlvbiBuZSgpe3RoaXMuZD1hZShbMF0sMzMpLHRoaXMuZT1bbnVsbCxudWxsXSx0aGlzLmM9WzAsMF0sdGhpcy5hPTAsdGhpcy5mPTMyLHRoaXMuYj0wLHRoaXMuaD0hMSx0aGlzLmRbMV09MX1mdW5jdGlvbiBhZShlLHQpe2Zvcih2YXIgcj1BcnJheSh0KSxpPTA7aTxlLmxlbmd0aDtpKyspcltpXT1lW2ldO2Zvcig7aTx0O2krKylyW2ldPTA7cmV0dXJuIHJ9ZnVuY3Rpb24gb2UoZSl7cmV0dXJuIGUuZVtlLmRbMV1dfWZ1bmN0aW9uIHNlKGUpe3ZhciB0PWUuZCxyPWUuZSxpPWUuYyxuPXRbMV0sYT1yW25dO3JldHVybiAwPGUuYSYmKHRbMV09dFtlLmFdLGlbdFsxXV09MSxyW25dPW51bGwsaVtuXT1lLmIsZS5iPW4sMDwtLWUuYSYmbGUoZSwxKSksYX1mdW5jdGlvbiBsZShlLHQpe2Zvcih2YXIgcj1lLmQsaT1lLmUsbj1lLmMsYT10LG89clthXTs7KXt2YXIgcz1hPDwxO3M8ZS5hJiZ5KGlbcltzKzFdXSxpW3Jbc11dKSYmKHMrPTEpO3ZhciBsPXJbc107aWYocz5lLmF8fHkoaVtvXSxpW2xdKSl7bltyW2FdPW9dPWE7YnJlYWt9bltyW2FdPWxdPWEsYT1zfX1mdW5jdGlvbiB1ZShlLHQpe2Zvcih2YXIgcj1lLmQsaT1lLmUsbj1lLmMsYT10LG89clthXTs7KXt2YXIgcz1hPj4xLGw9cltzXTtpZigwPT1zfHx5KGlbbF0saVtvXSkpe25bclthXT1vXT1hO2JyZWFrfW5bclthXT1sXT1hLGE9c319ZnVuY3Rpb24gaGUoKXt0aGlzLmU9dGhpcy5hPW51bGwsdGhpcy5mPTAsdGhpcy5jPXRoaXMuYj10aGlzLmg9dGhpcy5kPSExfWZ1bmN0aW9uIGNlKGUpe3JldHVybiBlLmUuYy5ifWZ1bmN0aW9uIGZlKGUpe3JldHVybiBlLmUuYS5ifShpPVgucHJvdG90eXBlKS54PWZ1bmN0aW9uKCl7WSh0aGlzLDApfSxpLkI9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSAxMDAxNDI6cmV0dXJuO2Nhc2UgMTAwMTQwOnN3aXRjaCh0KXtjYXNlIDEwMDEzMDpjYXNlIDEwMDEzMTpjYXNlIDEwMDEzMjpjYXNlIDEwMDEzMzpjYXNlIDEwMDEzNDpyZXR1cm4gdm9pZCh0aGlzLnM9dCl9YnJlYWs7Y2FzZSAxMDAxNDE6cmV0dXJuIHZvaWQodGhpcy5tPSEhdCk7ZGVmYXVsdDpyZXR1cm4gdm9pZCBaKHRoaXMsMTAwOTAwKX1aKHRoaXMsMTAwOTAxKX0saS55PWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDEwMDE0MjpyZXR1cm4gMDtjYXNlIDEwMDE0MDpyZXR1cm4gdGhpcy5zO2Nhc2UgMTAwMTQxOnJldHVybiB0aGlzLm07ZGVmYXVsdDpaKHRoaXMsMTAwOTAwKX1yZXR1cm4hMX0saS5BPWZ1bmN0aW9uKGUsdCxyKXt0aGlzLmpbMF09ZSx0aGlzLmpbMV09dCx0aGlzLmpbMl09cn0saS56PWZ1bmN0aW9uKGUsdCl7dmFyIHI9dHx8bnVsbDtzd2l0Y2goZSl7Y2FzZSAxMDAxMDA6Y2FzZSAxMDAxMDY6dGhpcy5oPXI7YnJlYWs7Y2FzZSAxMDAxMDQ6Y2FzZSAxMDAxMTA6dGhpcy5sPXI7YnJlYWs7Y2FzZSAxMDAxMDE6Y2FzZSAxMDAxMDc6dGhpcy5rPXI7YnJlYWs7Y2FzZSAxMDAxMDI6Y2FzZSAxMDAxMDg6dGhpcy5pPXI7YnJlYWs7Y2FzZSAxMDAxMDM6Y2FzZSAxMDAxMDk6dGhpcy5wPXI7YnJlYWs7Y2FzZSAxMDAxMDU6Y2FzZSAxMDAxMTE6dGhpcy5vPXI7YnJlYWs7Y2FzZSAxMDAxMTI6dGhpcy5yPXI7YnJlYWs7ZGVmYXVsdDpaKHRoaXMsMTAwOTAwKX19LGkuQz1mdW5jdGlvbihlLHQpe3ZhciByPSExLGk9WzAsMCwwXTtZKHRoaXMsMik7Zm9yKHZhciBuPTA7bjwzOysrbil7dmFyIGE9ZVtuXTthPC0xZTE1MCYmKGE9LTFlMTUwLHI9ITApLDFlMTUwPGEmJihhPTFlMTUwLHI9ITApLGlbbl09YX1yJiZaKHRoaXMsMTAwMTU1KSxudWxsPT09KHI9dGhpcy5xKT9NKHI9byh0aGlzLmIpLHIuYik6KFQocikscj1yLmUpLHIuYS5kPXQsci5hLmdbMF09aVswXSxyLmEuZ1sxXT1pWzFdLHIuYS5nWzJdPWlbMl0sci5mPTEsci5iLmY9LTEsdGhpcy5xPXJ9LGkudT1mdW5jdGlvbihlKXtZKHRoaXMsMCksdGhpcy5kPTEsdGhpcy5iPW5ldyAkLHRoaXMuYz1lfSxpLnQ9ZnVuY3Rpb24oKXtZKHRoaXMsMSksdGhpcy5kPTIsdGhpcy5xPW51bGx9LGkudj1mdW5jdGlvbigpe1kodGhpcywyKSx0aGlzLmQ9MX0saS53PWZ1bmN0aW9uKCl7WSh0aGlzLDEpLHRoaXMuZD0wO3ZhciBlLHQscj0hMSxpPVtsPXRoaXMualswXSxuPXRoaXMualsxXSxvPXRoaXMualsyXV07aWYoMD09PWwmJjA9PT1uJiYwPT09byl7Zm9yKHZhciBuPVstMmUxNTAsLTJlMTUwLC0yZTE1MF0sYT1bMmUxNTAsMmUxNTAsMmUxNTBdLG89W10scz1bXSxsPShyPXRoaXMuYi5jKS5lO2whPT1yO2w9bC5lKWZvcih2YXIgdT0wO3U8MzsrK3Upe3ZhciBoPWwuZ1t1XTtoPGFbdV0mJihhW3VdPWgsc1t1XT1sKSxoPm5bdV0mJihuW3VdPWgsb1t1XT1sKX1pZihsPTAsblsxXS1hWzFdPm5bMF0tYVswXSYmKGw9MSksblsyXS1hWzJdPm5bbF0tYVtsXSYmKGw9MiksYVtsXT49bltsXSlpWzBdPTAsaVsxXT0wLGlbMl09MTtlbHNle2ZvcihuPTAsYT1zW2xdLG89b1tsXSxzPVswLDAsMF0sYT1bYS5nWzBdLW8uZ1swXSxhLmdbMV0tby5nWzFdLGEuZ1syXS1vLmdbMl1dLHU9WzAsMCwwXSxsPXIuZTtsIT09cjtsPWwuZSl1WzBdPWwuZ1swXS1vLmdbMF0sdVsxXT1sLmdbMV0tby5nWzFdLHVbMl09bC5nWzJdLW8uZ1syXSxzWzBdPWFbMV0qdVsyXS1hWzJdKnVbMV0sc1sxXT1hWzJdKnVbMF0tYVswXSp1WzJdLHNbMl09YVswXSp1WzFdLWFbMV0qdVswXSxuPChoPXNbMF0qc1swXStzWzFdKnNbMV0rc1syXSpzWzJdKSYmKG49aCxpWzBdPXNbMF0saVsxXT1zWzFdLGlbMl09c1syXSk7bjw9MCYmKGlbMF09aVsxXT1pWzJdPTAsaVtFKGEpXT0xKX1yPSEwfWZvcihzPUUoaSksbD10aGlzLmIuYyxuPShzKzEpJTMsbz0ocysyKSUzLHM9MDxpW3NdPzE6LTEsaT1sLmU7aSE9PWw7aT1pLmUpaS5iPWkuZ1tuXSxpLmE9cyppLmdbb107aWYocil7Zm9yKGk9MCxsPShyPXRoaXMuYi5hKS5iO2whPT1yO2w9bC5iKWlmKCEoKG49bC5hKS5mPD0wKSlmb3IoO2krPShuLmEuYi1uLmIuYS5iKSoobi5hLmErbi5iLmEuYSksKG49bi5lKSE9PWwuYTspO2lmKGk8MClmb3Iocj0oaT10aGlzLmIuYykuZTtyIT09aTtyPXIuZSlyLmE9LXIuYX1mb3IodGhpcy5uPSExLGw9KGk9dGhpcy5iLmIpLmg7bCE9PWk7bD1yKXI9bC5oLG49bC5lLHYobC5hLGwuYi5hKSYmbC5lLmUhPT1sJiYoTih0aGlzLG4sbCksYyhsKSxuPShsPW4pLmUpLG4uZT09PWwmJihuIT09bCYmKG4hPT1yJiZuIT09ci5ifHwocj1yLmgpLGMobikpLGwhPT1yJiZsIT09ci5ifHwocj1yLmgpLGMobCkpO2Zvcih0aGlzLmU9aT1uZXcgdGUsbD0ocj10aGlzLmIuYykuZTtsIT09cjtsPWwuZSlsLmg9cmUoaSxsKTtmb3IoIWZ1bmN0aW9uKGUpe2UuZD1bXTtmb3IodmFyIHQ9MDt0PGUuYTt0KyspZS5kW3RdPXQ7ZS5kLnNvcnQoZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHkocltlXSxyW3RdKT8xOi0xfX0oZS5jKSksZS5lPSEwLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmE7MTw9dDstLXQpbGUoZSx0KTtlLmg9ITB9KGUuYil9KGkpLHRoaXMuZj1uZXcgSCh0aGlzKSx6KHRoaXMsLUMpLHoodGhpcyxDKTtudWxsIT09KGk9aWUodGhpcy5lKSk7KXtmb3IoOzspe2U6aWYobD10aGlzLmUsMD09PWwuYSlyPW9lKGwuYik7ZWxzZSBpZihyPWwuY1tsLmRbbC5hLTFdXSwwIT09bC5iLmEmJihsPW9lKGwuYikseShsLHIpKSl7cj1sO2JyZWFrIGV9aWYobnVsbD09PXJ8fCF2KHIsaSkpYnJlYWs7cj1pZSh0aGlzLmUpLE4odGhpcyxpLmMsci5jKX1WKHRoaXMsaSl9Zm9yKHRoaXMuYT10aGlzLmYuYS5hLmIuYS5hLGk9MDtudWxsIT09KHI9dGhpcy5mLmEuYS5iKTspci5ofHwrK2ksTyhyKTtmb3IodGhpcy5mPW51bGwsKGk9dGhpcy5lKS5iPW51bGwsaS5kPW51bGwsdGhpcy5lPWkuYz1udWxsLGw9KGk9dGhpcy5iKS5hLmI7bCE9PWkuYTtsPXIpcj1sLmIsKGw9bC5hKS5lLmU9PT1sJiYoTChsLmMsbCksYyhsKSk7aWYoIXRoaXMubil7aWYoaT10aGlzLmIsdGhpcy5tKWZvcihsPWkuYi5oO2whPT1pLmI7bD1yKXI9bC5oLGwuYi5kLmMhPT1sLmQuYz9sLmY9bC5kLmM/MTotMTpjKGwpO2Vsc2UgZm9yKGw9aS5hLmI7bCE9PWkuYTtsPXIpaWYocj1sLmIsbC5jKXtmb3IobD1sLmE7eShsLmIuYSxsLmEpO2w9bC5jLmIpO2Zvcig7eShsLmEsbC5iLmEpO2w9bC5lKTtmb3Iobj1sLmMuYixvPXZvaWQgMDtsLmUhPT1uOylpZih5KGwuYi5hLG4uYSkpe2Zvcig7bi5lIT09bCYmKHkoKHQ9bi5lKS5iLmEsdC5hKXx8YihuLmEsbi5iLmEsbi5lLmIuYSk8PTApOyluPShvPWYobi5lLG4pKS5iO249bi5jLmJ9ZWxzZXtmb3IoO24uZSE9PWwmJih5KChlPWwuYy5iKS5hLGUuYi5hKXx8MDw9YihsLmIuYSxsLmEsbC5jLmIuYSkpOylsPShvPWYobCxsLmMuYikpLmI7bD1sLmV9Zm9yKDtuLmUuZSE9PWw7KW49KG89ZihuLmUsbikpLmJ9aWYodGhpcy5ofHx0aGlzLml8fHRoaXMua3x8dGhpcy5sKWlmKHRoaXMubSl7Zm9yKHI9KGk9dGhpcy5iKS5hLmI7ciE9PWkuYTtyPXIuYilpZihyLmMpe2Zvcih0aGlzLmgmJnRoaXMuaCgyLHRoaXMuYyksbD1yLmE7dGhpcy5rJiZ0aGlzLmsobC5hLmQsdGhpcy5jKSwobD1sLmUpIT09ci5hOyk7dGhpcy5pJiZ0aGlzLmkodGhpcy5jKX19ZWxzZXtmb3IoaT10aGlzLmIscj0hIXRoaXMubCxsPSExLG49LTEsbz1pLmEuZDtvIT09aS5hO289by5kKWlmKG8uYylmb3IobHx8KHRoaXMuaCYmdGhpcy5oKDQsdGhpcy5jKSxsPSEwKSxzPW8uYTtyJiYobiE9PShhPXMuYi5kLmM/MDoxKSYmKG49YSx0aGlzLmwmJnRoaXMubCghIW4sdGhpcy5jKSkpLHRoaXMuayYmdGhpcy5rKHMuYS5kLHRoaXMuYyksKHM9cy5lKSE9PW8uYTspO2wmJnRoaXMuaSYmdGhpcy5pKHRoaXMuYyl9aWYodGhpcy5yKXtmb3IobD0oaT10aGlzLmIpLmEuYjtsIT09aS5hO2w9cilpZihyPWwuYiwhbC5jKXtmb3Iobz0obj1sLmEpLmUscz12b2lkIDA7bz0ocz1vKS5lLChzLmQ9bnVsbCk9PT1zLmIuZCYmKHMuYz09PXM/bShzLmEsbnVsbCk6KHMuYS5jPXMuYyxkKHMsSihzKSkpLChhPXMuYikuYz09PWE/bShhLmEsbnVsbCk6KGEuYS5jPWEuYyxkKGEsSihhKSkpLHAocykpLHMhPT1uOyk7bj1sLmQsKChsPWwuYikuZD1uKS5iPWx9cmV0dXJuIHRoaXMucih0aGlzLmIpLHZvaWQodGhpcy5jPXRoaXMuYj1udWxsKX19dGhpcy5iPXRoaXMuYz1udWxsfSx0aGlzLmxpYnRlc3M9e0dsdVRlc3NlbGF0b3I6WCx3aW5kaW5nUnVsZTp7R0xVX1RFU1NfV0lORElOR19PREQ6MTAwMTMwLEdMVV9URVNTX1dJTkRJTkdfTk9OWkVSTzoxMDAxMzEsR0xVX1RFU1NfV0lORElOR19QT1NJVElWRToxMDAxMzIsR0xVX1RFU1NfV0lORElOR19ORUdBVElWRToxMDAxMzMsR0xVX1RFU1NfV0lORElOR19BQlNfR0VRX1RXTzoxMDAxMzR9LHByaW1pdGl2ZVR5cGU6e0dMX0xJTkVfTE9PUDoyLEdMX1RSSUFOR0xFUzo0LEdMX1RSSUFOR0xFX1NUUklQOjUsR0xfVFJJQU5HTEVfRkFOOjZ9LGVycm9yVHlwZTp7R0xVX1RFU1NfTUlTU0lOR19CRUdJTl9QT0xZR09OOjEwMDE1MSxHTFVfVEVTU19NSVNTSU5HX0VORF9QT0xZR09OOjEwMDE1MyxHTFVfVEVTU19NSVNTSU5HX0JFR0lOX0NPTlRPVVI6MTAwMTUyLEdMVV9URVNTX01JU1NJTkdfRU5EX0NPTlRPVVI6MTAwMTU0LEdMVV9URVNTX0NPT1JEX1RPT19MQVJHRToxMDAxNTUsR0xVX1RFU1NfTkVFRF9DT01CSU5FX0NBTExCQUNLOjEwMDE1Nn0sZ2x1RW51bTp7R0xVX1RFU1NfTUVTSDoxMDAxMTIsR0xVX1RFU1NfVE9MRVJBTkNFOjEwMDE0MixHTFVfVEVTU19XSU5ESU5HX1JVTEU6MTAwMTQwLEdMVV9URVNTX0JPVU5EQVJZX09OTFk6MTAwMTQxLEdMVV9JTlZBTElEX0VOVU06MTAwOTAwLEdMVV9JTlZBTElEX1ZBTFVFOjEwMDkwMSxHTFVfVEVTU19CRUdJTjoxMDAxMDAsR0xVX1RFU1NfVkVSVEVYOjEwMDEwMSxHTFVfVEVTU19FTkQ6MTAwMTAyLEdMVV9URVNTX0VSUk9SOjEwMDEwMyxHTFVfVEVTU19FREdFX0ZMQUc6MTAwMTA0LEdMVV9URVNTX0NPTUJJTkU6MTAwMTA1LEdMVV9URVNTX0JFR0lOX0RBVEE6MTAwMTA2LEdMVV9URVNTX1ZFUlRFWF9EQVRBOjEwMDEwNyxHTFVfVEVTU19FTkRfREFUQToxMDAxMDgsR0xVX1RFU1NfRVJST1JfREFUQToxMDAxMDksR0xVX1RFU1NfRURHRV9GTEFHX0RBVEE6MTAwMTEwLEdMVV9URVNTX0NPTUJJTkVfREFUQToxMDAxMTF9fSxYLnByb3RvdHlwZS5nbHVEZWxldGVUZXNzPVgucHJvdG90eXBlLngsWC5wcm90b3R5cGUuZ2x1VGVzc1Byb3BlcnR5PVgucHJvdG90eXBlLkIsWC5wcm90b3R5cGUuZ2x1R2V0VGVzc1Byb3BlcnR5PVgucHJvdG90eXBlLnksWC5wcm90b3R5cGUuZ2x1VGVzc05vcm1hbD1YLnByb3RvdHlwZS5BLFgucHJvdG90eXBlLmdsdVRlc3NDYWxsYmFjaz1YLnByb3RvdHlwZS56LFgucHJvdG90eXBlLmdsdVRlc3NWZXJ0ZXg9WC5wcm90b3R5cGUuQyxYLnByb3RvdHlwZS5nbHVUZXNzQmVnaW5Qb2x5Z29uPVgucHJvdG90eXBlLnUsWC5wcm90b3R5cGUuZ2x1VGVzc0JlZ2luQ29udG91cj1YLnByb3RvdHlwZS50LFgucHJvdG90eXBlLmdsdVRlc3NFbmRDb250b3VyPVgucHJvdG90eXBlLnYsWC5wcm90b3R5cGUuZ2x1VGVzc0VuZFBvbHlnb249WC5wcm90b3R5cGUudyx2b2lkIDAhPT10JiYodC5leHBvcnRzPXRoaXMubGlidGVzcyl9LHt9XSwxMTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIEwoZSx0LHIsaSl7Zm9yKHZhciBuPWVbdCsrXSxhPTE8PG4sbz0xK2Escz0xK28sbD1uKzEsdT0oMTw8bCktMSxoPTAsYz0wLGY9MCxkPWVbdCsrXSxwPW5ldyBJbnQzMkFycmF5KDQwOTYpLG09bnVsbDs7KXtmb3IoO2g8MTYmJjAhPT1kOyljfD1lW3QrK108PGgsaCs9OCwxPT09ZD9kPWVbdCsrXTotLWQ7aWYoaDxsKWJyZWFrO3ZhciB2PWMmdTtpZihjPj49bCxoLT1sLHYhPWEpe2lmKHY9PW8pYnJlYWs7Zm9yKHZhciB5PXY8cz92Om0sZz0wLGI9eTthPGI7KWI9cFtiXT4+OCwrK2c7dmFyIF89YjtpZihpPGYrZysoeSE9PXY/MTowKSlyZXR1cm4gdm9pZCBjb25zb2xlLmxvZyhcIldhcm5pbmcsIGdpZiBzdHJlYW0gbG9uZ2VyIHRoYW4gZXhwZWN0ZWQuXCIpO3JbZisrXT1fO3ZhciB4PWYrPWc7Zm9yKHkhPT12JiYocltmKytdPV8pLGI9eTtnLS07KWI9cFtiXSxyWy0teF09MjU1JmIsYj4+PTg7bnVsbCE9PW0mJnM8NDA5NiYmKHBbcysrXT1tPDw4fF8sdSsxPD1zJiZsPDEyJiYoKytsLHU9dTw8MXwxKSksbT12fWVsc2Ugcz0xK28sdT0oMTw8KGw9bisxKSktMSxtPW51bGx9cmV0dXJuIGYhPT1pJiZjb25zb2xlLmxvZyhcIldhcm5pbmcsIGdpZiBzdHJlYW0gc2hvcnRlciB0aGFuIGV4cGVjdGVkLlwiKSxyfXRyeXtyLkdpZldyaXRlcj1mdW5jdGlvbih5LGUsdCxyKXt2YXIgZz0wLGk9dm9pZCAwPT09KHI9dm9pZCAwPT09cj97fTpyKS5sb29wP251bGw6ci5sb29wLGI9dm9pZCAwPT09ci5wYWxldHRlP251bGw6ci5wYWxldHRlO2lmKGU8PTB8fHQ8PTB8fDY1NTM1PGV8fDY1NTM1PHQpdGhyb3cgbmV3IEVycm9yKFwiV2lkdGgvSGVpZ2h0IGludmFsaWQuXCIpO2Z1bmN0aW9uIF8oZSl7dmFyIHQ9ZS5sZW5ndGg7aWYodDwyfHwyNTY8dHx8dCZ0LTEpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBjb2RlL2NvbG9yIGxlbmd0aCwgbXVzdCBiZSBwb3dlciBvZiAyIGFuZCAyIC4uIDI1Ni5cIik7cmV0dXJuIHR9eVtnKytdPTcxLHlbZysrXT03Myx5W2crK109NzAseVtnKytdPTU2LHlbZysrXT01Nyx5W2crK109OTc7dmFyIG49MCxhPTA7aWYobnVsbCE9PWIpe2Zvcih2YXIgbz1fKGIpO28+Pj0xOykrK247aWYobz0xPDxuLC0tbix2b2lkIDAhPT1yLmJhY2tncm91bmQpe2lmKG88PShhPXIuYmFja2dyb3VuZCkpdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZCBpbmRleCBvdXQgb2YgcmFuZ2UuXCIpO2lmKDA9PT1hKXRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmQgaW5kZXggZXhwbGljaXRseSBwYXNzZWQgYXMgMC5cIil9fWlmKHlbZysrXT0yNTUmZSx5W2crK109ZT4+OCYyNTUseVtnKytdPTI1NSZ0LHlbZysrXT10Pj44JjI1NSx5W2crK109KG51bGwhPT1iPzEyODowKXxuLHlbZysrXT1hLHlbZysrXT0wLG51bGwhPT1iKWZvcih2YXIgcz0wLGw9Yi5sZW5ndGg7czxsOysrcyl7dmFyIHU9YltzXTt5W2crK109dT4+MTYmMjU1LHlbZysrXT11Pj44JjI1NSx5W2crK109MjU1JnV9aWYobnVsbCE9PWkpe2lmKGk8MHx8NjU1MzU8aSl0aHJvdyBuZXcgRXJyb3IoXCJMb29wIGNvdW50IGludmFsaWQuXCIpO3lbZysrXT0zMyx5W2crK109MjU1LHlbZysrXT0xMSx5W2crK109NzgseVtnKytdPTY5LHlbZysrXT04NCx5W2crK109ODMseVtnKytdPTY3LHlbZysrXT02NSx5W2crK109ODAseVtnKytdPTY5LHlbZysrXT01MCx5W2crK109NDYseVtnKytdPTQ4LHlbZysrXT0zLHlbZysrXT0xLHlbZysrXT0yNTUmaSx5W2crK109aT4+OCYyNTUseVtnKytdPTB9dmFyIHg9ITE7dGhpcy5hZGRGcmFtZT1mdW5jdGlvbihlLHQscixpLG4sYSl7aWYoITA9PT14JiYoLS1nLHg9ITEpLGE9dm9pZCAwPT09YT97fTphLGU8MHx8dDwwfHw2NTUzNTxlfHw2NTUzNTx0KXRocm93IG5ldyBFcnJvcihcIngveSBpbnZhbGlkLlwiKTtpZihyPD0wfHxpPD0wfHw2NTUzNTxyfHw2NTUzNTxpKXRocm93IG5ldyBFcnJvcihcIldpZHRoL0hlaWdodCBpbnZhbGlkLlwiKTtpZihuLmxlbmd0aDxyKmkpdGhyb3cgbmV3IEVycm9yKFwiTm90IGVub3VnaCBwaXhlbHMgZm9yIHRoZSBmcmFtZSBzaXplLlwiKTt2YXIgbz0hMCxzPWEucGFsZXR0ZTtpZihudWxsPT1zJiYobz0hMSxzPWIpLG51bGw9PXMpdGhyb3cgbmV3IEVycm9yKFwiTXVzdCBzdXBwbHkgZWl0aGVyIGEgbG9jYWwgb3IgZ2xvYmFsIHBhbGV0dGUuXCIpO2Zvcih2YXIgbD1fKHMpLHU9MDtsPj49MTspKyt1O2w9MTw8dTt2YXIgaD12b2lkIDA9PT1hLmRlbGF5PzA6YS5kZWxheSxjPXZvaWQgMD09PWEuZGlzcG9zYWw/MDphLmRpc3Bvc2FsO2lmKGM8MHx8MzxjKXRocm93IG5ldyBFcnJvcihcIkRpc3Bvc2FsIG91dCBvZiByYW5nZS5cIik7dmFyIGY9ITEsZD0wO2lmKHZvaWQgMCE9PWEudHJhbnNwYXJlbnQmJm51bGwhPT1hLnRyYW5zcGFyZW50JiYoZj0hMCwoZD1hLnRyYW5zcGFyZW50KTwwfHxsPD1kKSl0aHJvdyBuZXcgRXJyb3IoXCJUcmFuc3BhcmVudCBjb2xvciBpbmRleC5cIik7aWYoMD09PWMmJiFmJiYwPT09aHx8KHlbZysrXT0zMyx5W2crK109MjQ5LHlbZysrXT00LHlbZysrXT1jPDwyfCghMD09PWY/MTowKSx5W2crK109MjU1JmgseVtnKytdPWg+PjgmMjU1LHlbZysrXT1kLHlbZysrXT0wKSx5W2crK109NDQseVtnKytdPTI1NSZlLHlbZysrXT1lPj44JjI1NSx5W2crK109MjU1JnQseVtnKytdPXQ+PjgmMjU1LHlbZysrXT0yNTUmcix5W2crK109cj4+OCYyNTUseVtnKytdPTI1NSZpLHlbZysrXT1pPj44JjI1NSx5W2crK109ITA9PT1vPzEyOHx1LTE6MCwhMD09PW8pZm9yKHZhciBwPTAsbT1zLmxlbmd0aDtwPG07KytwKXt2YXIgdj1zW3BdO3lbZysrXT12Pj4xNiYyNTUseVtnKytdPXY+PjgmMjU1LHlbZysrXT0yNTUmdn1yZXR1cm4gZz1mdW5jdGlvbih0LHIsZSxpKXt0W3IrK109ZTt2YXIgbj1yKyssYT0xPDxlLG89YS0xLHM9MSthLGw9MStzLHU9ZSsxLGg9MCxjPTA7ZnVuY3Rpb24gZihlKXtmb3IoO2U8PWg7KXRbcisrXT0yNTUmYyxjPj49OCxoLT04LHI9PT1uKzI1NiYmKHRbbl09MjU1LG49cisrKX1mdW5jdGlvbiBkKGUpe2N8PWU8PGgsaCs9dSxmKDgpfXZhciBwPWlbMF0mbyxtPXt9O2QoYSk7Zm9yKHZhciB2PTEseT1pLmxlbmd0aDt2PHk7Kyt2KXt2YXIgZz1pW3ZdJm8sYj1wPDw4fGcsXz1tW2JdO2lmKHZvaWQgMD09PV8pe2ZvcihjfD1wPDxoLGgrPXU7ODw9aDspdFtyKytdPTI1NSZjLGM+Pj04LGgtPTgscj09PW4rMjU2JiYodFtuXT0yNTUsbj1yKyspOzQwOTY9PT1sPyhkKGEpLGw9MStzLHU9ZSsxLG09e30pOigxPDx1PD1sJiYrK3UsbVtiXT1sKyspLHA9Z31lbHNlIHA9X31kKHApLGQocyksZigxKSxuKzE9PT1yP3Rbbl09MDoodFtuXT1yLW4tMSx0W3IrK109MCk7cmV0dXJuIHJ9KHksZyx1PDI/Mjp1LG4pfSx0aGlzLmVuZD1mdW5jdGlvbigpe3JldHVybiExPT09eCYmKHlbZysrXT01OSx4PSEwKSxnfSx0aGlzLmdldE91dHB1dEJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB5fSx0aGlzLnNldE91dHB1dEJ1ZmZlcj1mdW5jdGlvbihlKXt5PWV9LHRoaXMuZ2V0T3V0cHV0QnVmZmVyUG9zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gZ30sdGhpcy5zZXRPdXRwdXRCdWZmZXJQb3NpdGlvbj1mdW5jdGlvbihlKXtnPWV9fSxyLkdpZlJlYWRlcj1mdW5jdGlvbih4KXt2YXIgZT0wO2lmKDcxIT09eFtlKytdfHw3MyE9PXhbZSsrXXx8NzAhPT14W2UrK118fDU2IT09eFtlKytdfHw1NiE9KHhbZSsrXSsxJjI1Myl8fDk3IT09eFtlKytdKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgR0lGIDg3YS84OWEgaGVhZGVyLlwiKTt2YXIgdz14W2UrK118eFtlKytdPDw4LHQ9eFtlKytdfHhbZSsrXTw8OCxyPXhbZSsrXSxpPXI+Pjcsbj0xPDwxKyg3JnIpO3hbZSsrXSx4W2UrK107dmFyIGE9bnVsbCxvPW51bGw7aSYmKGE9ZSxlKz0zKihvPW4pKTt2YXIgcz0hMCxsPVtdLHU9MCxoPW51bGwsYz0wLGY9bnVsbDtmb3IodGhpcy53aWR0aD13LHRoaXMuaGVpZ2h0PXQ7cyYmZTx4Lmxlbmd0aDspc3dpdGNoKHhbZSsrXSl7Y2FzZSAzMzpzd2l0Y2goeFtlKytdKXtjYXNlIDI1NTppZigxMSE9PXhbZV18fDc4PT14W2UrMV0mJjY5PT14W2UrMl0mJjg0PT14W2UrM10mJjgzPT14W2UrNF0mJjY3PT14W2UrNV0mJjY1PT14W2UrNl0mJjgwPT14W2UrN10mJjY5PT14W2UrOF0mJjUwPT14W2UrOV0mJjQ2PT14W2UrMTBdJiY0OD09eFtlKzExXSYmMz09eFtlKzEyXSYmMT09eFtlKzEzXSYmMD09eFtlKzE2XSllKz0xNCxmPXhbZSsrXXx4W2UrK108PDgsZSsrO2Vsc2UgZm9yKGUrPTEyOzspe2lmKCEoMDw9KEM9eFtlKytdKSkpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGJsb2NrIHNpemVcIik7aWYoMD09PUMpYnJlYWs7ZSs9Q31icmVhaztjYXNlIDI0OTppZig0IT09eFtlKytdfHwwIT09eFtlKzRdKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZ3JhcGhpY3MgZXh0ZW5zaW9uIGJsb2NrLlwiKTt2YXIgZD14W2UrK107dT14W2UrK118eFtlKytdPDw4LGg9eFtlKytdLDA9PSgxJmQpJiYoaD1udWxsKSxjPWQ+PjImNyxlKys7YnJlYWs7Y2FzZSAyNTQ6Zm9yKDs7KXtpZighKDA8PShDPXhbZSsrXSkpKXRocm93IEVycm9yKFwiSW52YWxpZCBibG9jayBzaXplXCIpO2lmKDA9PT1DKWJyZWFrO2UrPUN9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGdyYXBoaWMgY29udHJvbCBsYWJlbDogMHhcIit4W2UtMV0udG9TdHJpbmcoMTYpKX1icmVhaztjYXNlIDQ0OnZhciBwPXhbZSsrXXx4W2UrK108PDgsbT14W2UrK118eFtlKytdPDw4LHY9eFtlKytdfHhbZSsrXTw8OCx5PXhbZSsrXXx4W2UrK108PDgsZz14W2UrK10sYj1nPj42JjEsXz0xPDwxKyg3JmcpLFM9YSxNPW8sVD0hMTtpZihnPj43KXtUPSEwO1M9ZSxlKz0zKihNPV8pfXZhciBFPWU7Zm9yKGUrKzs7KXt2YXIgQztpZighKDA8PShDPXhbZSsrXSkpKXRocm93IEVycm9yKFwiSW52YWxpZCBibG9jayBzaXplXCIpO2lmKDA9PT1DKWJyZWFrO2UrPUN9bC5wdXNoKHt4OnAseTptLHdpZHRoOnYsaGVpZ2h0OnksaGFzX2xvY2FsX3BhbGV0dGU6VCxwYWxldHRlX29mZnNldDpTLHBhbGV0dGVfc2l6ZTpNLGRhdGFfb2Zmc2V0OkUsZGF0YV9sZW5ndGg6ZS1FLHRyYW5zcGFyZW50X2luZGV4OmgsaW50ZXJsYWNlZDohIWIsZGVsYXk6dSxkaXNwb3NhbDpjfSk7YnJlYWs7Y2FzZSA1OTpzPSExO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBnaWYgYmxvY2s6IDB4XCIreFtlLTFdLnRvU3RyaW5nKDE2KSl9dGhpcy5udW1GcmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbC5sZW5ndGh9LHRoaXMubG9vcENvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHRoaXMuZnJhbWVJbmZvPWZ1bmN0aW9uKGUpe2lmKGU8MHx8ZT49bC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRnJhbWUgaW5kZXggb3V0IG9mIHJhbmdlLlwiKTtyZXR1cm4gbFtlXX0sdGhpcy5kZWNvZGVBbmRCbGl0RnJhbWVCR1JBPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5mcmFtZUluZm8oZSksaT1yLndpZHRoKnIuaGVpZ2h0LG49bmV3IFVpbnQ4QXJyYXkoaSk7TCh4LHIuZGF0YV9vZmZzZXQsbixpKTt2YXIgYT1yLnBhbGV0dGVfb2Zmc2V0LG89ci50cmFuc3BhcmVudF9pbmRleDtudWxsPT09byYmKG89MjU2KTt2YXIgcz1yLndpZHRoLGw9dy1zLHU9cyxoPTQqKHIueSp3K3IueCksYz00Kigoci55K3IuaGVpZ2h0KSp3K3IueCksZj1oLGQ9NCpsOyEwPT09ci5pbnRlcmxhY2VkJiYoZCs9NCp3KjcpO2Zvcih2YXIgcD04LG09MCx2PW4ubGVuZ3RoO208djsrK20pe3ZhciB5PW5bbV07aWYoMD09PXUmJih1PXMsYzw9KGYrPWQpJiYoZD00KmwrNCp3KihwLTEpLGY9aCsocytsKSoocDw8MSkscD4+PTEpKSx5PT09bylmKz00O2Vsc2V7dmFyIGc9eFthKzMqeV0sYj14W2ErMyp5KzFdLF89eFthKzMqeSsyXTt0W2YrK109Xyx0W2YrK109Yix0W2YrK109Zyx0W2YrK109MjU1fS0tdX19LHRoaXMuZGVjb2RlQW5kQmxpdEZyYW1lUkdCQT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuZnJhbWVJbmZvKGUpLGk9ci53aWR0aCpyLmhlaWdodCxuPW5ldyBVaW50OEFycmF5KGkpO0woeCxyLmRhdGFfb2Zmc2V0LG4saSk7dmFyIGE9ci5wYWxldHRlX29mZnNldCxvPXIudHJhbnNwYXJlbnRfaW5kZXg7bnVsbD09PW8mJihvPTI1Nik7dmFyIHM9ci53aWR0aCxsPXctcyx1PXMsaD00KihyLnkqdytyLngpLGM9NCooKHIueStyLmhlaWdodCkqdytyLngpLGY9aCxkPTQqbDshMD09PXIuaW50ZXJsYWNlZCYmKGQrPTQqdyo3KTtmb3IodmFyIHA9OCxtPTAsdj1uLmxlbmd0aDttPHY7KyttKXt2YXIgeT1uW21dO2lmKDA9PT11JiYodT1zLGM8PShmKz1kKSYmKGQ9NCpsKzQqdyoocC0xKSxmPWgrKHMrbCkqKHA8PDEpLHA+Pj0xKSkseT09PW8pZis9NDtlbHNle3ZhciBnPXhbYSszKnldLGI9eFthKzMqeSsxXSxfPXhbYSszKnkrMl07dFtmKytdPWcsdFtmKytdPWIsdFtmKytdPV8sdFtmKytdPTI1NX0tLXV9fX19Y2F0Y2goZSl7fX0se31dLDEyOltmdW5jdGlvbihqcix0LHIpeyhmdW5jdGlvbihHcil7dmFyIGU7ZT10aGlzLGZ1bmN0aW9uKFQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUoZSl7aWYobnVsbD09dGhpcyl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1TdHJpbmcodGhpcykscj10Lmxlbmd0aCxpPWU/TnVtYmVyKGUpOjA7aWYoaSE9aSYmKGk9MCksIShpPDB8fHI8PWkpKXt2YXIgbixhPXQuY2hhckNvZGVBdChpKTtyZXR1cm4gNTUyOTY8PWEmJmE8PTU2MzE5JiZpKzE8ciYmNTYzMjA8PShuPXQuY2hhckNvZGVBdChpKzEpKSYmbjw9NTczNDM/MTAyNCooYS01NTI5Nikrbi01NjMyMCs2NTUzNjphfX12YXIgdDtTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0fHwoKHQ9ZnVuY3Rpb24oKXt0cnl7dmFyIGU9e30sdD1PYmplY3QuZGVmaW5lUHJvcGVydHkscj10KGUsZSxlKSYmdH1jYXRjaChlKXt9cmV0dXJuIHJ9KCkpP3QoU3RyaW5nLnByb3RvdHlwZSxcImNvZGVQb2ludEF0XCIse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6U3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdD1lKTt2YXIgbD0wLGE9LTM7ZnVuY3Rpb24gcigpe3RoaXMudGFibGU9bmV3IFVpbnQxNkFycmF5KDE2KSx0aGlzLnRyYW5zPW5ldyBVaW50MTZBcnJheSgyODgpfWZ1bmN0aW9uIG8oZSx0KXt0aGlzLnNvdXJjZT1lLHRoaXMuc291cmNlSW5kZXg9MCx0aGlzLnRhZz0wLHRoaXMuYml0Y291bnQ9MCx0aGlzLmRlc3Q9dCx0aGlzLmRlc3RMZW49MCx0aGlzLmx0cmVlPW5ldyByLHRoaXMuZHRyZWU9bmV3IHJ9dmFyIHM9bmV3IHIsdT1uZXcgcixoPW5ldyBVaW50OEFycmF5KDMwKSxjPW5ldyBVaW50MTZBcnJheSgzMCksZj1uZXcgVWludDhBcnJheSgzMCksZD1uZXcgVWludDE2QXJyYXkoMzApLHA9bmV3IFVpbnQ4QXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxtPW5ldyByLHY9bmV3IFVpbnQ4QXJyYXkoMzIwKTtmdW5jdGlvbiBpKGUsdCxyLGkpe3ZhciBuLGE7Zm9yKG49MDtuPHI7KytuKWVbbl09MDtmb3Iobj0wO248MzAtcjsrK24pZVtuK3JdPW4vcnwwO2ZvcihhPWksbj0wO248MzA7KytuKXRbbl09YSxhKz0xPDxlW25dfXZhciB5PW5ldyBVaW50MTZBcnJheSgxNik7ZnVuY3Rpb24gZyhlLHQscixpKXt2YXIgbixhO2ZvcihuPTA7bjwxNjsrK24pZS50YWJsZVtuXT0wO2ZvcihuPTA7bjxpOysrbillLnRhYmxlW3RbcituXV0rKztmb3Iobj1hPWUudGFibGVbMF09MDtuPDE2Oysrbil5W25dPWEsYSs9ZS50YWJsZVtuXTtmb3Iobj0wO248aTsrK24pdFtyK25dJiYoZS50cmFuc1t5W3RbcituXV0rK109bil9ZnVuY3Rpb24gYihlKXtlLmJpdGNvdW50LS18fChlLnRhZz1lLnNvdXJjZVtlLnNvdXJjZUluZGV4KytdLGUuYml0Y291bnQ9Nyk7dmFyIHQ9MSZlLnRhZztyZXR1cm4gZS50YWc+Pj49MSx0fWZ1bmN0aW9uIF8oZSx0LHIpe2lmKCF0KXJldHVybiByO2Zvcig7ZS5iaXRjb3VudDwyNDspZS50YWd8PWUuc291cmNlW2Uuc291cmNlSW5kZXgrK108PGUuYml0Y291bnQsZS5iaXRjb3VudCs9ODt2YXIgaT1lLnRhZyY2NTUzNT4+PjE2LXQ7cmV0dXJuIGUudGFnPj4+PXQsZS5iaXRjb3VudC09dCxpK3J9ZnVuY3Rpb24geChlLHQpe2Zvcig7ZS5iaXRjb3VudDwyNDspZS50YWd8PWUuc291cmNlW2Uuc291cmNlSW5kZXgrK108PGUuYml0Y291bnQsZS5iaXRjb3VudCs9ODtmb3IodmFyIHI9MCxpPTAsbj0wLGE9ZS50YWc7aT0yKmkrKDEmYSksYT4+Pj0xLCsrbixyKz10LnRhYmxlW25dLDA8PShpLT10LnRhYmxlW25dKTspO3JldHVybiBlLnRhZz1hLGUuYml0Y291bnQtPW4sdC50cmFuc1tyK2ldfWZ1bmN0aW9uIHcoZSx0LHIpe3ZhciBpLG4sYSxvLHMsbDtmb3IoaT1fKGUsNSwyNTcpLG49XyhlLDUsMSksYT1fKGUsNCw0KSxvPTA7bzwxOTsrK28pdltvXT0wO2ZvcihvPTA7bzxhOysrbyl7dmFyIHU9XyhlLDMsMCk7dltwW29dXT11fWZvcihnKG0sdiwwLDE5KSxzPTA7czxpK247KXt2YXIgaD14KGUsbSk7c3dpdGNoKGgpe2Nhc2UgMTY6dmFyIGM9dltzLTFdO2ZvcihsPV8oZSwyLDMpO2w7LS1sKXZbcysrXT1jO2JyZWFrO2Nhc2UgMTc6Zm9yKGw9XyhlLDMsMyk7bDstLWwpdltzKytdPTA7YnJlYWs7Y2FzZSAxODpmb3IobD1fKGUsNywxMSk7bDstLWwpdltzKytdPTA7YnJlYWs7ZGVmYXVsdDp2W3MrK109aH19Zyh0LHYsMCxpKSxnKHIsdixpLG4pfWZ1bmN0aW9uIFMoZSx0LHIpe2Zvcig7Oyl7dmFyIGksbixhLG8scz14KGUsdCk7aWYoMjU2PT09cylyZXR1cm4gbDtpZihzPDI1NillLmRlc3RbZS5kZXN0TGVuKytdPXM7ZWxzZSBmb3IoaT1fKGUsaFtzLT0yNTddLGNbc10pLG49eChlLHIpLG89YT1lLmRlc3RMZW4tXyhlLGZbbl0sZFtuXSk7bzxhK2k7KytvKWUuZGVzdFtlLmRlc3RMZW4rK109ZS5kZXN0W29dfX1mdW5jdGlvbiBNKGUpe2Zvcih2YXIgdCxyOzg8ZS5iaXRjb3VudDspZS5zb3VyY2VJbmRleC0tLGUuYml0Y291bnQtPTg7aWYoKHQ9MjU2Kih0PWUuc291cmNlW2Uuc291cmNlSW5kZXgrMV0pK2Uuc291cmNlW2Uuc291cmNlSW5kZXhdKSE9PSg2NTUzNSZ+KDI1NiplLnNvdXJjZVtlLnNvdXJjZUluZGV4KzNdK2Uuc291cmNlW2Uuc291cmNlSW5kZXgrMl0pKSlyZXR1cm4gYTtmb3IoZS5zb3VyY2VJbmRleCs9NCxyPXQ7cjstLXIpZS5kZXN0W2UuZGVzdExlbisrXT1lLnNvdXJjZVtlLnNvdXJjZUluZGV4KytdO3JldHVybiBlLmJpdGNvdW50PTAsbH0hZnVuY3Rpb24oZSx0KXt2YXIgcjtmb3Iocj0wO3I8NzsrK3IpZS50YWJsZVtyXT0wO2ZvcihlLnRhYmxlWzddPTI0LGUudGFibGVbOF09MTUyLGUudGFibGVbOV09MTEyLHI9MDtyPDI0OysrcillLnRyYW5zW3JdPTI1NityO2ZvcihyPTA7cjwxNDQ7KytyKWUudHJhbnNbMjQrcl09cjtmb3Iocj0wO3I8ODsrK3IpZS50cmFuc1sxNjgrcl09MjgwK3I7Zm9yKHI9MDtyPDExMjsrK3IpZS50cmFuc1sxNzYrcl09MTQ0K3I7Zm9yKHI9MDtyPDU7KytyKXQudGFibGVbcl09MDtmb3IodC50YWJsZVs1XT0zMixyPTA7cjwzMjsrK3IpdC50cmFuc1tyXT1yfShzLHUpLGkoaCxjLDQsMyksaShmLGQsMiwxKSxoWzI4XT0wLGNbMjhdPTI1ODt2YXIgbj1mdW5jdGlvbihlLHQpe3ZhciByLGksbj1uZXcgbyhlLHQpO2Rve3N3aXRjaChyPWIobiksXyhuLDIsMCkpe2Nhc2UgMDppPU0obik7YnJlYWs7Y2FzZSAxOmk9UyhuLHMsdSk7YnJlYWs7Y2FzZSAyOncobixuLmx0cmVlLG4uZHRyZWUpLGk9UyhuLG4ubHRyZWUsbi5kdHJlZSk7YnJlYWs7ZGVmYXVsdDppPWF9aWYoaSE9PWwpdGhyb3cgbmV3IEVycm9yKFwiRGF0YSBlcnJvclwiKX13aGlsZSghcik7cmV0dXJuIG4uZGVzdExlbjxuLmRlc3QubGVuZ3RoP1wiZnVuY3Rpb25cIj09dHlwZW9mIG4uZGVzdC5zbGljZT9uLmRlc3Quc2xpY2UoMCxuLmRlc3RMZW4pOm4uZGVzdC5zdWJhcnJheSgwLG4uZGVzdExlbik6bi5kZXN0fTtmdW5jdGlvbiBFKGUsdCxyLGksbil7cmV0dXJuIE1hdGgucG93KDEtbiwzKSplKzMqTWF0aC5wb3coMS1uLDIpKm4qdCszKigxLW4pKk1hdGgucG93KG4sMikqcitNYXRoLnBvdyhuLDMpKml9ZnVuY3Rpb24gQygpe3RoaXMueDE9TnVtYmVyLk5hTix0aGlzLnkxPU51bWJlci5OYU4sdGhpcy54Mj1OdW1iZXIuTmFOLHRoaXMueTI9TnVtYmVyLk5hTn1mdW5jdGlvbiBJKCl7dGhpcy5jb21tYW5kcz1bXSx0aGlzLmZpbGw9XCJibGFja1wiLHRoaXMuc3Ryb2tlPW51bGwsdGhpcy5zdHJva2VXaWR0aD0xfWZ1bmN0aW9uIEwoZSl7dGhyb3cgbmV3IEVycm9yKGUpfWZ1bmN0aW9uIE8oZSx0KXtlfHxMKHQpfUMucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gaXNOYU4odGhpcy54MSl8fGlzTmFOKHRoaXMueTEpfHxpc05hTih0aGlzLngyKXx8aXNOYU4odGhpcy55Mil9LEMucHJvdG90eXBlLmFkZFBvaW50PWZ1bmN0aW9uKGUsdCl7XCJudW1iZXJcIj09dHlwZW9mIGUmJigoaXNOYU4odGhpcy54MSl8fGlzTmFOKHRoaXMueDIpKSYmKHRoaXMueDE9ZSx0aGlzLngyPWUpLGU8dGhpcy54MSYmKHRoaXMueDE9ZSksZT50aGlzLngyJiYodGhpcy54Mj1lKSksXCJudW1iZXJcIj09dHlwZW9mIHQmJigoaXNOYU4odGhpcy55MSl8fGlzTmFOKHRoaXMueTIpKSYmKHRoaXMueTE9dCx0aGlzLnkyPXQpLHQ8dGhpcy55MSYmKHRoaXMueTE9dCksdD50aGlzLnkyJiYodGhpcy55Mj10KSl9LEMucHJvdG90eXBlLmFkZFg9ZnVuY3Rpb24oZSl7dGhpcy5hZGRQb2ludChlLG51bGwpfSxDLnByb3RvdHlwZS5hZGRZPWZ1bmN0aW9uKGUpe3RoaXMuYWRkUG9pbnQobnVsbCxlKX0sQy5wcm90b3R5cGUuYWRkQmV6aWVyPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyl7dmFyIGw9dGhpcyx1PVtlLHRdLGg9W3IsaV0sYz1bbixhXSxmPVtvLHNdO3RoaXMuYWRkUG9pbnQoZSx0KSx0aGlzLmFkZFBvaW50KG8scyk7Zm9yKHZhciBkPTA7ZDw9MTtkKyspe3ZhciBwPTYqdVtkXS0xMipoW2RdKzYqY1tkXSxtPS0zKnVbZF0rOSpoW2RdLTkqY1tkXSszKmZbZF0sdj0zKmhbZF0tMyp1W2RdO2lmKDAhPW0pe3ZhciB5PU1hdGgucG93KHAsMiktNCp2Km07aWYoISh5PDApKXt2YXIgZz0oLXArTWF0aC5zcXJ0KHkpKS8oMiptKTswPGcmJmc8MSYmKDA9PT1kJiZsLmFkZFgoRSh1W2RdLGhbZF0sY1tkXSxmW2RdLGcpKSwxPT09ZCYmbC5hZGRZKEUodVtkXSxoW2RdLGNbZF0sZltkXSxnKSkpO3ZhciBiPSgtcC1NYXRoLnNxcnQoeSkpLygyKm0pOzA8YiYmYjwxJiYoMD09PWQmJmwuYWRkWChFKHVbZF0saFtkXSxjW2RdLGZbZF0sYikpLDE9PT1kJiZsLmFkZFkoRSh1W2RdLGhbZF0sY1tkXSxmW2RdLGIpKSl9fWVsc2V7aWYoMD09cCljb250aW51ZTt2YXIgXz0tdi9wOzA8XyYmXzwxJiYoMD09PWQmJmwuYWRkWChFKHVbZF0saFtkXSxjW2RdLGZbZF0sXykpLDE9PT1kJiZsLmFkZFkoRSh1W2RdLGhbZF0sY1tkXSxmW2RdLF8pKSl9fX0sQy5wcm90b3R5cGUuYWRkUXVhZD1mdW5jdGlvbihlLHQscixpLG4sYSl7dmFyIG89ZSsyLzMqKHItZSkscz10KzIvMyooaS10KSxsPW8rMS8zKihuLWUpLHU9cysxLzMqKGEtdCk7dGhpcy5hZGRCZXppZXIoZSx0LG8scyxsLHUsbixhKX0sSS5wcm90b3R5cGUubW92ZVRvPWZ1bmN0aW9uKGUsdCl7dGhpcy5jb21tYW5kcy5wdXNoKHt0eXBlOlwiTVwiLHg6ZSx5OnR9KX0sSS5wcm90b3R5cGUubGluZVRvPWZ1bmN0aW9uKGUsdCl7dGhpcy5jb21tYW5kcy5wdXNoKHt0eXBlOlwiTFwiLHg6ZSx5OnR9KX0sSS5wcm90b3R5cGUuY3VydmVUbz1JLnByb3RvdHlwZS5iZXppZXJDdXJ2ZVRvPWZ1bmN0aW9uKGUsdCxyLGksbixhKXt0aGlzLmNvbW1hbmRzLnB1c2goe3R5cGU6XCJDXCIseDE6ZSx5MTp0LHgyOnIseTI6aSx4Om4seTphfSl9LEkucHJvdG90eXBlLnF1YWRUbz1JLnByb3RvdHlwZS5xdWFkcmF0aWNDdXJ2ZVRvPWZ1bmN0aW9uKGUsdCxyLGkpe3RoaXMuY29tbWFuZHMucHVzaCh7dHlwZTpcIlFcIix4MTplLHkxOnQseDpyLHk6aX0pfSxJLnByb3RvdHlwZS5jbG9zZT1JLnByb3RvdHlwZS5jbG9zZVBhdGg9ZnVuY3Rpb24oKXt0aGlzLmNvbW1hbmRzLnB1c2goe3R5cGU6XCJaXCJ9KX0sSS5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uKGUpe2lmKGUuY29tbWFuZHMpZT1lLmNvbW1hbmRzO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEMpe3ZhciB0PWU7cmV0dXJuIHRoaXMubW92ZVRvKHQueDEsdC55MSksdGhpcy5saW5lVG8odC54Mix0LnkxKSx0aGlzLmxpbmVUbyh0LngyLHQueTIpLHRoaXMubGluZVRvKHQueDEsdC55Miksdm9pZCB0aGlzLmNsb3NlKCl9QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxlKX0sSS5wcm90b3R5cGUuZ2V0Qm91bmRpbmdCb3g9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEMsdD0wLHI9MCxpPTAsbj0wLGE9MDthPHRoaXMuY29tbWFuZHMubGVuZ3RoO2ErKyl7dmFyIG89dGhpcy5jb21tYW5kc1thXTtzd2l0Y2goby50eXBlKXtjYXNlXCJNXCI6ZS5hZGRQb2ludChvLngsby55KSx0PWk9by54LHI9bj1vLnk7YnJlYWs7Y2FzZVwiTFwiOmUuYWRkUG9pbnQoby54LG8ueSksaT1vLngsbj1vLnk7YnJlYWs7Y2FzZVwiUVwiOmUuYWRkUXVhZChpLG4sby54MSxvLnkxLG8ueCxvLnkpLGk9by54LG49by55O2JyZWFrO2Nhc2VcIkNcIjplLmFkZEJlemllcihpLG4sby54MSxvLnkxLG8ueDIsby55MixvLngsby55KSxpPW8ueCxuPW8ueTticmVhaztjYXNlXCJaXCI6aT10LG49cjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgcGF0aCBjb21tYW5kIFwiK28udHlwZSl9fXJldHVybiBlLmlzRW1wdHkoKSYmZS5hZGRQb2ludCgwLDApLGV9LEkucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oZSl7ZS5iZWdpblBhdGgoKTtmb3IodmFyIHQ9MDt0PHRoaXMuY29tbWFuZHMubGVuZ3RoO3QrPTEpe3ZhciByPXRoaXMuY29tbWFuZHNbdF07XCJNXCI9PT1yLnR5cGU/ZS5tb3ZlVG8oci54LHIueSk6XCJMXCI9PT1yLnR5cGU/ZS5saW5lVG8oci54LHIueSk6XCJDXCI9PT1yLnR5cGU/ZS5iZXppZXJDdXJ2ZVRvKHIueDEsci55MSxyLngyLHIueTIsci54LHIueSk6XCJRXCI9PT1yLnR5cGU/ZS5xdWFkcmF0aWNDdXJ2ZVRvKHIueDEsci55MSxyLngsci55KTpcIlpcIj09PXIudHlwZSYmZS5jbG9zZVBhdGgoKX10aGlzLmZpbGwmJihlLmZpbGxTdHlsZT10aGlzLmZpbGwsZS5maWxsKCkpLHRoaXMuc3Ryb2tlJiYoZS5zdHJva2VTdHlsZT10aGlzLnN0cm9rZSxlLmxpbmVXaWR0aD10aGlzLnN0cm9rZVdpZHRoLGUuc3Ryb2tlKCkpfSxJLnByb3RvdHlwZS50b1BhdGhEYXRhPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGUoKXtmb3IodmFyIGUsdD1hcmd1bWVudHMscj1cIlwiLGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSs9MSl7dmFyIG49dFtpXTswPD1uJiYwPGkmJihyKz1cIiBcIikscis9KGU9bixNYXRoLnJvdW5kKGUpPT09ZT9cIlwiK01hdGgucm91bmQoZSk6ZS50b0ZpeGVkKGEpKX1yZXR1cm4gcn1hPXZvaWQgMCE9PWE/YToyO2Zvcih2YXIgdD1cIlwiLHI9MDtyPHRoaXMuY29tbWFuZHMubGVuZ3RoO3IrPTEpe3ZhciBpPXRoaXMuY29tbWFuZHNbcl07XCJNXCI9PT1pLnR5cGU/dCs9XCJNXCIrZShpLngsaS55KTpcIkxcIj09PWkudHlwZT90Kz1cIkxcIitlKGkueCxpLnkpOlwiQ1wiPT09aS50eXBlP3QrPVwiQ1wiK2UoaS54MSxpLnkxLGkueDIsaS55MixpLngsaS55KTpcIlFcIj09PWkudHlwZT90Kz1cIlFcIitlKGkueDEsaS55MSxpLngsaS55KTpcIlpcIj09PWkudHlwZSYmKHQrPVwiWlwiKX1yZXR1cm4gdH0sSS5wcm90b3R5cGUudG9TVkc9ZnVuY3Rpb24oZSl7dmFyIHQ9JzxwYXRoIGQ9XCInO3JldHVybiB0Kz10aGlzLnRvUGF0aERhdGEoZSksdCs9J1wiJyx0aGlzLmZpbGwmJlwiYmxhY2tcIiE9PXRoaXMuZmlsbCYmKG51bGw9PT10aGlzLmZpbGw/dCs9JyBmaWxsPVwibm9uZVwiJzp0Kz0nIGZpbGw9XCInK3RoaXMuZmlsbCsnXCInKSx0aGlzLnN0cm9rZSYmKHQrPScgc3Ryb2tlPVwiJyt0aGlzLnN0cm9rZSsnXCIgc3Ryb2tlLXdpZHRoPVwiJyt0aGlzLnN0cm9rZVdpZHRoKydcIicpLHQrPVwiLz5cIn0sSS5wcm90b3R5cGUudG9ET01FbGVtZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMudG9QYXRoRGF0YShlKSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJwYXRoXCIpO3JldHVybiByLnNldEF0dHJpYnV0ZShcImRcIix0KSxyfTt2YXIgUD17ZmFpbDpMLGFyZ3VtZW50Ok8sYXNzZXJ0Ok99LFI9MjE0NzQ4MzY0OCxEPXt9LGs9e30sQT17fTtmdW5jdGlvbiBVKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX1rLkJZVEU9ZnVuY3Rpb24oZSl7cmV0dXJuIFAuYXJndW1lbnQoMDw9ZSYmZTw9MjU1LFwiQnl0ZSB2YWx1ZSBzaG91bGQgYmUgYmV0d2VlbiAwIGFuZCAyNTUuXCIpLFtlXX0sQS5CWVRFPVUoMSksay5DSEFSPWZ1bmN0aW9uKGUpe3JldHVybltlLmNoYXJDb2RlQXQoMCldfSxBLkNIQVI9VSgxKSxrLkNIQVJBUlJBWT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg7cis9MSl0W3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gdH0sQS5DSEFSQVJSQVk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RofSxrLlVTSE9SVD1mdW5jdGlvbihlKXtyZXR1cm5bZT4+OCYyNTUsMjU1JmVdfSxBLlVTSE9SVD1VKDIpLGsuU0hPUlQ9ZnVuY3Rpb24oZSl7cmV0dXJuIDMyNzY4PD1lJiYoZT0tKDY1NTM2LWUpKSxbZT4+OCYyNTUsMjU1JmVdfSxBLlNIT1JUPVUoMiksay5VSU5UMjQ9ZnVuY3Rpb24oZSl7cmV0dXJuW2U+PjE2JjI1NSxlPj44JjI1NSwyNTUmZV19LEEuVUlOVDI0PVUoMyksay5VTE9ORz1mdW5jdGlvbihlKXtyZXR1cm5bZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwyNTUmZV19LEEuVUxPTkc9VSg0KSxrLkxPTkc9ZnVuY3Rpb24oZSl7cmV0dXJuIFI8PWUmJihlPS0oMipSLWUpKSxbZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwyNTUmZV19LEEuTE9ORz1VKDQpLGsuRklYRUQ9ay5VTE9ORyxBLkZJWEVEPUEuVUxPTkcsay5GV09SRD1rLlNIT1JULEEuRldPUkQ9QS5TSE9SVCxrLlVGV09SRD1rLlVTSE9SVCxBLlVGV09SRD1BLlVTSE9SVCxrLkxPTkdEQVRFVElNRT1mdW5jdGlvbihlKXtyZXR1cm5bMCwwLDAsMCxlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlXX0sQS5MT05HREFURVRJTUU9VSg4KSxrLlRBRz1mdW5jdGlvbihlKXtyZXR1cm4gUC5hcmd1bWVudCg0PT09ZS5sZW5ndGgsXCJUYWcgc2hvdWxkIGJlIGV4YWN0bHkgNCBBU0NJSSBjaGFyYWN0ZXJzLlwiKSxbZS5jaGFyQ29kZUF0KDApLGUuY2hhckNvZGVBdCgxKSxlLmNoYXJDb2RlQXQoMiksZS5jaGFyQ29kZUF0KDMpXX0sQS5UQUc9VSg0KSxrLkNhcmQ4PWsuQllURSxBLkNhcmQ4PUEuQllURSxrLkNhcmQxNj1rLlVTSE9SVCxBLkNhcmQxNj1BLlVTSE9SVCxrLk9mZlNpemU9ay5CWVRFLEEuT2ZmU2l6ZT1BLkJZVEUsay5TSUQ9ay5VU0hPUlQsQS5TSUQ9QS5VU0hPUlQsay5OVU1CRVI9ZnVuY3Rpb24oZSl7cmV0dXJuLTEwNzw9ZSYmZTw9MTA3P1tlKzEzOV06MTA4PD1lJiZlPD0xMTMxP1syNDcrKChlLT0xMDgpPj44KSwyNTUmZV06LTExMzE8PWUmJmU8PS0xMDg/WzI1MSsoKGU9LWUtMTA4KT4+OCksMjU1JmVdOi0zMjc2ODw9ZSYmZTw9MzI3Njc/ay5OVU1CRVIxNihlKTprLk5VTUJFUjMyKGUpfSxBLk5VTUJFUj1mdW5jdGlvbihlKXtyZXR1cm4gay5OVU1CRVIoZSkubGVuZ3RofSxrLk5VTUJFUjE2PWZ1bmN0aW9uKGUpe3JldHVyblsyOCxlPj44JjI1NSwyNTUmZV19LEEuTlVNQkVSMTY9VSgzKSxrLk5VTUJFUjMyPWZ1bmN0aW9uKGUpe3JldHVyblsyOSxlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlXX0sQS5OVU1CRVIzMj1VKDUpLGsuUkVBTD1mdW5jdGlvbihlKXt2YXIgdD1lLnRvU3RyaW5nKCkscj0vXFwuKFxcZCo/KSg/Ojl7NSwyMH18MHs1LDIwfSlcXGR7MCwyfSg/OmUoLispfCQpLy5leGVjKHQpO2lmKHIpe3ZhciBpPXBhcnNlRmxvYXQoXCIxZVwiKygoclsyXT8rclsyXTowKStyWzFdLmxlbmd0aCkpO3Q9KE1hdGgucm91bmQoZSppKS9pKS50b1N0cmluZygpfWZvcih2YXIgbj1cIlwiLGE9MCxvPXQubGVuZ3RoO2E8bzthKz0xKXt2YXIgcz10W2FdO24rPVwiZVwiPT09cz9cIi1cIj09PXRbKythXT9cImNcIjpcImJcIjpcIi5cIj09PXM/XCJhXCI6XCItXCI9PT1zP1wiZVwiOnN9Zm9yKHZhciBsPVszMF0sdT0wLGg9KG4rPTEmbi5sZW5ndGg/XCJmXCI6XCJmZlwiKS5sZW5ndGg7dTxoO3UrPTIpbC5wdXNoKHBhcnNlSW50KG4uc3Vic3RyKHUsMiksMTYpKTtyZXR1cm4gbH0sQS5SRUFMPWZ1bmN0aW9uKGUpe3JldHVybiBrLlJFQUwoZSkubGVuZ3RofSxrLk5BTUU9ay5DSEFSQVJSQVksQS5OQU1FPUEuQ0hBUkFSUkFZLGsuU1RSSU5HPWsuQ0hBUkFSUkFZLEEuU1RSSU5HPUEuQ0hBUkFSUkFZLEQuVVRGOD1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPVtdLG49cixhPTA7YTxuO2ErKyx0Kz0xKWlbYV09ZS5nZXRVaW50OCh0KTtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGkpfSxELlVURjE2PWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9W10sbj1yLzIsYT0wO2E8bjthKyssdCs9MilpW2FdPWUuZ2V0VWludDE2KHQpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaSl9LGsuVVRGMTY9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MDtyPGUubGVuZ3RoO3IrPTEpe3ZhciBpPWUuY2hhckNvZGVBdChyKTt0W3QubGVuZ3RoXT1pPj44JjI1NSx0W3QubGVuZ3RoXT0yNTUmaX1yZXR1cm4gdH0sQS5VVEYxNj1mdW5jdGlvbihlKXtyZXR1cm4gMiplLmxlbmd0aH07dmFyIE49e1wieC1tYWMtY3JvYXRpYW5cIjpcIsOEw4XDh8OJw5HDlsOcw6HDoMOiw6TDo8Olw6fDqcOow6rDq8Otw6zDrsOvw7HDs8Oyw7TDtsO1w7rDucO7w7zigKDCsMKiwqPCp+KAosK2w5/CrsWg4oSiwrTCqOKJoMW9w5jiiJ7CseKJpOKJpeKIhsK14oiC4oiR4oiPxaHiiKvCqsK6zqnFvsO4wr/CocKs4oiaxpLiiYjEhsKrxIzigKbCoMOAw4PDlcWSxZPEkOKAlOKAnOKAneKAmOKAmcO34peK76O/wqnigYTigqzigLnigLrDhsK74oCTwrfigJrigJ7igLDDgsSHw4HEjcOIw43DjsOPw4zDk8OUxJHDksOaw5vDmcSxy4bLnMKvz4DDi8uawrjDisOmy4dcIixcIngtbWFjLWN5cmlsbGljXCI6XCLQkNCR0JLQk9CU0JXQltCX0JjQmdCa0JvQnNCd0J7Qn9Cg0KHQotCj0KTQpdCm0KfQqNCp0KrQq9Cs0K3QrtCv4oCgwrDSkMKjwqfigKLCttCGwq7CqeKEotCC0ZLiiaDQg9GT4oiewrHiiaTiiaXRlsK10pHQiNCE0ZTQh9GX0InRmdCK0ZrRmNCFwqziiJrGkuKJiOKIhsKrwrvigKbCoNCL0ZvQjNGc0ZXigJPigJTigJzigJ3igJjigJnDt+KAntCO0Z7Qj9Gf4oSW0IHRkdGP0LDQsdCy0LPQtNC10LbQt9C40LnQutC70LzQvdC+0L/RgNGB0YLRg9GE0YXRhtGH0YjRidGK0YvRjNGN0Y5cIixcIngtbWFjLWdhZWxpY1wiOlwiw4TDhcOHw4nDkcOWw5zDocOgw6LDpMOjw6XDp8Opw6jDqsOrw63DrMOuw6/DscOzw7LDtMO2w7XDusO5w7vDvOKAoMKwwqLCo8Kn4oCiwrbDn8KuwqnihKLCtMKo4omgw4bDmOG4gsKx4omk4oml4biDxIrEi+G4iuG4i+G4nuG4n8SgxKHhuYDDpsO44bmB4bmW4bmXybzGksW/4bmgwqvCu+KApsKgw4DDg8OVxZLFk+KAk+KAlOKAnOKAneKAmOKAmeG5oeG6m8O/xbjhuarigqzigLnigLrFtsW34bmrwrfhu7Lhu7PigYrDgsOKw4HDi8OIw43DjsOPw4zDk8OU4pmjw5LDmsObw5nEscOdw73FtMW14bqE4bqF4bqA4bqB4bqC4bqDXCIsXCJ4LW1hYy1ncmVla1wiOlwiw4TCucKyw4nCs8OWw5zOhcOgw6LDpM6EwqjDp8Opw6jDqsOrwqPihKLDrsOv4oCiwr3igLDDtMO2wqbigqzDucO7w7zigKDOk86UzpjOm86ezqDDn8KuwqnOo86qwqfiiaDCsMK3zpHCseKJpOKJpcKlzpLOlc6WzpfOmc6azpzOps6rzqjOqc6szp3CrM6fzqHiiYjOpMKrwrvigKbCoM6lzqfOhs6IxZPigJPigJXigJzigJ3igJjigJnDt86JzorOjM6Ozq3Ors6vz4zOj8+NzrHOss+IzrTOtc+GzrPOt865zr7Ous67zrzOvc6/z4DPjs+Bz4PPhM64z4nPgs+Hz4XOts+Kz4vOkM6wwq1cIixcIngtbWFjLWljZWxhbmRpY1wiOlwiw4TDhcOHw4nDkcOWw5zDocOgw6LDpMOjw6XDp8Opw6jDqsOrw63DrMOuw6/DscOzw7LDtMO2w7XDusO5w7vDvMOdwrDCosKjwqfigKLCtsOfwq7CqeKEosK0wqjiiaDDhsOY4oiewrHiiaTiiaXCpcK14oiC4oiR4oiPz4DiiKvCqsK6zqnDpsO4wr/CocKs4oiaxpLiiYjiiIbCq8K74oCmwqDDgMODw5XFksWT4oCT4oCU4oCc4oCd4oCY4oCZw7fil4rDv8W44oGE4oKsw5DDsMOew77DvcK34oCa4oCe4oCww4LDisOBw4vDiMONw47Dj8OMw5PDlO+jv8OSw5rDm8OZxLHLhsucwq/LmMuZy5rCuMudy5vLh1wiLFwieC1tYWMtaW51aXRcIjpcIuGQg+GQhOGQheGQhuGQiuGQi+GQseGQsuGQs+GQtOGQuOGQueGRieGRjuGRj+GRkOGRkeGRleGRluGRpuGRreGRruGRr+GRsOGRsuGRs+GSg+GSi+GSjOGSjeGSjuGSkOGSkcKw4ZKh4ZKl4ZKm4oCiwrbhkqfCrsKp4oSi4ZKo4ZKq4ZKr4ZK74ZOC4ZOD4ZOE4ZOF4ZOH4ZOI4ZOQ4ZOv4ZOw4ZOx4ZOy4ZO04ZO14ZSF4ZOV4ZOW4ZOX4ZOY4ZOa4ZOb4ZOq4ZSo4ZSp4ZSq4ZSr4ZSt4oCmwqDhlK7hlL7hlZXhlZbhlZfigJPigJTigJzigJ3igJjigJnhlZjhlZnhlZrhlZ3hlYbhlYfhlYjhlYnhlYvhlYzhlZDhlb/hloDhloHhloLhloPhloThloXhlo/hlpDhlpHhlpLhlpPhlpThlpXhmbHhmbLhmbPhmbThmbXhmbbhlpbhlqDhlqHhlqLhlqPhlqThlqXhlqbhlbzFgcWCXCIsXCJ4LW1hYy1jZVwiOlwiw4TEgMSBw4nEhMOWw5zDocSFxIzDpMSNxIbEh8OpxbnFusSOw63Ej8SSxJPElsOzxJfDtMO2w7XDusSaxJvDvOKAoMKwxJjCo8Kn4oCiwrbDn8KuwqnihKLEmcKo4omgxKPErsSvxKriiaTiiaXEq8S24oiC4oiRxYLEu8S8xL3EvsS5xLrFhcWGxYPCrOKImsWExYfiiIbCq8K74oCmwqDFiMWQw5XFkcWM4oCT4oCU4oCc4oCd4oCY4oCZw7fil4rFjcWUxZXFmOKAueKAusWZxZbFl8Wg4oCa4oCexaHFmsWbw4HFpMWlw43FvcW+xarDk8OUxavFrsOaxa/FsMWxxbLFs8Odw73Et8W7xYHFvMSiy4dcIixtYWNpbnRvc2g6XCLDhMOFw4fDicORw5bDnMOhw6DDosOkw6PDpcOnw6nDqMOqw6vDrcOsw67Dr8Oxw7PDssO0w7bDtcO6w7nDu8O84oCgwrDCosKjwqfigKLCtsOfwq7CqeKEosK0wqjiiaDDhsOY4oiewrHiiaTiiaXCpcK14oiC4oiR4oiPz4DiiKvCqsK6zqnDpsO4wr/CocKs4oiaxpLiiYjiiIbCq8K74oCmwqDDgMODw5XFksWT4oCT4oCU4oCc4oCd4oCY4oCZw7fil4rDv8W44oGE4oKs4oC54oC676yB76yC4oChwrfigJrigJ7igLDDgsOKw4HDi8OIw43DjsOPw4zDk8OU76O/w5LDmsObw5nEscuGy5zCr8uYy5nLmsK4y53Lm8uHXCIsXCJ4LW1hYy1yb21hbmlhblwiOlwiw4TDhcOHw4nDkcOWw5zDocOgw6LDpMOjw6XDp8Opw6jDqsOrw63DrMOuw6/DscOzw7LDtMO2w7XDusO5w7vDvOKAoMKwwqLCo8Kn4oCiwrbDn8KuwqnihKLCtMKo4omgxILImOKInsKx4omk4omlwqXCteKIguKIkeKIj8+A4oirwqrCus6pxIPImcK/wqHCrOKImsaS4omI4oiGwqvCu+KApsKgw4DDg8OVxZLFk+KAk+KAlOKAnOKAneKAmOKAmcO34peKw7/FuOKBhOKCrOKAueKAusiayJvigKHCt+KAmuKAnuKAsMOCw4rDgcOLw4jDjcOOw4/DjMOTw5Tvo7/DksOaw5vDmcSxy4bLnMKvy5jLmcuawrjLncuby4dcIixcIngtbWFjLXR1cmtpc2hcIjpcIsOEw4XDh8OJw5HDlsOcw6HDoMOiw6TDo8Olw6fDqcOow6rDq8Otw6zDrsOvw7HDs8Oyw7TDtsO1w7rDucO7w7zigKDCsMKiwqPCp+KAosK2w5/CrsKp4oSiwrTCqOKJoMOGw5jiiJ7CseKJpOKJpcKlwrXiiILiiJHiiI/PgOKIq8KqwrrOqcOmw7jCv8KhwqziiJrGkuKJiOKIhsKrwrvigKbCoMOAw4PDlcWSxZPigJPigJTigJzigJ3igJjigJnDt+KXisO/xbjEnsSfxLDEscWexZ/igKHCt+KAmuKAnuKAsMOCw4rDgcOLw4jDjcOOw4/DjMOTw5Tvo7/DksOaw5vDme+ioMuGy5zCr8uYy5nLmsK4y53Lm8uHXCJ9O0QuTUFDU1RSSU5HPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPU5baV07aWYodm9pZCAwIT09bil7Zm9yKHZhciBhPVwiXCIsbz0wO288cjtvKyspe3ZhciBzPWUuZ2V0VWludDgodCtvKTthKz1zPD0xMjc/U3RyaW5nLmZyb21DaGFyQ29kZShzKTpuWzEyNyZzXX1yZXR1cm4gYX19O3ZhciBGLEI9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha01hcCYmbmV3IFdlYWtNYXA7ZnVuY3Rpb24gRyhlKXtyZXR1cm4tMTI4PD1lJiZlPD0xMjd9ZnVuY3Rpb24gaihlLHQscil7Zm9yKHZhciBpPTAsbj1lLmxlbmd0aDt0PG4mJmk8NjQmJjA9PT1lW3RdOykrK3QsKytpO3JldHVybiByLnB1c2goMTI4fGktMSksdH1mdW5jdGlvbiBWKGUsdCxyKXtmb3IodmFyIGk9MCxuPWUubGVuZ3RoLGE9dDthPG4mJmk8NjQ7KXt2YXIgbz1lW2FdO2lmKCFHKG8pKWJyZWFrO2lmKDA9PT1vJiZhKzE8biYmMD09PWVbYSsxXSlicmVhazsrK2EsKytpfXIucHVzaChpLTEpO2Zvcih2YXIgcz10O3M8YTsrK3Mpci5wdXNoKGVbc10rMjU2JjI1NSk7cmV0dXJuIGF9ZnVuY3Rpb24geihlLHQscil7Zm9yKHZhciBpPTAsbj1lLmxlbmd0aCxhPXQ7YTxuJiZpPDY0Oyl7dmFyIG89ZVthXTtpZigwPT09bylicmVhaztpZihHKG8pJiZhKzE8biYmRyhlW2ErMV0pKWJyZWFrOysrYSwrK2l9ci5wdXNoKDY0fGktMSk7Zm9yKHZhciBzPXQ7czxhOysrcyl7dmFyIGw9ZVtzXTtyLnB1c2gobCs2NTUzNj4+OCYyNTUsbCsyNTYmMjU1KX1yZXR1cm4gYX1rLk1BQ1NUUklORz1mdW5jdGlvbihlLHQpe3ZhciByPWZ1bmN0aW9uKGUpe2lmKCFGKWZvcih2YXIgdCBpbiBGPXt9LE4pRlt0XT1uZXcgU3RyaW5nKHQpO3ZhciByPUZbZV07aWYodm9pZCAwIT09cil7aWYoQil7dmFyIGk9Qi5nZXQocik7aWYodm9pZCAwIT09aSlyZXR1cm4gaX12YXIgbj1OW2VdO2lmKHZvaWQgMCE9PW4pe2Zvcih2YXIgYT17fSxvPTA7bzxuLmxlbmd0aDtvKyspYVtuLmNoYXJDb2RlQXQobyldPW8rMTI4O3JldHVybiBCJiZCLnNldChyLGEpLGF9fX0odCk7aWYodm9pZCAwIT09cil7Zm9yKHZhciBpPVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZS5jaGFyQ29kZUF0KG4pO2lmKDEyODw9YSYmdm9pZCAwPT09KGE9clthXSkpcmV0dXJuO2lbbl09YX1yZXR1cm4gaX19LEEuTUFDU1RSSU5HPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ay5NQUNTVFJJTkcoZSx0KTtyZXR1cm4gdm9pZCAwIT09cj9yLmxlbmd0aDowfSxrLlZBUkRFTFRBUz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxyPVtdO3Q8ZS5sZW5ndGg7KXt2YXIgaT1lW3RdO3Q9MD09PWk/aihlLHQscik6LTEyODw9aSYmaTw9MTI3P1YoZSx0LHIpOnooZSx0LHIpfXJldHVybiByfSxrLklOREVYPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xLHI9W3RdLGk9W10sbj0wO248ZS5sZW5ndGg7bis9MSl7dmFyIGE9ay5PQkpFQ1QoZVtuXSk7QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaSxhKSx0Kz1hLmxlbmd0aCxyLnB1c2godCl9aWYoMD09PWkubGVuZ3RoKXJldHVyblswLDBdO2Zvcih2YXIgbz1bXSxzPTErTWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLmxvZygyKSkvOHwwLGw9W3ZvaWQgMCxrLkJZVEUsay5VU0hPUlQsay5VSU5UMjQsay5VTE9OR11bc10sdT0wO3U8ci5sZW5ndGg7dSs9MSl7dmFyIGg9bChyW3VdKTtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShvLGgpfXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0KGsuQ2FyZDE2KGUubGVuZ3RoKSxrLk9mZlNpemUocyksbyxpKX0sQS5JTkRFWD1mdW5jdGlvbihlKXtyZXR1cm4gay5JTkRFWChlKS5sZW5ndGh9LGsuRElDVD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj1PYmplY3Qua2V5cyhlKSxpPXIubGVuZ3RoLG49MDtuPGk7bis9MSl7dmFyIGE9cGFyc2VJbnQocltuXSwwKSxvPWVbYV07dD0odD10LmNvbmNhdChrLk9QRVJBTkQoby52YWx1ZSxvLnR5cGUpKSkuY29uY2F0KGsuT1BFUkFUT1IoYSkpfXJldHVybiB0fSxBLkRJQ1Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGsuRElDVChlKS5sZW5ndGh9LGsuT1BFUkFUT1I9ZnVuY3Rpb24oZSl7cmV0dXJuIGU8MTIwMD9bZV06WzEyLGUtMTIwMF19LGsuT1BFUkFORD1mdW5jdGlvbihlLHQpe3ZhciByPVtdO2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKz0xKVAuYXJndW1lbnQoZS5sZW5ndGg9PT10Lmxlbmd0aCxcIk5vdCBlbm91Z2ggYXJndW1lbnRzIGdpdmVuIGZvciB0eXBlXCIrdCkscj1yLmNvbmNhdChrLk9QRVJBTkQoZVtpXSx0W2ldKSk7ZWxzZSBpZihcIlNJRFwiPT09dClyPXIuY29uY2F0KGsuTlVNQkVSKGUpKTtlbHNlIGlmKFwib2Zmc2V0XCI9PT10KXI9ci5jb25jYXQoay5OVU1CRVIzMihlKSk7ZWxzZSBpZihcIm51bWJlclwiPT09dClyPXIuY29uY2F0KGsuTlVNQkVSKGUpKTtlbHNle2lmKFwicmVhbFwiIT09dCl0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIG9wZXJhbmQgdHlwZSBcIit0KTtyPXIuY29uY2F0KGsuUkVBTChlKSl9cmV0dXJuIHJ9LGsuT1A9ay5CWVRFLEEuT1A9QS5CWVRFO3ZhciBIPVwiZnVuY3Rpb25cIj09dHlwZW9mIFdlYWtNYXAmJm5ldyBXZWFrTWFwO2Z1bmN0aW9uIFcoZSx0LHIpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSs9MSl7dmFyIG49dFtpXTt0aGlzW24ubmFtZV09bi52YWx1ZX1pZih0aGlzLnRhYmxlTmFtZT1lLHRoaXMuZmllbGRzPXQscilmb3IodmFyIGE9T2JqZWN0LmtleXMociksbz0wO288YS5sZW5ndGg7bys9MSl7dmFyIHM9YVtvXSxsPXJbc107dm9pZCAwIT09dGhpc1tzXSYmKHRoaXNbc109bCl9fWZ1bmN0aW9uIHEoZSx0LHIpe3ZvaWQgMD09PXImJihyPXQubGVuZ3RoKTt2YXIgaT1uZXcgQXJyYXkodC5sZW5ndGgrMSk7aVswXT17bmFtZTplK1wiQ291bnRcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6cn07Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaVtuKzFdPXtuYW1lOmUrbix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6dFtuXX07cmV0dXJuIGl9ZnVuY3Rpb24gWChlLHQscil7dmFyIGk9dC5sZW5ndGgsbj1uZXcgQXJyYXkoaSsxKTtuWzBdPXtuYW1lOmUrXCJDb3VudFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTppfTtmb3IodmFyIGE9MDthPGk7YSsrKW5bYSsxXT17bmFtZTplK2EsdHlwZTpcIlRBQkxFXCIsdmFsdWU6cih0W2FdLGEpfTtyZXR1cm4gbn1mdW5jdGlvbiBZKGUsdCxyKXt2YXIgaT10Lmxlbmd0aCxuPVtdO25bMF09e25hbWU6ZStcIkNvdW50XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOml9O2Zvcih2YXIgYT0wO2E8aTthKyspbj1uLmNvbmNhdChyKHRbYV0sYSkpO3JldHVybiBufWZ1bmN0aW9uIFooZSl7MT09PWUuZm9ybWF0P1cuY2FsbCh0aGlzLFwiY292ZXJhZ2VUYWJsZVwiLFt7bmFtZTpcImNvdmVyYWdlRm9ybWF0XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjF9XS5jb25jYXQocShcImdseXBoXCIsZS5nbHlwaHMpKSk6UC5hc3NlcnQoITEsXCJDYW4ndCBjcmVhdGUgY292ZXJhZ2UgdGFibGUgZm9ybWF0IDIgeWV0LlwiKX1mdW5jdGlvbiBRKGUpe1cuY2FsbCh0aGlzLFwic2NyaXB0TGlzdFRhYmxlXCIsWShcInNjcmlwdFJlY29yZFwiLGUsZnVuY3Rpb24oZSx0KXt2YXIgcj1lLnNjcmlwdCxpPXIuZGVmYXVsdExhbmdTeXM7cmV0dXJuIFAuYXNzZXJ0KCEhaSxcIlVuYWJsZSB0byB3cml0ZSBHU1VCOiBzY3JpcHQgXCIrZS50YWcrXCIgaGFzIG5vIGRlZmF1bHQgbGFuZ3VhZ2Ugc3lzdGVtLlwiKSxbe25hbWU6XCJzY3JpcHRUYWdcIit0LHR5cGU6XCJUQUdcIix2YWx1ZTplLnRhZ30se25hbWU6XCJzY3JpcHRcIit0LHR5cGU6XCJUQUJMRVwiLHZhbHVlOm5ldyBXKFwic2NyaXB0VGFibGVcIixbe25hbWU6XCJkZWZhdWx0TGFuZ1N5c1wiLHR5cGU6XCJUQUJMRVwiLHZhbHVlOm5ldyBXKFwiZGVmYXVsdExhbmdTeXNcIixbe25hbWU6XCJsb29rdXBPcmRlclwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInJlcUZlYXR1cmVJbmRleFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTppLnJlcUZlYXR1cmVJbmRleH1dLmNvbmNhdChxKFwiZmVhdHVyZUluZGV4XCIsaS5mZWF0dXJlSW5kZXhlcykpKX1dLmNvbmNhdChZKFwibGFuZ1N5c1wiLHIubGFuZ1N5c1JlY29yZHMsZnVuY3Rpb24oZSx0KXt2YXIgcj1lLmxhbmdTeXM7cmV0dXJuW3tuYW1lOlwibGFuZ1N5c1RhZ1wiK3QsdHlwZTpcIlRBR1wiLHZhbHVlOmUudGFnfSx7bmFtZTpcImxhbmdTeXNcIit0LHR5cGU6XCJUQUJMRVwiLHZhbHVlOm5ldyBXKFwibGFuZ1N5c1wiLFt7bmFtZTpcImxvb2t1cE9yZGVyXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwicmVxRmVhdHVyZUluZGV4XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOnIucmVxRmVhdHVyZUluZGV4fV0uY29uY2F0KHEoXCJmZWF0dXJlSW5kZXhcIixyLmZlYXR1cmVJbmRleGVzKSkpfV19KSkpfV19KSl9ZnVuY3Rpb24gSyhlKXtXLmNhbGwodGhpcyxcImZlYXR1cmVMaXN0VGFibGVcIixZKFwiZmVhdHVyZVJlY29yZFwiLGUsZnVuY3Rpb24oZSx0KXt2YXIgcj1lLmZlYXR1cmU7cmV0dXJuW3tuYW1lOlwiZmVhdHVyZVRhZ1wiK3QsdHlwZTpcIlRBR1wiLHZhbHVlOmUudGFnfSx7bmFtZTpcImZlYXR1cmVcIit0LHR5cGU6XCJUQUJMRVwiLHZhbHVlOm5ldyBXKFwiZmVhdHVyZVRhYmxlXCIsW3tuYW1lOlwiZmVhdHVyZVBhcmFtc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTpyLmZlYXR1cmVQYXJhbXN9XS5jb25jYXQocShcImxvb2t1cExpc3RJbmRleFwiLHIubG9va3VwTGlzdEluZGV4ZXMpKSl9XX0pKX1mdW5jdGlvbiBKKGUscil7Vy5jYWxsKHRoaXMsXCJsb29rdXBMaXN0VGFibGVcIixYKFwibG9va3VwXCIsZSxmdW5jdGlvbihlKXt2YXIgdD1yW2UubG9va3VwVHlwZV07cmV0dXJuIFAuYXNzZXJ0KCEhdCxcIlVuYWJsZSB0byB3cml0ZSBHU1VCIGxvb2t1cCB0eXBlIFwiK2UubG9va3VwVHlwZStcIiB0YWJsZXMuXCIpLG5ldyBXKFwibG9va3VwVGFibGVcIixbe25hbWU6XCJsb29rdXBUeXBlXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOmUubG9va3VwVHlwZX0se25hbWU6XCJsb29rdXBGbGFnXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOmUubG9va3VwRmxhZ31dLmNvbmNhdChYKFwic3VidGFibGVcIixlLnN1YnRhYmxlcyx0KSkpfSkpfWsuQ0hBUlNUUklORz1mdW5jdGlvbihlKXtpZihIKXt2YXIgdD1ILmdldChlKTtpZih2b2lkIDAhPT10KXJldHVybiB0fWZvcih2YXIgcj1bXSxpPWUubGVuZ3RoLG49MDtuPGk7bis9MSl7dmFyIGE9ZVtuXTtyPXIuY29uY2F0KGtbYS50eXBlXShhLnZhbHVlKSl9cmV0dXJuIEgmJkguc2V0KGUscikscn0sQS5DSEFSU1RSSU5HPWZ1bmN0aW9uKGUpe3JldHVybiBrLkNIQVJTVFJJTkcoZSkubGVuZ3RofSxrLk9CSkVDVD1mdW5jdGlvbihlKXt2YXIgdD1rW2UudHlwZV07cmV0dXJuIFAuYXJndW1lbnQodm9pZCAwIT09dCxcIk5vIGVuY29kaW5nIGZ1bmN0aW9uIGZvciB0eXBlIFwiK2UudHlwZSksdChlLnZhbHVlKX0sQS5PQkpFQ1Q9ZnVuY3Rpb24oZSl7dmFyIHQ9QVtlLnR5cGVdO3JldHVybiBQLmFyZ3VtZW50KHZvaWQgMCE9PXQsXCJObyBzaXplT2YgZnVuY3Rpb24gZm9yIHR5cGUgXCIrZS50eXBlKSx0KGUudmFsdWUpfSxrLlRBQkxFPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxyPWUuZmllbGRzLmxlbmd0aCxpPVtdLG49W10sYT0wO2E8cjthKz0xKXt2YXIgbz1lLmZpZWxkc1thXSxzPWtbby50eXBlXTtQLmFyZ3VtZW50KHZvaWQgMCE9PXMsXCJObyBlbmNvZGluZyBmdW5jdGlvbiBmb3IgZmllbGQgdHlwZSBcIitvLnR5cGUrXCIgKFwiK28ubmFtZStcIilcIik7dmFyIGw9ZVtvLm5hbWVdO3ZvaWQgMD09PWwmJihsPW8udmFsdWUpO3ZhciB1PXMobCk7XCJUQUJMRVwiPT09by50eXBlPyhuLnB1c2godC5sZW5ndGgpLHQ9dC5jb25jYXQoWzAsMF0pLGkucHVzaCh1KSk6dD10LmNvbmNhdCh1KX1mb3IodmFyIGg9MDtoPGkubGVuZ3RoO2grPTEpe3ZhciBjPW5baF0sZj10Lmxlbmd0aDtQLmFyZ3VtZW50KGY8NjU1MzYsXCJUYWJsZSBcIitlLnRhYmxlTmFtZStcIiB0b28gYmlnLlwiKSx0W2NdPWY+PjgsdFtjKzFdPTI1NSZmLHQ9dC5jb25jYXQoaVtoXSl9cmV0dXJuIHR9LEEuVEFCTEU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAscj1lLmZpZWxkcy5sZW5ndGgsaT0wO2k8cjtpKz0xKXt2YXIgbj1lLmZpZWxkc1tpXSxhPUFbbi50eXBlXTtQLmFyZ3VtZW50KHZvaWQgMCE9PWEsXCJObyBzaXplT2YgZnVuY3Rpb24gZm9yIGZpZWxkIHR5cGUgXCIrbi50eXBlK1wiIChcIituLm5hbWUrXCIpXCIpO3ZhciBvPWVbbi5uYW1lXTt2b2lkIDA9PT1vJiYobz1uLnZhbHVlKSx0Kz1hKG8pLFwiVEFCTEVcIj09PW4udHlwZSYmKHQrPTIpfXJldHVybiB0fSxrLlJFQ09SRD1rLlRBQkxFLEEuUkVDT1JEPUEuVEFCTEUsay5MSVRFUkFMPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxBLkxJVEVSQUw9ZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RofSxXLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oKXtyZXR1cm4gay5UQUJMRSh0aGlzKX0sVy5wcm90b3R5cGUuc2l6ZU9mPWZ1bmN0aW9uKCl7cmV0dXJuIEEuVEFCTEUodGhpcyl9O3ZhciAkPXtUYWJsZTpXLFJlY29yZDpXLENvdmVyYWdlOihaLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFcucHJvdG90eXBlKSkuY29uc3RydWN0b3I9WixTY3JpcHRMaXN0OihRLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFcucHJvdG90eXBlKSkuY29uc3RydWN0b3I9USxGZWF0dXJlTGlzdDooSy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShXLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPUssTG9va3VwTGlzdDooSi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShXLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPUosdXNob3J0TGlzdDpxLHRhYmxlTGlzdDpYLHJlY29yZExpc3Q6WX07ZnVuY3Rpb24gZWUoZSx0KXtyZXR1cm4gZS5nZXRVaW50OCh0KX1mdW5jdGlvbiB0ZShlLHQpe3JldHVybiBlLmdldFVpbnQxNih0LCExKX1mdW5jdGlvbiByZShlLHQpe3JldHVybiBlLmdldFVpbnQzMih0LCExKX1mdW5jdGlvbiBpZShlLHQpe3JldHVybiBlLmdldEludDE2KHQsITEpK2UuZ2V0VWludDE2KHQrMiwhMSkvNjU1MzV9dmFyIG5lPXtieXRlOjEsdVNob3J0OjIsc2hvcnQ6Mix1TG9uZzo0LGZpeGVkOjQsbG9uZ0RhdGVUaW1lOjgsdGFnOjR9O2Z1bmN0aW9uIGFlKGUsdCl7dGhpcy5kYXRhPWUsdGhpcy5vZmZzZXQ9dCx0aGlzLnJlbGF0aXZlT2Zmc2V0PTB9YWUucHJvdG90eXBlLnBhcnNlQnl0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZGF0YS5nZXRVaW50OCh0aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0KTtyZXR1cm4gdGhpcy5yZWxhdGl2ZU9mZnNldCs9MSxlfSxhZS5wcm90b3R5cGUucGFyc2VDaGFyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5kYXRhLmdldEludDgodGhpcy5vZmZzZXQrdGhpcy5yZWxhdGl2ZU9mZnNldCk7cmV0dXJuIHRoaXMucmVsYXRpdmVPZmZzZXQrPTEsZX0sYWUucHJvdG90eXBlLnBhcnNlQ2FyZDg9YWUucHJvdG90eXBlLnBhcnNlQnl0ZSxhZS5wcm90b3R5cGUucGFyc2VDYXJkMTY9YWUucHJvdG90eXBlLnBhcnNlVVNob3J0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5kYXRhLmdldFVpbnQxNih0aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0KTtyZXR1cm4gdGhpcy5yZWxhdGl2ZU9mZnNldCs9MixlfSxhZS5wcm90b3R5cGUucGFyc2VTSUQ9YWUucHJvdG90eXBlLnBhcnNlVVNob3J0LGFlLnByb3RvdHlwZS5wYXJzZU9mZnNldDE2PWFlLnByb3RvdHlwZS5wYXJzZVVTaG9ydCxhZS5wcm90b3R5cGUucGFyc2VTaG9ydD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZGF0YS5nZXRJbnQxNih0aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0KTtyZXR1cm4gdGhpcy5yZWxhdGl2ZU9mZnNldCs9MixlfSxhZS5wcm90b3R5cGUucGFyc2VGMkRvdDE0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5kYXRhLmdldEludDE2KHRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQpLzE2Mzg0O3JldHVybiB0aGlzLnJlbGF0aXZlT2Zmc2V0Kz0yLGV9LGFlLnByb3RvdHlwZS5wYXJzZU9mZnNldDMyPWFlLnByb3RvdHlwZS5wYXJzZVVMb25nPWZ1bmN0aW9uKCl7dmFyIGU9cmUodGhpcy5kYXRhLHRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQpO3JldHVybiB0aGlzLnJlbGF0aXZlT2Zmc2V0Kz00LGV9LGFlLnByb3RvdHlwZS5wYXJzZUZpeGVkPWZ1bmN0aW9uKCl7dmFyIGU9aWUodGhpcy5kYXRhLHRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQpO3JldHVybiB0aGlzLnJlbGF0aXZlT2Zmc2V0Kz00LGV9LGFlLnByb3RvdHlwZS5wYXJzZVN0cmluZz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmRhdGEscj10aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0LGk9XCJcIjt0aGlzLnJlbGF0aXZlT2Zmc2V0Kz1lO2Zvcih2YXIgbj0wO248ZTtuKyspaSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0LmdldFVpbnQ4KHIrbikpO3JldHVybiBpfSxhZS5wcm90b3R5cGUucGFyc2VUYWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJzZVN0cmluZyg0KX0sYWUucHJvdG90eXBlLnBhcnNlTG9uZ0RhdGVUaW1lPWZ1bmN0aW9uKCl7dmFyIGU9cmUodGhpcy5kYXRhLHRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQrNCk7cmV0dXJuIGUtPTIwODI4NDQ4MDAsdGhpcy5yZWxhdGl2ZU9mZnNldCs9OCxlfSxhZS5wcm90b3R5cGUucGFyc2VWZXJzaW9uPWZ1bmN0aW9uKGUpe3ZhciB0PXRlKHRoaXMuZGF0YSx0aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0KSxyPXRlKHRoaXMuZGF0YSx0aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0KzIpO3JldHVybiB0aGlzLnJlbGF0aXZlT2Zmc2V0Kz00LHZvaWQgMD09PWUmJihlPTQwOTYpLHQrci9lLzEwfSxhZS5wcm90b3R5cGUuc2tpcD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PTEpLHRoaXMucmVsYXRpdmVPZmZzZXQrPW5lW2VdKnR9LGFlLnByb3RvdHlwZS5wYXJzZVVMb25nTGlzdD1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT10aGlzLnBhcnNlVUxvbmcoKSk7Zm9yKHZhciB0PW5ldyBBcnJheShlKSxyPXRoaXMuZGF0YSxpPXRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQsbj0wO248ZTtuKyspdFtuXT1yLmdldFVpbnQzMihpKSxpKz00O3JldHVybiB0aGlzLnJlbGF0aXZlT2Zmc2V0Kz00KmUsdH0sYWUucHJvdG90eXBlLnBhcnNlT2Zmc2V0MTZMaXN0PWFlLnByb3RvdHlwZS5wYXJzZVVTaG9ydExpc3Q9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5wYXJzZVVTaG9ydCgpKTtmb3IodmFyIHQ9bmV3IEFycmF5KGUpLHI9dGhpcy5kYXRhLGk9dGhpcy5vZmZzZXQrdGhpcy5yZWxhdGl2ZU9mZnNldCxuPTA7bjxlO24rKyl0W25dPXIuZ2V0VWludDE2KGkpLGkrPTI7cmV0dXJuIHRoaXMucmVsYXRpdmVPZmZzZXQrPTIqZSx0fSxhZS5wcm90b3R5cGUucGFyc2VTaG9ydExpc3Q9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlKSxyPXRoaXMuZGF0YSxpPXRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQsbj0wO248ZTtuKyspdFtuXT1yLmdldEludDE2KGkpLGkrPTI7cmV0dXJuIHRoaXMucmVsYXRpdmVPZmZzZXQrPTIqZSx0fSxhZS5wcm90b3R5cGUucGFyc2VCeXRlTGlzdD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bmV3IEFycmF5KGUpLHI9dGhpcy5kYXRhLGk9dGhpcy5vZmZzZXQrdGhpcy5yZWxhdGl2ZU9mZnNldCxuPTA7bjxlO24rKyl0W25dPXIuZ2V0VWludDgoaSsrKTtyZXR1cm4gdGhpcy5yZWxhdGl2ZU9mZnNldCs9ZSx0fSxhZS5wcm90b3R5cGUucGFyc2VMaXN0PWZ1bmN0aW9uKGUsdCl7dHx8KHQ9ZSxlPXRoaXMucGFyc2VVU2hvcnQoKSk7Zm9yKHZhciByPW5ldyBBcnJheShlKSxpPTA7aTxlO2krKylyW2ldPXQuY2FsbCh0aGlzKTtyZXR1cm4gcn0sYWUucHJvdG90eXBlLnBhcnNlTGlzdDMyPWZ1bmN0aW9uKGUsdCl7dHx8KHQ9ZSxlPXRoaXMucGFyc2VVTG9uZygpKTtmb3IodmFyIHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7aSsrKXJbaV09dC5jYWxsKHRoaXMpO3JldHVybiByfSxhZS5wcm90b3R5cGUucGFyc2VSZWNvcmRMaXN0PWZ1bmN0aW9uKGUsdCl7dHx8KHQ9ZSxlPXRoaXMucGFyc2VVU2hvcnQoKSk7Zm9yKHZhciByPW5ldyBBcnJheShlKSxpPU9iamVjdC5rZXlzKHQpLG49MDtuPGU7bisrKXtmb3IodmFyIGE9e30sbz0wO288aS5sZW5ndGg7bysrKXt2YXIgcz1pW29dLGw9dFtzXTthW3NdPWwuY2FsbCh0aGlzKX1yW25dPWF9cmV0dXJuIHJ9LGFlLnByb3RvdHlwZS5wYXJzZVJlY29yZExpc3QzMj1mdW5jdGlvbihlLHQpe3R8fCh0PWUsZT10aGlzLnBhcnNlVUxvbmcoKSk7Zm9yKHZhciByPW5ldyBBcnJheShlKSxpPU9iamVjdC5rZXlzKHQpLG49MDtuPGU7bisrKXtmb3IodmFyIGE9e30sbz0wO288aS5sZW5ndGg7bysrKXt2YXIgcz1pW29dLGw9dFtzXTthW3NdPWwuY2FsbCh0aGlzKX1yW25dPWF9cmV0dXJuIHJ9LGFlLnByb3RvdHlwZS5wYXJzZVN0cnVjdD1mdW5jdGlvbihlKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKXJldHVybiBlLmNhbGwodGhpcyk7Zm9yKHZhciB0PU9iamVjdC5rZXlzKGUpLHI9e30saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldLGE9ZVtuXTtyW25dPWEuY2FsbCh0aGlzKX1yZXR1cm4gcn0sYWUucHJvdG90eXBlLnBhcnNlVmFsdWVSZWNvcmQ9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSYmKGU9dGhpcy5wYXJzZVVTaG9ydCgpKSwwIT09ZSl7dmFyIHQ9e307cmV0dXJuIDEmZSYmKHQueFBsYWNlbWVudD10aGlzLnBhcnNlU2hvcnQoKSksMiZlJiYodC55UGxhY2VtZW50PXRoaXMucGFyc2VTaG9ydCgpKSw0JmUmJih0LnhBZHZhbmNlPXRoaXMucGFyc2VTaG9ydCgpKSw4JmUmJih0LnlBZHZhbmNlPXRoaXMucGFyc2VTaG9ydCgpKSwxNiZlJiYodC54UGxhRGV2aWNlPXZvaWQgMCx0aGlzLnBhcnNlU2hvcnQoKSksMzImZSYmKHQueVBsYURldmljZT12b2lkIDAsdGhpcy5wYXJzZVNob3J0KCkpLDY0JmUmJih0LnhBZHZEZXZpY2U9dm9pZCAwLHRoaXMucGFyc2VTaG9ydCgpKSwxMjgmZSYmKHQueUFkdkRldmljZT12b2lkIDAsdGhpcy5wYXJzZVNob3J0KCkpLHR9fSxhZS5wcm90b3R5cGUucGFyc2VWYWx1ZVJlY29yZExpc3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5wYXJzZVVTaG9ydCgpLHQ9dGhpcy5wYXJzZVVTaG9ydCgpLHI9bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSsrKXJbaV09dGhpcy5wYXJzZVZhbHVlUmVjb3JkKGUpO3JldHVybiByfSxhZS5wcm90b3R5cGUucGFyc2VQb2ludGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyc2VPZmZzZXQxNigpO2lmKDA8dClyZXR1cm4gbmV3IGFlKHRoaXMuZGF0YSx0aGlzLm9mZnNldCt0KS5wYXJzZVN0cnVjdChlKX0sYWUucHJvdG90eXBlLnBhcnNlUG9pbnRlcjMyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyc2VPZmZzZXQzMigpO2lmKDA8dClyZXR1cm4gbmV3IGFlKHRoaXMuZGF0YSx0aGlzLm9mZnNldCt0KS5wYXJzZVN0cnVjdChlKX0sYWUucHJvdG90eXBlLnBhcnNlTGlzdE9mTGlzdHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMscj10aGlzLnBhcnNlT2Zmc2V0MTZMaXN0KCksaT1yLmxlbmd0aCxuPXRoaXMucmVsYXRpdmVPZmZzZXQsYT1uZXcgQXJyYXkoaSksbz0wO288aTtvKyspe3ZhciBzPXJbb107aWYoMCE9PXMpaWYodC5yZWxhdGl2ZU9mZnNldD1zLGUpe2Zvcih2YXIgbD10LnBhcnNlT2Zmc2V0MTZMaXN0KCksdT1uZXcgQXJyYXkobC5sZW5ndGgpLGg9MDtoPGwubGVuZ3RoO2grKyl0LnJlbGF0aXZlT2Zmc2V0PXMrbFtoXSx1W2hdPWUuY2FsbCh0KTthW29dPXV9ZWxzZSBhW29dPXQucGFyc2VVU2hvcnRMaXN0KCk7ZWxzZSBhW29dPXZvaWQgMH1yZXR1cm4gdGhpcy5yZWxhdGl2ZU9mZnNldD1uLGF9LGFlLnByb3RvdHlwZS5wYXJzZUNvdmVyYWdlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXQrdGhpcy5yZWxhdGl2ZU9mZnNldCx0PXRoaXMucGFyc2VVU2hvcnQoKSxyPXRoaXMucGFyc2VVU2hvcnQoKTtpZigxPT09dClyZXR1cm57Zm9ybWF0OjEsZ2x5cGhzOnRoaXMucGFyc2VVU2hvcnRMaXN0KHIpfTtpZigyIT09dCl0aHJvdyBuZXcgRXJyb3IoXCIweFwiK2UudG9TdHJpbmcoMTYpK1wiOiBDb3ZlcmFnZSBmb3JtYXQgbXVzdCBiZSAxIG9yIDIuXCIpO2Zvcih2YXIgaT1uZXcgQXJyYXkociksbj0wO248cjtuKyspaVtuXT17c3RhcnQ6dGhpcy5wYXJzZVVTaG9ydCgpLGVuZDp0aGlzLnBhcnNlVVNob3J0KCksaW5kZXg6dGhpcy5wYXJzZVVTaG9ydCgpfTtyZXR1cm57Zm9ybWF0OjIscmFuZ2VzOml9fSxhZS5wcm90b3R5cGUucGFyc2VDbGFzc0RlZj1mdW5jdGlvbigpe3ZhciBlPXRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQsdD10aGlzLnBhcnNlVVNob3J0KCk7aWYoMT09PXQpcmV0dXJue2Zvcm1hdDoxLHN0YXJ0R2x5cGg6dGhpcy5wYXJzZVVTaG9ydCgpLGNsYXNzZXM6dGhpcy5wYXJzZVVTaG9ydExpc3QoKX07aWYoMj09PXQpcmV0dXJue2Zvcm1hdDoyLHJhbmdlczp0aGlzLnBhcnNlUmVjb3JkTGlzdCh7c3RhcnQ6YWUudVNob3J0LGVuZDphZS51U2hvcnQsY2xhc3NJZDphZS51U2hvcnR9KX07dGhyb3cgbmV3IEVycm9yKFwiMHhcIitlLnRvU3RyaW5nKDE2KStcIjogQ2xhc3NEZWYgZm9ybWF0IG11c3QgYmUgMSBvciAyLlwiKX0sYWUubGlzdD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcnNlTGlzdChlLHQpfX0sYWUubGlzdDMyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyc2VMaXN0MzIoZSx0KX19LGFlLnJlY29yZExpc3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJzZVJlY29yZExpc3QoZSx0KX19LGFlLnJlY29yZExpc3QzMj1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcnNlUmVjb3JkTGlzdDMyKGUsdCl9fSxhZS5wb2ludGVyPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcnNlUG9pbnRlcihlKX19LGFlLnBvaW50ZXIzMj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJzZVBvaW50ZXIzMihlKX19LGFlLnRhZz1hZS5wcm90b3R5cGUucGFyc2VUYWcsYWUuYnl0ZT1hZS5wcm90b3R5cGUucGFyc2VCeXRlLGFlLnVTaG9ydD1hZS5vZmZzZXQxNj1hZS5wcm90b3R5cGUucGFyc2VVU2hvcnQsYWUudVNob3J0TGlzdD1hZS5wcm90b3R5cGUucGFyc2VVU2hvcnRMaXN0LGFlLnVMb25nPWFlLm9mZnNldDMyPWFlLnByb3RvdHlwZS5wYXJzZVVMb25nLGFlLnVMb25nTGlzdD1hZS5wcm90b3R5cGUucGFyc2VVTG9uZ0xpc3QsYWUuc3RydWN0PWFlLnByb3RvdHlwZS5wYXJzZVN0cnVjdCxhZS5jb3ZlcmFnZT1hZS5wcm90b3R5cGUucGFyc2VDb3ZlcmFnZSxhZS5jbGFzc0RlZj1hZS5wcm90b3R5cGUucGFyc2VDbGFzc0RlZjt2YXIgb2U9e3Jlc2VydmVkOmFlLnVTaG9ydCxyZXFGZWF0dXJlSW5kZXg6YWUudVNob3J0LGZlYXR1cmVJbmRleGVzOmFlLnVTaG9ydExpc3R9O2FlLnByb3RvdHlwZS5wYXJzZVNjcmlwdExpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJzZVBvaW50ZXIoYWUucmVjb3JkTGlzdCh7dGFnOmFlLnRhZyxzY3JpcHQ6YWUucG9pbnRlcih7ZGVmYXVsdExhbmdTeXM6YWUucG9pbnRlcihvZSksbGFuZ1N5c1JlY29yZHM6YWUucmVjb3JkTGlzdCh7dGFnOmFlLnRhZyxsYW5nU3lzOmFlLnBvaW50ZXIob2UpfSl9KX0pKXx8W119LGFlLnByb3RvdHlwZS5wYXJzZUZlYXR1cmVMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyc2VQb2ludGVyKGFlLnJlY29yZExpc3Qoe3RhZzphZS50YWcsZmVhdHVyZTphZS5wb2ludGVyKHtmZWF0dXJlUGFyYW1zOmFlLm9mZnNldDE2LGxvb2t1cExpc3RJbmRleGVzOmFlLnVTaG9ydExpc3R9KX0pKXx8W119LGFlLnByb3RvdHlwZS5wYXJzZUxvb2t1cExpc3Q9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMucGFyc2VQb2ludGVyKGFlLmxpc3QoYWUucG9pbnRlcihmdW5jdGlvbigpe3ZhciBlPXRoaXMucGFyc2VVU2hvcnQoKTtQLmFyZ3VtZW50KDE8PWUmJmU8PTksXCJHUE9TL0dTVUIgbG9va3VwIHR5cGUgXCIrZStcIiB1bmtub3duLlwiKTt2YXIgdD10aGlzLnBhcnNlVVNob3J0KCkscj0xNiZ0O3JldHVybntsb29rdXBUeXBlOmUsbG9va3VwRmxhZzp0LHN1YnRhYmxlczp0aGlzLnBhcnNlTGlzdChhZS5wb2ludGVyKGlbZV0pKSxtYXJrRmlsdGVyaW5nU2V0OnI/dGhpcy5wYXJzZVVTaG9ydCgpOnZvaWQgMH19KSkpfHxbXX0sYWUucHJvdG90eXBlLnBhcnNlRmVhdHVyZVZhcmlhdGlvbnNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyc2VQb2ludGVyMzIoZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnNlVVNob3J0KCksdD10aGlzLnBhcnNlVVNob3J0KCk7cmV0dXJuIFAuYXJndW1lbnQoMT09PWUmJnQ8MSxcIkdQT1MvR1NVQiBmZWF0dXJlIHZhcmlhdGlvbnMgdGFibGUgdW5rbm93bi5cIiksdGhpcy5wYXJzZVJlY29yZExpc3QzMih7Y29uZGl0aW9uU2V0T2Zmc2V0OmFlLm9mZnNldDMyLGZlYXR1cmVUYWJsZVN1YnN0aXR1dGlvbk9mZnNldDphZS5vZmZzZXQzMn0pfSl8fFtdfTt2YXIgc2U9e2dldEJ5dGU6ZWUsZ2V0Q2FyZDg6ZWUsZ2V0VVNob3J0OnRlLGdldENhcmQxNjp0ZSxnZXRTaG9ydDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldEludDE2KHQsITEpfSxnZXRVTG9uZzpyZSxnZXRGaXhlZDppZSxnZXRUYWc6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9XCJcIixpPXQ7aTx0KzQ7aSs9MSlyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUuZ2V0SW50OChpKSk7cmV0dXJuIHJ9LGdldE9mZnNldDpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPTAsbj0wO248cjtuKz0xKWk8PD04LGkrPWUuZ2V0VWludDgodCtuKTtyZXR1cm4gaX0sZ2V0Qnl0ZXM6ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1bXSxuPXQ7bjxyO24rPTEpaS5wdXNoKGUuZ2V0VWludDgobikpO3JldHVybiBpfSxieXRlc1RvU3RyaW5nOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1cIlwiLHI9MDtyPGUubGVuZ3RoO3IrPTEpdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlW3JdKTtyZXR1cm4gdH0sUGFyc2VyOmFlfTt2YXIgbGU9e3BhcnNlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9e307ci52ZXJzaW9uPXNlLmdldFVTaG9ydChlLHQpLFAuYXJndW1lbnQoMD09PXIudmVyc2lvbixcImNtYXAgdGFibGUgdmVyc2lvbiBzaG91bGQgYmUgMC5cIiksci5udW1UYWJsZXM9c2UuZ2V0VVNob3J0KGUsdCsyKTtmb3IodmFyIGk9LTEsbj1yLm51bVRhYmxlcy0xOzA8PW47LS1uKXt2YXIgYT1zZS5nZXRVU2hvcnQoZSx0KzQrOCpuKSxvPXNlLmdldFVTaG9ydChlLHQrNCs4Km4rMik7aWYoMz09PWEmJigwPT09b3x8MT09PW98fDEwPT09byl8fDA9PT1hJiYoMD09PW98fDE9PT1vfHwyPT09b3x8Mz09PW98fDQ9PT1vKSl7aT1zZS5nZXRVTG9uZyhlLHQrNCs4Km4rNCk7YnJlYWt9fWlmKC0xPT09aSl0aHJvdyBuZXcgRXJyb3IoXCJObyB2YWxpZCBjbWFwIHN1Yi10YWJsZXMgZm91bmQuXCIpO3ZhciBzPW5ldyBzZS5QYXJzZXIoZSx0K2kpO2lmKHIuZm9ybWF0PXMucGFyc2VVU2hvcnQoKSwxMj09PXIuZm9ybWF0KSFmdW5jdGlvbihlLHQpe3ZhciByO3QucGFyc2VVU2hvcnQoKSxlLmxlbmd0aD10LnBhcnNlVUxvbmcoKSxlLmxhbmd1YWdlPXQucGFyc2VVTG9uZygpLGUuZ3JvdXBDb3VudD1yPXQucGFyc2VVTG9uZygpLGUuZ2x5cGhJbmRleE1hcD17fTtmb3IodmFyIGk9MDtpPHI7aSs9MSlmb3IodmFyIG49dC5wYXJzZVVMb25nKCksYT10LnBhcnNlVUxvbmcoKSxvPXQucGFyc2VVTG9uZygpLHM9bjtzPD1hO3MrPTEpZS5nbHlwaEluZGV4TWFwW3NdPW8sbysrfShyLHMpO2Vsc2V7aWYoNCE9PXIuZm9ybWF0KXRocm93IG5ldyBFcnJvcihcIk9ubHkgZm9ybWF0IDQgYW5kIDEyIGNtYXAgdGFibGVzIGFyZSBzdXBwb3J0ZWQgKGZvdW5kIGZvcm1hdCBcIityLmZvcm1hdCtcIikuXCIpOyFmdW5jdGlvbihlLHQscixpLG4pe3ZhciBhO2UubGVuZ3RoPXQucGFyc2VVU2hvcnQoKSxlLmxhbmd1YWdlPXQucGFyc2VVU2hvcnQoKSxlLnNlZ0NvdW50PWE9dC5wYXJzZVVTaG9ydCgpPj4xLHQuc2tpcChcInVTaG9ydFwiLDMpLGUuZ2x5cGhJbmRleE1hcD17fTtmb3IodmFyIG89bmV3IHNlLlBhcnNlcihyLGkrbisxNCkscz1uZXcgc2UuUGFyc2VyKHIsaStuKzE2KzIqYSksbD1uZXcgc2UuUGFyc2VyKHIsaStuKzE2KzQqYSksdT1uZXcgc2UuUGFyc2VyKHIsaStuKzE2KzYqYSksaD1pK24rMTYrOCphLGM9MDtjPGEtMTtjKz0xKWZvcih2YXIgZj12b2lkIDAsZD1vLnBhcnNlVVNob3J0KCkscD1zLnBhcnNlVVNob3J0KCksbT1sLnBhcnNlU2hvcnQoKSx2PXUucGFyc2VVU2hvcnQoKSx5PXA7eTw9ZDt5Kz0xKTAhPT12PyhoPXUub2Zmc2V0K3UucmVsYXRpdmVPZmZzZXQtMixoKz12LGgrPTIqKHktcCksMCE9PShmPXNlLmdldFVTaG9ydChyLGgpKSYmKGY9ZittJjY1NTM1KSk6Zj15K20mNjU1MzUsZS5nbHlwaEluZGV4TWFwW3ldPWZ9KHIscyxlLHQsaSl9cmV0dXJuIHJ9LG1ha2U6ZnVuY3Rpb24oZSl7dmFyIHQscj0hMDtmb3IodD1lLmxlbmd0aC0xOzA8dDstLXQpe2lmKDY1NTM1PGUuZ2V0KHQpLnVuaWNvZGUpe2NvbnNvbGUubG9nKFwiQWRkaW5nIENNQVAgZm9ybWF0IDEyIChuZWVkZWQhKVwiKSxyPSExO2JyZWFrfX12YXIgaT1be25hbWU6XCJ2ZXJzaW9uXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwibnVtVGFibGVzXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOnI/MToyfSx7bmFtZTpcInBsYXRmb3JtSURcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6M30se25hbWU6XCJlbmNvZGluZ0lEXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjF9LHtuYW1lOlwib2Zmc2V0XCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6cj8xMjoyMH1dO3J8fChpPWkuY29uY2F0KFt7bmFtZTpcImNtYXAxMlBsYXRmb3JtSURcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6M30se25hbWU6XCJjbWFwMTJFbmNvZGluZ0lEXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjEwfSx7bmFtZTpcImNtYXAxMk9mZnNldFwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOjB9XSkpLGk9aS5jb25jYXQoW3tuYW1lOlwiZm9ybWF0XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjR9LHtuYW1lOlwiY21hcDRMZW5ndGhcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJsYW5ndWFnZVwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInNlZ0NvdW50WDJcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJzZWFyY2hSYW5nZVwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcImVudHJ5U2VsZWN0b3JcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJyYW5nZVNoaWZ0XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9XSk7dmFyIG4sYSxvLHM9bmV3ICQuVGFibGUoXCJjbWFwXCIsaSk7Zm9yKHMuc2VnbWVudHM9W10sdD0wO3Q8ZS5sZW5ndGg7dCs9MSl7Zm9yKHZhciBsPWUuZ2V0KHQpLHU9MDt1PGwudW5pY29kZXMubGVuZ3RoO3UrPTEpbj1zLGE9bC51bmljb2Rlc1t1XSxvPXQsbi5zZWdtZW50cy5wdXNoKHtlbmQ6YSxzdGFydDphLGRlbHRhOi0oYS1vKSxvZmZzZXQ6MCxnbHlwaEluZGV4Om99KTtzLnNlZ21lbnRzPXMuc2VnbWVudHMuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLnN0YXJ0LXQuc3RhcnR9KX1zLnNlZ21lbnRzLnB1c2goe2VuZDo2NTUzNSxzdGFydDo2NTUzNSxkZWx0YToxLG9mZnNldDowfSk7dmFyIGg9cy5zZWdtZW50cy5sZW5ndGgsYz0wLGY9W10sZD1bXSxwPVtdLG09W10sdj1bXSx5PVtdO2Zvcih0PTA7dDxoO3QrPTEpe3ZhciBnPXMuc2VnbWVudHNbdF07Zy5lbmQ8PTY1NTM1JiZnLnN0YXJ0PD02NTUzNT8oZj1mLmNvbmNhdCh7bmFtZTpcImVuZF9cIit0LHR5cGU6XCJVU0hPUlRcIix2YWx1ZTpnLmVuZH0pLGQ9ZC5jb25jYXQoe25hbWU6XCJzdGFydF9cIit0LHR5cGU6XCJVU0hPUlRcIix2YWx1ZTpnLnN0YXJ0fSkscD1wLmNvbmNhdCh7bmFtZTpcImlkRGVsdGFfXCIrdCx0eXBlOlwiU0hPUlRcIix2YWx1ZTpnLmRlbHRhfSksbT1tLmNvbmNhdCh7bmFtZTpcImlkUmFuZ2VPZmZzZXRfXCIrdCx0eXBlOlwiVVNIT1JUXCIsdmFsdWU6Zy5vZmZzZXR9KSx2b2lkIDAhPT1nLmdseXBoSWQmJih2PXYuY29uY2F0KHtuYW1lOlwiZ2x5cGhfXCIrdCx0eXBlOlwiVVNIT1JUXCIsdmFsdWU6Zy5nbHlwaElkfSkpKTpjKz0xLHJ8fHZvaWQgMD09PWcuZ2x5cGhJbmRleHx8KHk9KHk9KHk9eS5jb25jYXQoe25hbWU6XCJjbWFwMTJTdGFydF9cIit0LHR5cGU6XCJVTE9OR1wiLHZhbHVlOmcuc3RhcnR9KSkuY29uY2F0KHtuYW1lOlwiY21hcDEyRW5kX1wiK3QsdHlwZTpcIlVMT05HXCIsdmFsdWU6Zy5lbmR9KSkuY29uY2F0KHtuYW1lOlwiY21hcDEyR2x5cGhfXCIrdCx0eXBlOlwiVUxPTkdcIix2YWx1ZTpnLmdseXBoSW5kZXh9KSl9aWYocy5zZWdDb3VudFgyPTIqKGgtYykscy5zZWFyY2hSYW5nZT0yKk1hdGgucG93KDIsTWF0aC5mbG9vcihNYXRoLmxvZyhoLWMpL01hdGgubG9nKDIpKSkscy5lbnRyeVNlbGVjdG9yPU1hdGgubG9nKHMuc2VhcmNoUmFuZ2UvMikvTWF0aC5sb2coMikscy5yYW5nZVNoaWZ0PXMuc2VnQ291bnRYMi1zLnNlYXJjaFJhbmdlLHMuZmllbGRzPXMuZmllbGRzLmNvbmNhdChmKSxzLmZpZWxkcy5wdXNoKHtuYW1lOlwicmVzZXJ2ZWRQYWRcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0pLHMuZmllbGRzPXMuZmllbGRzLmNvbmNhdChkKSxzLmZpZWxkcz1zLmZpZWxkcy5jb25jYXQocCkscy5maWVsZHM9cy5maWVsZHMuY29uY2F0KG0pLHMuZmllbGRzPXMuZmllbGRzLmNvbmNhdCh2KSxzLmNtYXA0TGVuZ3RoPTE0KzIqZi5sZW5ndGgrMisyKmQubGVuZ3RoKzIqcC5sZW5ndGgrMiptLmxlbmd0aCsyKnYubGVuZ3RoLCFyKXt2YXIgYj0xNis0KnkubGVuZ3RoO3MuY21hcDEyT2Zmc2V0PTIwK3MuY21hcDRMZW5ndGgscy5maWVsZHM9cy5maWVsZHMuY29uY2F0KFt7bmFtZTpcImNtYXAxMkZvcm1hdFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZToxMn0se25hbWU6XCJjbWFwMTJSZXNlcnZlZFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcImNtYXAxMkxlbmd0aFwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOmJ9LHtuYW1lOlwiY21hcDEyTGFuZ3VhZ2VcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcImNtYXAxMm5Hcm91cHNcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTp5Lmxlbmd0aC8zfV0pLHMuZmllbGRzPXMuZmllbGRzLmNvbmNhdCh5KX1yZXR1cm4gc319LHVlPVtcIi5ub3RkZWZcIixcInNwYWNlXCIsXCJleGNsYW1cIixcInF1b3RlZGJsXCIsXCJudW1iZXJzaWduXCIsXCJkb2xsYXJcIixcInBlcmNlbnRcIixcImFtcGVyc2FuZFwiLFwicXVvdGVyaWdodFwiLFwicGFyZW5sZWZ0XCIsXCJwYXJlbnJpZ2h0XCIsXCJhc3Rlcmlza1wiLFwicGx1c1wiLFwiY29tbWFcIixcImh5cGhlblwiLFwicGVyaW9kXCIsXCJzbGFzaFwiLFwiemVyb1wiLFwib25lXCIsXCJ0d29cIixcInRocmVlXCIsXCJmb3VyXCIsXCJmaXZlXCIsXCJzaXhcIixcInNldmVuXCIsXCJlaWdodFwiLFwibmluZVwiLFwiY29sb25cIixcInNlbWljb2xvblwiLFwibGVzc1wiLFwiZXF1YWxcIixcImdyZWF0ZXJcIixcInF1ZXN0aW9uXCIsXCJhdFwiLFwiQVwiLFwiQlwiLFwiQ1wiLFwiRFwiLFwiRVwiLFwiRlwiLFwiR1wiLFwiSFwiLFwiSVwiLFwiSlwiLFwiS1wiLFwiTFwiLFwiTVwiLFwiTlwiLFwiT1wiLFwiUFwiLFwiUVwiLFwiUlwiLFwiU1wiLFwiVFwiLFwiVVwiLFwiVlwiLFwiV1wiLFwiWFwiLFwiWVwiLFwiWlwiLFwiYnJhY2tldGxlZnRcIixcImJhY2tzbGFzaFwiLFwiYnJhY2tldHJpZ2h0XCIsXCJhc2NpaWNpcmN1bVwiLFwidW5kZXJzY29yZVwiLFwicXVvdGVsZWZ0XCIsXCJhXCIsXCJiXCIsXCJjXCIsXCJkXCIsXCJlXCIsXCJmXCIsXCJnXCIsXCJoXCIsXCJpXCIsXCJqXCIsXCJrXCIsXCJsXCIsXCJtXCIsXCJuXCIsXCJvXCIsXCJwXCIsXCJxXCIsXCJyXCIsXCJzXCIsXCJ0XCIsXCJ1XCIsXCJ2XCIsXCJ3XCIsXCJ4XCIsXCJ5XCIsXCJ6XCIsXCJicmFjZWxlZnRcIixcImJhclwiLFwiYnJhY2VyaWdodFwiLFwiYXNjaWl0aWxkZVwiLFwiZXhjbGFtZG93blwiLFwiY2VudFwiLFwic3RlcmxpbmdcIixcImZyYWN0aW9uXCIsXCJ5ZW5cIixcImZsb3JpblwiLFwic2VjdGlvblwiLFwiY3VycmVuY3lcIixcInF1b3Rlc2luZ2xlXCIsXCJxdW90ZWRibGxlZnRcIixcImd1aWxsZW1vdGxlZnRcIixcImd1aWxzaW5nbGxlZnRcIixcImd1aWxzaW5nbHJpZ2h0XCIsXCJmaVwiLFwiZmxcIixcImVuZGFzaFwiLFwiZGFnZ2VyXCIsXCJkYWdnZXJkYmxcIixcInBlcmlvZGNlbnRlcmVkXCIsXCJwYXJhZ3JhcGhcIixcImJ1bGxldFwiLFwicXVvdGVzaW5nbGJhc2VcIixcInF1b3RlZGJsYmFzZVwiLFwicXVvdGVkYmxyaWdodFwiLFwiZ3VpbGxlbW90cmlnaHRcIixcImVsbGlwc2lzXCIsXCJwZXJ0aG91c2FuZFwiLFwicXVlc3Rpb25kb3duXCIsXCJncmF2ZVwiLFwiYWN1dGVcIixcImNpcmN1bWZsZXhcIixcInRpbGRlXCIsXCJtYWNyb25cIixcImJyZXZlXCIsXCJkb3RhY2NlbnRcIixcImRpZXJlc2lzXCIsXCJyaW5nXCIsXCJjZWRpbGxhXCIsXCJodW5nYXJ1bWxhdXRcIixcIm9nb25la1wiLFwiY2Fyb25cIixcImVtZGFzaFwiLFwiQUVcIixcIm9yZGZlbWluaW5lXCIsXCJMc2xhc2hcIixcIk9zbGFzaFwiLFwiT0VcIixcIm9yZG1hc2N1bGluZVwiLFwiYWVcIixcImRvdGxlc3NpXCIsXCJsc2xhc2hcIixcIm9zbGFzaFwiLFwib2VcIixcImdlcm1hbmRibHNcIixcIm9uZXN1cGVyaW9yXCIsXCJsb2dpY2Fsbm90XCIsXCJtdVwiLFwidHJhZGVtYXJrXCIsXCJFdGhcIixcIm9uZWhhbGZcIixcInBsdXNtaW51c1wiLFwiVGhvcm5cIixcIm9uZXF1YXJ0ZXJcIixcImRpdmlkZVwiLFwiYnJva2VuYmFyXCIsXCJkZWdyZWVcIixcInRob3JuXCIsXCJ0aHJlZXF1YXJ0ZXJzXCIsXCJ0d29zdXBlcmlvclwiLFwicmVnaXN0ZXJlZFwiLFwibWludXNcIixcImV0aFwiLFwibXVsdGlwbHlcIixcInRocmVlc3VwZXJpb3JcIixcImNvcHlyaWdodFwiLFwiQWFjdXRlXCIsXCJBY2lyY3VtZmxleFwiLFwiQWRpZXJlc2lzXCIsXCJBZ3JhdmVcIixcIkFyaW5nXCIsXCJBdGlsZGVcIixcIkNjZWRpbGxhXCIsXCJFYWN1dGVcIixcIkVjaXJjdW1mbGV4XCIsXCJFZGllcmVzaXNcIixcIkVncmF2ZVwiLFwiSWFjdXRlXCIsXCJJY2lyY3VtZmxleFwiLFwiSWRpZXJlc2lzXCIsXCJJZ3JhdmVcIixcIk50aWxkZVwiLFwiT2FjdXRlXCIsXCJPY2lyY3VtZmxleFwiLFwiT2RpZXJlc2lzXCIsXCJPZ3JhdmVcIixcIk90aWxkZVwiLFwiU2Nhcm9uXCIsXCJVYWN1dGVcIixcIlVjaXJjdW1mbGV4XCIsXCJVZGllcmVzaXNcIixcIlVncmF2ZVwiLFwiWWFjdXRlXCIsXCJZZGllcmVzaXNcIixcIlpjYXJvblwiLFwiYWFjdXRlXCIsXCJhY2lyY3VtZmxleFwiLFwiYWRpZXJlc2lzXCIsXCJhZ3JhdmVcIixcImFyaW5nXCIsXCJhdGlsZGVcIixcImNjZWRpbGxhXCIsXCJlYWN1dGVcIixcImVjaXJjdW1mbGV4XCIsXCJlZGllcmVzaXNcIixcImVncmF2ZVwiLFwiaWFjdXRlXCIsXCJpY2lyY3VtZmxleFwiLFwiaWRpZXJlc2lzXCIsXCJpZ3JhdmVcIixcIm50aWxkZVwiLFwib2FjdXRlXCIsXCJvY2lyY3VtZmxleFwiLFwib2RpZXJlc2lzXCIsXCJvZ3JhdmVcIixcIm90aWxkZVwiLFwic2Nhcm9uXCIsXCJ1YWN1dGVcIixcInVjaXJjdW1mbGV4XCIsXCJ1ZGllcmVzaXNcIixcInVncmF2ZVwiLFwieWFjdXRlXCIsXCJ5ZGllcmVzaXNcIixcInpjYXJvblwiLFwiZXhjbGFtc21hbGxcIixcIkh1bmdhcnVtbGF1dHNtYWxsXCIsXCJkb2xsYXJvbGRzdHlsZVwiLFwiZG9sbGFyc3VwZXJpb3JcIixcImFtcGVyc2FuZHNtYWxsXCIsXCJBY3V0ZXNtYWxsXCIsXCJwYXJlbmxlZnRzdXBlcmlvclwiLFwicGFyZW5yaWdodHN1cGVyaW9yXCIsXCIyNjYgZmZcIixcIm9uZWRvdGVubGVhZGVyXCIsXCJ6ZXJvb2xkc3R5bGVcIixcIm9uZW9sZHN0eWxlXCIsXCJ0d29vbGRzdHlsZVwiLFwidGhyZWVvbGRzdHlsZVwiLFwiZm91cm9sZHN0eWxlXCIsXCJmaXZlb2xkc3R5bGVcIixcInNpeG9sZHN0eWxlXCIsXCJzZXZlbm9sZHN0eWxlXCIsXCJlaWdodG9sZHN0eWxlXCIsXCJuaW5lb2xkc3R5bGVcIixcImNvbW1hc3VwZXJpb3JcIixcInRocmVlcXVhcnRlcnNlbWRhc2hcIixcInBlcmlvZHN1cGVyaW9yXCIsXCJxdWVzdGlvbnNtYWxsXCIsXCJhc3VwZXJpb3JcIixcImJzdXBlcmlvclwiLFwiY2VudHN1cGVyaW9yXCIsXCJkc3VwZXJpb3JcIixcImVzdXBlcmlvclwiLFwiaXN1cGVyaW9yXCIsXCJsc3VwZXJpb3JcIixcIm1zdXBlcmlvclwiLFwibnN1cGVyaW9yXCIsXCJvc3VwZXJpb3JcIixcInJzdXBlcmlvclwiLFwic3N1cGVyaW9yXCIsXCJ0c3VwZXJpb3JcIixcImZmXCIsXCJmZmlcIixcImZmbFwiLFwicGFyZW5sZWZ0aW5mZXJpb3JcIixcInBhcmVucmlnaHRpbmZlcmlvclwiLFwiQ2lyY3VtZmxleHNtYWxsXCIsXCJoeXBoZW5zdXBlcmlvclwiLFwiR3JhdmVzbWFsbFwiLFwiQXNtYWxsXCIsXCJCc21hbGxcIixcIkNzbWFsbFwiLFwiRHNtYWxsXCIsXCJFc21hbGxcIixcIkZzbWFsbFwiLFwiR3NtYWxsXCIsXCJIc21hbGxcIixcIklzbWFsbFwiLFwiSnNtYWxsXCIsXCJLc21hbGxcIixcIkxzbWFsbFwiLFwiTXNtYWxsXCIsXCJOc21hbGxcIixcIk9zbWFsbFwiLFwiUHNtYWxsXCIsXCJRc21hbGxcIixcIlJzbWFsbFwiLFwiU3NtYWxsXCIsXCJUc21hbGxcIixcIlVzbWFsbFwiLFwiVnNtYWxsXCIsXCJXc21hbGxcIixcIlhzbWFsbFwiLFwiWXNtYWxsXCIsXCJac21hbGxcIixcImNvbG9ubW9uZXRhcnlcIixcIm9uZWZpdHRlZFwiLFwicnVwaWFoXCIsXCJUaWxkZXNtYWxsXCIsXCJleGNsYW1kb3duc21hbGxcIixcImNlbnRvbGRzdHlsZVwiLFwiTHNsYXNoc21hbGxcIixcIlNjYXJvbnNtYWxsXCIsXCJaY2Fyb25zbWFsbFwiLFwiRGllcmVzaXNzbWFsbFwiLFwiQnJldmVzbWFsbFwiLFwiQ2Fyb25zbWFsbFwiLFwiRG90YWNjZW50c21hbGxcIixcIk1hY3JvbnNtYWxsXCIsXCJmaWd1cmVkYXNoXCIsXCJoeXBoZW5pbmZlcmlvclwiLFwiT2dvbmVrc21hbGxcIixcIlJpbmdzbWFsbFwiLFwiQ2VkaWxsYXNtYWxsXCIsXCJxdWVzdGlvbmRvd25zbWFsbFwiLFwib25lZWlnaHRoXCIsXCJ0aHJlZWVpZ2h0aHNcIixcImZpdmVlaWdodGhzXCIsXCJzZXZlbmVpZ2h0aHNcIixcIm9uZXRoaXJkXCIsXCJ0d290aGlyZHNcIixcInplcm9zdXBlcmlvclwiLFwiZm91cnN1cGVyaW9yXCIsXCJmaXZlc3VwZXJpb3JcIixcInNpeHN1cGVyaW9yXCIsXCJzZXZlbnN1cGVyaW9yXCIsXCJlaWdodHN1cGVyaW9yXCIsXCJuaW5lc3VwZXJpb3JcIixcInplcm9pbmZlcmlvclwiLFwib25laW5mZXJpb3JcIixcInR3b2luZmVyaW9yXCIsXCJ0aHJlZWluZmVyaW9yXCIsXCJmb3VyaW5mZXJpb3JcIixcImZpdmVpbmZlcmlvclwiLFwic2l4aW5mZXJpb3JcIixcInNldmVuaW5mZXJpb3JcIixcImVpZ2h0aW5mZXJpb3JcIixcIm5pbmVpbmZlcmlvclwiLFwiY2VudGluZmVyaW9yXCIsXCJkb2xsYXJpbmZlcmlvclwiLFwicGVyaW9kaW5mZXJpb3JcIixcImNvbW1haW5mZXJpb3JcIixcIkFncmF2ZXNtYWxsXCIsXCJBYWN1dGVzbWFsbFwiLFwiQWNpcmN1bWZsZXhzbWFsbFwiLFwiQXRpbGRlc21hbGxcIixcIkFkaWVyZXNpc3NtYWxsXCIsXCJBcmluZ3NtYWxsXCIsXCJBRXNtYWxsXCIsXCJDY2VkaWxsYXNtYWxsXCIsXCJFZ3JhdmVzbWFsbFwiLFwiRWFjdXRlc21hbGxcIixcIkVjaXJjdW1mbGV4c21hbGxcIixcIkVkaWVyZXNpc3NtYWxsXCIsXCJJZ3JhdmVzbWFsbFwiLFwiSWFjdXRlc21hbGxcIixcIkljaXJjdW1mbGV4c21hbGxcIixcIklkaWVyZXNpc3NtYWxsXCIsXCJFdGhzbWFsbFwiLFwiTnRpbGRlc21hbGxcIixcIk9ncmF2ZXNtYWxsXCIsXCJPYWN1dGVzbWFsbFwiLFwiT2NpcmN1bWZsZXhzbWFsbFwiLFwiT3RpbGRlc21hbGxcIixcIk9kaWVyZXNpc3NtYWxsXCIsXCJPRXNtYWxsXCIsXCJPc2xhc2hzbWFsbFwiLFwiVWdyYXZlc21hbGxcIixcIlVhY3V0ZXNtYWxsXCIsXCJVY2lyY3VtZmxleHNtYWxsXCIsXCJVZGllcmVzaXNzbWFsbFwiLFwiWWFjdXRlc21hbGxcIixcIlRob3Juc21hbGxcIixcIllkaWVyZXNpc3NtYWxsXCIsXCIwMDEuMDAwXCIsXCIwMDEuMDAxXCIsXCIwMDEuMDAyXCIsXCIwMDEuMDAzXCIsXCJCbGFja1wiLFwiQm9sZFwiLFwiQm9va1wiLFwiTGlnaHRcIixcIk1lZGl1bVwiLFwiUmVndWxhclwiLFwiUm9tYW5cIixcIlNlbWlib2xkXCJdLGhlPVtcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJzcGFjZVwiLFwiZXhjbGFtXCIsXCJxdW90ZWRibFwiLFwibnVtYmVyc2lnblwiLFwiZG9sbGFyXCIsXCJwZXJjZW50XCIsXCJhbXBlcnNhbmRcIixcInF1b3RlcmlnaHRcIixcInBhcmVubGVmdFwiLFwicGFyZW5yaWdodFwiLFwiYXN0ZXJpc2tcIixcInBsdXNcIixcImNvbW1hXCIsXCJoeXBoZW5cIixcInBlcmlvZFwiLFwic2xhc2hcIixcInplcm9cIixcIm9uZVwiLFwidHdvXCIsXCJ0aHJlZVwiLFwiZm91clwiLFwiZml2ZVwiLFwic2l4XCIsXCJzZXZlblwiLFwiZWlnaHRcIixcIm5pbmVcIixcImNvbG9uXCIsXCJzZW1pY29sb25cIixcImxlc3NcIixcImVxdWFsXCIsXCJncmVhdGVyXCIsXCJxdWVzdGlvblwiLFwiYXRcIixcIkFcIixcIkJcIixcIkNcIixcIkRcIixcIkVcIixcIkZcIixcIkdcIixcIkhcIixcIklcIixcIkpcIixcIktcIixcIkxcIixcIk1cIixcIk5cIixcIk9cIixcIlBcIixcIlFcIixcIlJcIixcIlNcIixcIlRcIixcIlVcIixcIlZcIixcIldcIixcIlhcIixcIllcIixcIlpcIixcImJyYWNrZXRsZWZ0XCIsXCJiYWNrc2xhc2hcIixcImJyYWNrZXRyaWdodFwiLFwiYXNjaWljaXJjdW1cIixcInVuZGVyc2NvcmVcIixcInF1b3RlbGVmdFwiLFwiYVwiLFwiYlwiLFwiY1wiLFwiZFwiLFwiZVwiLFwiZlwiLFwiZ1wiLFwiaFwiLFwiaVwiLFwialwiLFwia1wiLFwibFwiLFwibVwiLFwiblwiLFwib1wiLFwicFwiLFwicVwiLFwiclwiLFwic1wiLFwidFwiLFwidVwiLFwidlwiLFwid1wiLFwieFwiLFwieVwiLFwielwiLFwiYnJhY2VsZWZ0XCIsXCJiYXJcIixcImJyYWNlcmlnaHRcIixcImFzY2lpdGlsZGVcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiZXhjbGFtZG93blwiLFwiY2VudFwiLFwic3RlcmxpbmdcIixcImZyYWN0aW9uXCIsXCJ5ZW5cIixcImZsb3JpblwiLFwic2VjdGlvblwiLFwiY3VycmVuY3lcIixcInF1b3Rlc2luZ2xlXCIsXCJxdW90ZWRibGxlZnRcIixcImd1aWxsZW1vdGxlZnRcIixcImd1aWxzaW5nbGxlZnRcIixcImd1aWxzaW5nbHJpZ2h0XCIsXCJmaVwiLFwiZmxcIixcIlwiLFwiZW5kYXNoXCIsXCJkYWdnZXJcIixcImRhZ2dlcmRibFwiLFwicGVyaW9kY2VudGVyZWRcIixcIlwiLFwicGFyYWdyYXBoXCIsXCJidWxsZXRcIixcInF1b3Rlc2luZ2xiYXNlXCIsXCJxdW90ZWRibGJhc2VcIixcInF1b3RlZGJscmlnaHRcIixcImd1aWxsZW1vdHJpZ2h0XCIsXCJlbGxpcHNpc1wiLFwicGVydGhvdXNhbmRcIixcIlwiLFwicXVlc3Rpb25kb3duXCIsXCJcIixcImdyYXZlXCIsXCJhY3V0ZVwiLFwiY2lyY3VtZmxleFwiLFwidGlsZGVcIixcIm1hY3JvblwiLFwiYnJldmVcIixcImRvdGFjY2VudFwiLFwiZGllcmVzaXNcIixcIlwiLFwicmluZ1wiLFwiY2VkaWxsYVwiLFwiXCIsXCJodW5nYXJ1bWxhdXRcIixcIm9nb25la1wiLFwiY2Fyb25cIixcImVtZGFzaFwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJBRVwiLFwiXCIsXCJvcmRmZW1pbmluZVwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJMc2xhc2hcIixcIk9zbGFzaFwiLFwiT0VcIixcIm9yZG1hc2N1bGluZVwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcImFlXCIsXCJcIixcIlwiLFwiXCIsXCJkb3RsZXNzaVwiLFwiXCIsXCJcIixcImxzbGFzaFwiLFwib3NsYXNoXCIsXCJvZVwiLFwiZ2VybWFuZGJsc1wiXSxjZT1bXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwic3BhY2VcIixcImV4Y2xhbXNtYWxsXCIsXCJIdW5nYXJ1bWxhdXRzbWFsbFwiLFwiXCIsXCJkb2xsYXJvbGRzdHlsZVwiLFwiZG9sbGFyc3VwZXJpb3JcIixcImFtcGVyc2FuZHNtYWxsXCIsXCJBY3V0ZXNtYWxsXCIsXCJwYXJlbmxlZnRzdXBlcmlvclwiLFwicGFyZW5yaWdodHN1cGVyaW9yXCIsXCJ0d29kb3RlbmxlYWRlclwiLFwib25lZG90ZW5sZWFkZXJcIixcImNvbW1hXCIsXCJoeXBoZW5cIixcInBlcmlvZFwiLFwiZnJhY3Rpb25cIixcInplcm9vbGRzdHlsZVwiLFwib25lb2xkc3R5bGVcIixcInR3b29sZHN0eWxlXCIsXCJ0aHJlZW9sZHN0eWxlXCIsXCJmb3Vyb2xkc3R5bGVcIixcImZpdmVvbGRzdHlsZVwiLFwic2l4b2xkc3R5bGVcIixcInNldmVub2xkc3R5bGVcIixcImVpZ2h0b2xkc3R5bGVcIixcIm5pbmVvbGRzdHlsZVwiLFwiY29sb25cIixcInNlbWljb2xvblwiLFwiY29tbWFzdXBlcmlvclwiLFwidGhyZWVxdWFydGVyc2VtZGFzaFwiLFwicGVyaW9kc3VwZXJpb3JcIixcInF1ZXN0aW9uc21hbGxcIixcIlwiLFwiYXN1cGVyaW9yXCIsXCJic3VwZXJpb3JcIixcImNlbnRzdXBlcmlvclwiLFwiZHN1cGVyaW9yXCIsXCJlc3VwZXJpb3JcIixcIlwiLFwiXCIsXCJpc3VwZXJpb3JcIixcIlwiLFwiXCIsXCJsc3VwZXJpb3JcIixcIm1zdXBlcmlvclwiLFwibnN1cGVyaW9yXCIsXCJvc3VwZXJpb3JcIixcIlwiLFwiXCIsXCJyc3VwZXJpb3JcIixcInNzdXBlcmlvclwiLFwidHN1cGVyaW9yXCIsXCJcIixcImZmXCIsXCJmaVwiLFwiZmxcIixcImZmaVwiLFwiZmZsXCIsXCJwYXJlbmxlZnRpbmZlcmlvclwiLFwiXCIsXCJwYXJlbnJpZ2h0aW5mZXJpb3JcIixcIkNpcmN1bWZsZXhzbWFsbFwiLFwiaHlwaGVuc3VwZXJpb3JcIixcIkdyYXZlc21hbGxcIixcIkFzbWFsbFwiLFwiQnNtYWxsXCIsXCJDc21hbGxcIixcIkRzbWFsbFwiLFwiRXNtYWxsXCIsXCJGc21hbGxcIixcIkdzbWFsbFwiLFwiSHNtYWxsXCIsXCJJc21hbGxcIixcIkpzbWFsbFwiLFwiS3NtYWxsXCIsXCJMc21hbGxcIixcIk1zbWFsbFwiLFwiTnNtYWxsXCIsXCJPc21hbGxcIixcIlBzbWFsbFwiLFwiUXNtYWxsXCIsXCJSc21hbGxcIixcIlNzbWFsbFwiLFwiVHNtYWxsXCIsXCJVc21hbGxcIixcIlZzbWFsbFwiLFwiV3NtYWxsXCIsXCJYc21hbGxcIixcIllzbWFsbFwiLFwiWnNtYWxsXCIsXCJjb2xvbm1vbmV0YXJ5XCIsXCJvbmVmaXR0ZWRcIixcInJ1cGlhaFwiLFwiVGlsZGVzbWFsbFwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJcIixcIlwiLFwiXCIsXCJleGNsYW1kb3duc21hbGxcIixcImNlbnRvbGRzdHlsZVwiLFwiTHNsYXNoc21hbGxcIixcIlwiLFwiXCIsXCJTY2Fyb25zbWFsbFwiLFwiWmNhcm9uc21hbGxcIixcIkRpZXJlc2lzc21hbGxcIixcIkJyZXZlc21hbGxcIixcIkNhcm9uc21hbGxcIixcIlwiLFwiRG90YWNjZW50c21hbGxcIixcIlwiLFwiXCIsXCJNYWNyb25zbWFsbFwiLFwiXCIsXCJcIixcImZpZ3VyZWRhc2hcIixcImh5cGhlbmluZmVyaW9yXCIsXCJcIixcIlwiLFwiT2dvbmVrc21hbGxcIixcIlJpbmdzbWFsbFwiLFwiQ2VkaWxsYXNtYWxsXCIsXCJcIixcIlwiLFwiXCIsXCJvbmVxdWFydGVyXCIsXCJvbmVoYWxmXCIsXCJ0aHJlZXF1YXJ0ZXJzXCIsXCJxdWVzdGlvbmRvd25zbWFsbFwiLFwib25lZWlnaHRoXCIsXCJ0aHJlZWVpZ2h0aHNcIixcImZpdmVlaWdodGhzXCIsXCJzZXZlbmVpZ2h0aHNcIixcIm9uZXRoaXJkXCIsXCJ0d290aGlyZHNcIixcIlwiLFwiXCIsXCJ6ZXJvc3VwZXJpb3JcIixcIm9uZXN1cGVyaW9yXCIsXCJ0d29zdXBlcmlvclwiLFwidGhyZWVzdXBlcmlvclwiLFwiZm91cnN1cGVyaW9yXCIsXCJmaXZlc3VwZXJpb3JcIixcInNpeHN1cGVyaW9yXCIsXCJzZXZlbnN1cGVyaW9yXCIsXCJlaWdodHN1cGVyaW9yXCIsXCJuaW5lc3VwZXJpb3JcIixcInplcm9pbmZlcmlvclwiLFwib25laW5mZXJpb3JcIixcInR3b2luZmVyaW9yXCIsXCJ0aHJlZWluZmVyaW9yXCIsXCJmb3VyaW5mZXJpb3JcIixcImZpdmVpbmZlcmlvclwiLFwic2l4aW5mZXJpb3JcIixcInNldmVuaW5mZXJpb3JcIixcImVpZ2h0aW5mZXJpb3JcIixcIm5pbmVpbmZlcmlvclwiLFwiY2VudGluZmVyaW9yXCIsXCJkb2xsYXJpbmZlcmlvclwiLFwicGVyaW9kaW5mZXJpb3JcIixcImNvbW1haW5mZXJpb3JcIixcIkFncmF2ZXNtYWxsXCIsXCJBYWN1dGVzbWFsbFwiLFwiQWNpcmN1bWZsZXhzbWFsbFwiLFwiQXRpbGRlc21hbGxcIixcIkFkaWVyZXNpc3NtYWxsXCIsXCJBcmluZ3NtYWxsXCIsXCJBRXNtYWxsXCIsXCJDY2VkaWxsYXNtYWxsXCIsXCJFZ3JhdmVzbWFsbFwiLFwiRWFjdXRlc21hbGxcIixcIkVjaXJjdW1mbGV4c21hbGxcIixcIkVkaWVyZXNpc3NtYWxsXCIsXCJJZ3JhdmVzbWFsbFwiLFwiSWFjdXRlc21hbGxcIixcIkljaXJjdW1mbGV4c21hbGxcIixcIklkaWVyZXNpc3NtYWxsXCIsXCJFdGhzbWFsbFwiLFwiTnRpbGRlc21hbGxcIixcIk9ncmF2ZXNtYWxsXCIsXCJPYWN1dGVzbWFsbFwiLFwiT2NpcmN1bWZsZXhzbWFsbFwiLFwiT3RpbGRlc21hbGxcIixcIk9kaWVyZXNpc3NtYWxsXCIsXCJPRXNtYWxsXCIsXCJPc2xhc2hzbWFsbFwiLFwiVWdyYXZlc21hbGxcIixcIlVhY3V0ZXNtYWxsXCIsXCJVY2lyY3VtZmxleHNtYWxsXCIsXCJVZGllcmVzaXNzbWFsbFwiLFwiWWFjdXRlc21hbGxcIixcIlRob3Juc21hbGxcIixcIllkaWVyZXNpc3NtYWxsXCJdLGZlPVtcIi5ub3RkZWZcIixcIi5udWxsXCIsXCJub25tYXJraW5ncmV0dXJuXCIsXCJzcGFjZVwiLFwiZXhjbGFtXCIsXCJxdW90ZWRibFwiLFwibnVtYmVyc2lnblwiLFwiZG9sbGFyXCIsXCJwZXJjZW50XCIsXCJhbXBlcnNhbmRcIixcInF1b3Rlc2luZ2xlXCIsXCJwYXJlbmxlZnRcIixcInBhcmVucmlnaHRcIixcImFzdGVyaXNrXCIsXCJwbHVzXCIsXCJjb21tYVwiLFwiaHlwaGVuXCIsXCJwZXJpb2RcIixcInNsYXNoXCIsXCJ6ZXJvXCIsXCJvbmVcIixcInR3b1wiLFwidGhyZWVcIixcImZvdXJcIixcImZpdmVcIixcInNpeFwiLFwic2V2ZW5cIixcImVpZ2h0XCIsXCJuaW5lXCIsXCJjb2xvblwiLFwic2VtaWNvbG9uXCIsXCJsZXNzXCIsXCJlcXVhbFwiLFwiZ3JlYXRlclwiLFwicXVlc3Rpb25cIixcImF0XCIsXCJBXCIsXCJCXCIsXCJDXCIsXCJEXCIsXCJFXCIsXCJGXCIsXCJHXCIsXCJIXCIsXCJJXCIsXCJKXCIsXCJLXCIsXCJMXCIsXCJNXCIsXCJOXCIsXCJPXCIsXCJQXCIsXCJRXCIsXCJSXCIsXCJTXCIsXCJUXCIsXCJVXCIsXCJWXCIsXCJXXCIsXCJYXCIsXCJZXCIsXCJaXCIsXCJicmFja2V0bGVmdFwiLFwiYmFja3NsYXNoXCIsXCJicmFja2V0cmlnaHRcIixcImFzY2lpY2lyY3VtXCIsXCJ1bmRlcnNjb3JlXCIsXCJncmF2ZVwiLFwiYVwiLFwiYlwiLFwiY1wiLFwiZFwiLFwiZVwiLFwiZlwiLFwiZ1wiLFwiaFwiLFwiaVwiLFwialwiLFwia1wiLFwibFwiLFwibVwiLFwiblwiLFwib1wiLFwicFwiLFwicVwiLFwiclwiLFwic1wiLFwidFwiLFwidVwiLFwidlwiLFwid1wiLFwieFwiLFwieVwiLFwielwiLFwiYnJhY2VsZWZ0XCIsXCJiYXJcIixcImJyYWNlcmlnaHRcIixcImFzY2lpdGlsZGVcIixcIkFkaWVyZXNpc1wiLFwiQXJpbmdcIixcIkNjZWRpbGxhXCIsXCJFYWN1dGVcIixcIk50aWxkZVwiLFwiT2RpZXJlc2lzXCIsXCJVZGllcmVzaXNcIixcImFhY3V0ZVwiLFwiYWdyYXZlXCIsXCJhY2lyY3VtZmxleFwiLFwiYWRpZXJlc2lzXCIsXCJhdGlsZGVcIixcImFyaW5nXCIsXCJjY2VkaWxsYVwiLFwiZWFjdXRlXCIsXCJlZ3JhdmVcIixcImVjaXJjdW1mbGV4XCIsXCJlZGllcmVzaXNcIixcImlhY3V0ZVwiLFwiaWdyYXZlXCIsXCJpY2lyY3VtZmxleFwiLFwiaWRpZXJlc2lzXCIsXCJudGlsZGVcIixcIm9hY3V0ZVwiLFwib2dyYXZlXCIsXCJvY2lyY3VtZmxleFwiLFwib2RpZXJlc2lzXCIsXCJvdGlsZGVcIixcInVhY3V0ZVwiLFwidWdyYXZlXCIsXCJ1Y2lyY3VtZmxleFwiLFwidWRpZXJlc2lzXCIsXCJkYWdnZXJcIixcImRlZ3JlZVwiLFwiY2VudFwiLFwic3RlcmxpbmdcIixcInNlY3Rpb25cIixcImJ1bGxldFwiLFwicGFyYWdyYXBoXCIsXCJnZXJtYW5kYmxzXCIsXCJyZWdpc3RlcmVkXCIsXCJjb3B5cmlnaHRcIixcInRyYWRlbWFya1wiLFwiYWN1dGVcIixcImRpZXJlc2lzXCIsXCJub3RlcXVhbFwiLFwiQUVcIixcIk9zbGFzaFwiLFwiaW5maW5pdHlcIixcInBsdXNtaW51c1wiLFwibGVzc2VxdWFsXCIsXCJncmVhdGVyZXF1YWxcIixcInllblwiLFwibXVcIixcInBhcnRpYWxkaWZmXCIsXCJzdW1tYXRpb25cIixcInByb2R1Y3RcIixcInBpXCIsXCJpbnRlZ3JhbFwiLFwib3JkZmVtaW5pbmVcIixcIm9yZG1hc2N1bGluZVwiLFwiT21lZ2FcIixcImFlXCIsXCJvc2xhc2hcIixcInF1ZXN0aW9uZG93blwiLFwiZXhjbGFtZG93blwiLFwibG9naWNhbG5vdFwiLFwicmFkaWNhbFwiLFwiZmxvcmluXCIsXCJhcHByb3hlcXVhbFwiLFwiRGVsdGFcIixcImd1aWxsZW1vdGxlZnRcIixcImd1aWxsZW1vdHJpZ2h0XCIsXCJlbGxpcHNpc1wiLFwibm9uYnJlYWtpbmdzcGFjZVwiLFwiQWdyYXZlXCIsXCJBdGlsZGVcIixcIk90aWxkZVwiLFwiT0VcIixcIm9lXCIsXCJlbmRhc2hcIixcImVtZGFzaFwiLFwicXVvdGVkYmxsZWZ0XCIsXCJxdW90ZWRibHJpZ2h0XCIsXCJxdW90ZWxlZnRcIixcInF1b3RlcmlnaHRcIixcImRpdmlkZVwiLFwibG96ZW5nZVwiLFwieWRpZXJlc2lzXCIsXCJZZGllcmVzaXNcIixcImZyYWN0aW9uXCIsXCJjdXJyZW5jeVwiLFwiZ3VpbHNpbmdsbGVmdFwiLFwiZ3VpbHNpbmdscmlnaHRcIixcImZpXCIsXCJmbFwiLFwiZGFnZ2VyZGJsXCIsXCJwZXJpb2RjZW50ZXJlZFwiLFwicXVvdGVzaW5nbGJhc2VcIixcInF1b3RlZGJsYmFzZVwiLFwicGVydGhvdXNhbmRcIixcIkFjaXJjdW1mbGV4XCIsXCJFY2lyY3VtZmxleFwiLFwiQWFjdXRlXCIsXCJFZGllcmVzaXNcIixcIkVncmF2ZVwiLFwiSWFjdXRlXCIsXCJJY2lyY3VtZmxleFwiLFwiSWRpZXJlc2lzXCIsXCJJZ3JhdmVcIixcIk9hY3V0ZVwiLFwiT2NpcmN1bWZsZXhcIixcImFwcGxlXCIsXCJPZ3JhdmVcIixcIlVhY3V0ZVwiLFwiVWNpcmN1bWZsZXhcIixcIlVncmF2ZVwiLFwiZG90bGVzc2lcIixcImNpcmN1bWZsZXhcIixcInRpbGRlXCIsXCJtYWNyb25cIixcImJyZXZlXCIsXCJkb3RhY2NlbnRcIixcInJpbmdcIixcImNlZGlsbGFcIixcImh1bmdhcnVtbGF1dFwiLFwib2dvbmVrXCIsXCJjYXJvblwiLFwiTHNsYXNoXCIsXCJsc2xhc2hcIixcIlNjYXJvblwiLFwic2Nhcm9uXCIsXCJaY2Fyb25cIixcInpjYXJvblwiLFwiYnJva2VuYmFyXCIsXCJFdGhcIixcImV0aFwiLFwiWWFjdXRlXCIsXCJ5YWN1dGVcIixcIlRob3JuXCIsXCJ0aG9yblwiLFwibWludXNcIixcIm11bHRpcGx5XCIsXCJvbmVzdXBlcmlvclwiLFwidHdvc3VwZXJpb3JcIixcInRocmVlc3VwZXJpb3JcIixcIm9uZWhhbGZcIixcIm9uZXF1YXJ0ZXJcIixcInRocmVlcXVhcnRlcnNcIixcImZyYW5jXCIsXCJHYnJldmVcIixcImdicmV2ZVwiLFwiSWRvdGFjY2VudFwiLFwiU2NlZGlsbGFcIixcInNjZWRpbGxhXCIsXCJDYWN1dGVcIixcImNhY3V0ZVwiLFwiQ2Nhcm9uXCIsXCJjY2Fyb25cIixcImRjcm9hdFwiXTtmdW5jdGlvbiBkZShlKXt0aGlzLmZvbnQ9ZX1mdW5jdGlvbiBwZShlKXt0aGlzLmNtYXA9ZX1mdW5jdGlvbiBtZShlLHQpe3RoaXMuZW5jb2Rpbmc9ZSx0aGlzLmNoYXJzZXQ9dH1mdW5jdGlvbiB2ZShlKXtzd2l0Y2goZS52ZXJzaW9uKXtjYXNlIDE6dGhpcy5uYW1lcz1mZS5zbGljZSgpO2JyZWFrO2Nhc2UgMjp0aGlzLm5hbWVzPW5ldyBBcnJheShlLm51bWJlck9mR2x5cGhzKTtmb3IodmFyIHQ9MDt0PGUubnVtYmVyT2ZHbHlwaHM7dCsrKWUuZ2x5cGhOYW1lSW5kZXhbdF08ZmUubGVuZ3RoP3RoaXMubmFtZXNbdF09ZmVbZS5nbHlwaE5hbWVJbmRleFt0XV06dGhpcy5uYW1lc1t0XT1lLm5hbWVzW2UuZ2x5cGhOYW1lSW5kZXhbdF0tZmUubGVuZ3RoXTticmVhaztjYXNlIDIuNTp0aGlzLm5hbWVzPW5ldyBBcnJheShlLm51bWJlck9mR2x5cGhzKTtmb3IodmFyIHI9MDtyPGUubnVtYmVyT2ZHbHlwaHM7cisrKXRoaXMubmFtZXNbcl09ZmVbcitlLmdseXBoTmFtZUluZGV4W3JdXTticmVhaztjYXNlIDM6ZGVmYXVsdDp0aGlzLm5hbWVzPVtdfX1kZS5wcm90b3R5cGUuY2hhclRvR2x5cGhJbmRleD1mdW5jdGlvbihlKXt2YXIgdD1lLmNvZGVQb2ludEF0KDApLHI9dGhpcy5mb250LmdseXBocztpZihyKWZvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSs9MSlmb3IodmFyIG49ci5nZXQoaSksYT0wO2E8bi51bmljb2Rlcy5sZW5ndGg7YSs9MSlpZihuLnVuaWNvZGVzW2FdPT09dClyZXR1cm4gaTtyZXR1cm4gbnVsbH0scGUucHJvdG90eXBlLmNoYXJUb0dseXBoSW5kZXg9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21hcC5nbHlwaEluZGV4TWFwW2UuY29kZVBvaW50QXQoMCldfHwwfSxtZS5wcm90b3R5cGUuY2hhclRvR2x5cGhJbmRleD1mdW5jdGlvbihlKXt2YXIgdD1lLmNvZGVQb2ludEF0KDApLHI9dGhpcy5lbmNvZGluZ1t0XTtyZXR1cm4gdGhpcy5jaGFyc2V0LmluZGV4T2Yocil9LHZlLnByb3RvdHlwZS5uYW1lVG9HbHlwaEluZGV4PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm5hbWVzLmluZGV4T2YoZSl9LHZlLnByb3RvdHlwZS5nbHlwaEluZGV4VG9OYW1lPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm5hbWVzW2VdfTt2YXIgeWU9e2xpbmU6ZnVuY3Rpb24oZSx0LHIsaSxuKXtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHQsciksZS5saW5lVG8oaSxuKSxlLnN0cm9rZSgpfX07ZnVuY3Rpb24gZ2UoZSl7dGhpcy5iaW5kQ29uc3RydWN0b3JWYWx1ZXMoZSl9ZnVuY3Rpb24gYmUodCxlLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2dldDpmdW5jdGlvbigpe3JldHVybiB0LnBhdGgsdFtyXX0sc2V0OmZ1bmN0aW9uKGUpe3Rbcl09ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBfZShlLHQpe2lmKHRoaXMuZm9udD1lLHRoaXMuZ2x5cGhzPXt9LEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5nbHlwaHNbcl09dFtyXTt0aGlzLmxlbmd0aD10JiZ0Lmxlbmd0aHx8MH1nZS5wcm90b3R5cGUuYmluZENvbnN0cnVjdG9yVmFsdWVzPWZ1bmN0aW9uKGUpe3ZhciB0LHI7dGhpcy5pbmRleD1lLmluZGV4fHwwLHRoaXMubmFtZT1lLm5hbWV8fG51bGwsdGhpcy51bmljb2RlPWUudW5pY29kZXx8dm9pZCAwLHRoaXMudW5pY29kZXM9ZS51bmljb2Rlc3x8dm9pZCAwIT09ZS51bmljb2RlP1tlLnVuaWNvZGVdOltdLGUueE1pbiYmKHRoaXMueE1pbj1lLnhNaW4pLGUueU1pbiYmKHRoaXMueU1pbj1lLnlNaW4pLGUueE1heCYmKHRoaXMueE1heD1lLnhNYXgpLGUueU1heCYmKHRoaXMueU1heD1lLnlNYXgpLGUuYWR2YW5jZVdpZHRoJiYodGhpcy5hZHZhbmNlV2lkdGg9ZS5hZHZhbmNlV2lkdGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwicGF0aFwiLCh0PWUucGF0aCxyPXR8fG5ldyBJLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgciYmKHI9cigpKSxyfSxzZXQ6ZnVuY3Rpb24oZSl7cj1lfX0pKX0sZ2UucHJvdG90eXBlLmFkZFVuaWNvZGU9ZnVuY3Rpb24oZSl7MD09PXRoaXMudW5pY29kZXMubGVuZ3RoJiYodGhpcy51bmljb2RlPWUpLHRoaXMudW5pY29kZXMucHVzaChlKX0sZ2UucHJvdG90eXBlLmdldEJvdW5kaW5nQm94PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aC5nZXRCb3VuZGluZ0JveCgpfSxnZS5wcm90b3R5cGUuZ2V0UGF0aD1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBhLG87ZT12b2lkIDAhPT1lP2U6MCx0PXZvaWQgMCE9PXQ/dDowLHI9dm9pZCAwIT09cj9yOjcyO3ZhciBzPShpPWl8fHt9KS54U2NhbGUsbD1pLnlTY2FsZTtpZihpLmhpbnRpbmcmJm4mJm4uaGludGluZyYmKG89dGhpcy5wYXRoJiZuLmhpbnRpbmcuZXhlYyh0aGlzLHIpKSxvKWE9bi5oaW50aW5nLmdldENvbW1hbmRzKG8pLGU9TWF0aC5yb3VuZChlKSx0PU1hdGgucm91bmQodCkscz1sPTE7ZWxzZXthPXRoaXMucGF0aC5jb21tYW5kczt2YXIgdT0xL3RoaXMucGF0aC51bml0c1BlckVtKnI7dm9pZCAwPT09cyYmKHM9dSksdm9pZCAwPT09bCYmKGw9dSl9Zm9yKHZhciBoPW5ldyBJLGM9MDtjPGEubGVuZ3RoO2MrPTEpe3ZhciBmPWFbY107XCJNXCI9PT1mLnR5cGU/aC5tb3ZlVG8oZStmLngqcyx0Ky1mLnkqbCk6XCJMXCI9PT1mLnR5cGU/aC5saW5lVG8oZStmLngqcyx0Ky1mLnkqbCk6XCJRXCI9PT1mLnR5cGU/aC5xdWFkcmF0aWNDdXJ2ZVRvKGUrZi54MSpzLHQrLWYueTEqbCxlK2YueCpzLHQrLWYueSpsKTpcIkNcIj09PWYudHlwZT9oLmN1cnZlVG8oZStmLngxKnMsdCstZi55MSpsLGUrZi54MipzLHQrLWYueTIqbCxlK2YueCpzLHQrLWYueSpsKTpcIlpcIj09PWYudHlwZSYmaC5jbG9zZVBhdGgoKX1yZXR1cm4gaH0sZ2UucHJvdG90eXBlLmdldENvbnRvdXJzPWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09dGhpcy5wb2ludHMpcmV0dXJuW107Zm9yKHZhciBlPVtdLHQ9W10scj0wO3I8dGhpcy5wb2ludHMubGVuZ3RoO3IrPTEpe3ZhciBpPXRoaXMucG9pbnRzW3JdO3QucHVzaChpKSxpLmxhc3RQb2ludE9mQ29udG91ciYmKGUucHVzaCh0KSx0PVtdKX1yZXR1cm4gUC5hcmd1bWVudCgwPT09dC5sZW5ndGgsXCJUaGVyZSBhcmUgc3RpbGwgcG9pbnRzIGxlZnQgaW4gdGhlIGN1cnJlbnQgY29udG91ci5cIiksZX0sZ2UucHJvdG90eXBlLmdldE1ldHJpY3M9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5wYXRoLmNvbW1hbmRzLHQ9W10scj1bXSxpPTA7aTxlLmxlbmd0aDtpKz0xKXt2YXIgbj1lW2ldO1wiWlwiIT09bi50eXBlJiYodC5wdXNoKG4ueCksci5wdXNoKG4ueSkpLFwiUVwiIT09bi50eXBlJiZcIkNcIiE9PW4udHlwZXx8KHQucHVzaChuLngxKSxyLnB1c2gobi55MSkpLFwiQ1wiPT09bi50eXBlJiYodC5wdXNoKG4ueDIpLHIucHVzaChuLnkyKSl9dmFyIGE9e3hNaW46TWF0aC5taW4uYXBwbHkobnVsbCx0KSx5TWluOk1hdGgubWluLmFwcGx5KG51bGwscikseE1heDpNYXRoLm1heC5hcHBseShudWxsLHQpLHlNYXg6TWF0aC5tYXguYXBwbHkobnVsbCxyKSxsZWZ0U2lkZUJlYXJpbmc6dGhpcy5sZWZ0U2lkZUJlYXJpbmd9O3JldHVybiBpc0Zpbml0ZShhLnhNaW4pfHwoYS54TWluPTApLGlzRmluaXRlKGEueE1heCl8fChhLnhNYXg9dGhpcy5hZHZhbmNlV2lkdGgpLGlzRmluaXRlKGEueU1pbil8fChhLnlNaW49MCksaXNGaW5pdGUoYS55TWF4KXx8KGEueU1heD0wKSxhLnJpZ2h0U2lkZUJlYXJpbmc9dGhpcy5hZHZhbmNlV2lkdGgtYS5sZWZ0U2lkZUJlYXJpbmctKGEueE1heC1hLnhNaW4pLGF9LGdlLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKGUsdCxyLGksbil7dGhpcy5nZXRQYXRoKHQscixpLG4pLmRyYXcoZSl9LGdlLnByb3RvdHlwZS5kcmF3UG9pbnRzPWZ1bmN0aW9uKG8sZSx0LHIpe2Z1bmN0aW9uIGkoZSx0LHIsaSl7dmFyIG49MipNYXRoLlBJO28uYmVnaW5QYXRoKCk7Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKz0xKW8ubW92ZVRvKHQrZVthXS54KmkscitlW2FdLnkqaSksby5hcmModCtlW2FdLngqaSxyK2VbYV0ueSppLDIsMCxuLCExKTtvLmNsb3NlUGF0aCgpLG8uZmlsbCgpfWU9dm9pZCAwIT09ZT9lOjAsdD12b2lkIDAhPT10P3Q6MCxyPXZvaWQgMCE9PXI/cjoyNDtmb3IodmFyIG49MS90aGlzLnBhdGgudW5pdHNQZXJFbSpyLGE9W10scz1bXSxsPXRoaXMucGF0aCx1PTA7dTxsLmNvbW1hbmRzLmxlbmd0aDt1Kz0xKXt2YXIgaD1sLmNvbW1hbmRzW3VdO3ZvaWQgMCE9PWgueCYmYS5wdXNoKHt4OmgueCx5Oi1oLnl9KSx2b2lkIDAhPT1oLngxJiZzLnB1c2goe3g6aC54MSx5Oi1oLnkxfSksdm9pZCAwIT09aC54MiYmcy5wdXNoKHt4OmgueDIseTotaC55Mn0pfW8uZmlsbFN0eWxlPVwiYmx1ZVwiLGkoYSxlLHQsbiksby5maWxsU3R5bGU9XCJyZWRcIixpKHMsZSx0LG4pfSxnZS5wcm90b3R5cGUuZHJhd01ldHJpY3M9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG47dD12b2lkIDAhPT10P3Q6MCxyPXZvaWQgMCE9PXI/cjowLGk9dm9pZCAwIT09aT9pOjI0LG49MS90aGlzLnBhdGgudW5pdHNQZXJFbSppLGUubGluZVdpZHRoPTEsZS5zdHJva2VTdHlsZT1cImJsYWNrXCIseWUubGluZShlLHQsLTFlNCx0LDFlNCkseWUubGluZShlLC0xZTQsciwxZTQscik7dmFyIGE9dGhpcy54TWlufHwwLG89dGhpcy55TWlufHwwLHM9dGhpcy54TWF4fHwwLGw9dGhpcy55TWF4fHwwLHU9dGhpcy5hZHZhbmNlV2lkdGh8fDA7ZS5zdHJva2VTdHlsZT1cImJsdWVcIix5ZS5saW5lKGUsdCthKm4sLTFlNCx0K2EqbiwxZTQpLHllLmxpbmUoZSx0K3MqbiwtMWU0LHQrcypuLDFlNCkseWUubGluZShlLC0xZTQscistbypuLDFlNCxyKy1vKm4pLHllLmxpbmUoZSwtMWU0LHIrLWwqbiwxZTQscistbCpuKSxlLnN0cm9rZVN0eWxlPVwiZ3JlZW5cIix5ZS5saW5lKGUsdCt1Km4sLTFlNCx0K3UqbiwxZTQpfSxfZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuZ2x5cGhzW2VdJiYodGhpcy5nbHlwaHNbZV09dGhpcy5nbHlwaHNbZV0oKSksdGhpcy5nbHlwaHNbZV19LF9lLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGUsdCl7dGhpcy5nbHlwaHNbZV09dCx0aGlzLmxlbmd0aCsrfTt2YXIgeGU9e0dseXBoU2V0Ol9lLGdseXBoTG9hZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBnZSh7aW5kZXg6dCxmb250OmV9KX0sdHRmR2x5cGhMb2FkZXI6ZnVuY3Rpb24ocixlLGksbixhLG8pe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PW5ldyBnZSh7aW5kZXg6ZSxmb250OnJ9KTtyZXR1cm4gdC5wYXRoPWZ1bmN0aW9uKCl7aSh0LG4sYSk7dmFyIGU9byhyLmdseXBocyx0KTtyZXR1cm4gZS51bml0c1BlckVtPXIudW5pdHNQZXJFbSxlfSxiZSh0LFwieE1pblwiLFwiX3hNaW5cIiksYmUodCxcInhNYXhcIixcIl94TWF4XCIpLGJlKHQsXCJ5TWluXCIsXCJfeU1pblwiKSxiZSh0LFwieU1heFwiLFwiX3lNYXhcIiksdH19LGNmZkdseXBoTG9hZGVyOmZ1bmN0aW9uKHIsZSxpLG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PW5ldyBnZSh7aW5kZXg6ZSxmb250OnJ9KTtyZXR1cm4gdC5wYXRoPWZ1bmN0aW9uKCl7dmFyIGU9aShyLHQsbik7cmV0dXJuIGUudW5pdHNQZXJFbT1yLnVuaXRzUGVyRW0sZX0sdH19fTtmdW5jdGlvbiB3ZShlLHQpe2lmKGU9PT10KXJldHVybiEwO2lmKEFycmF5LmlzQXJyYXkoZSkmJkFycmF5LmlzQXJyYXkodCkpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKz0xKWlmKCF3ZShlW3JdLHRbcl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFNlKGUpe3JldHVybiBlLmxlbmd0aDwxMjQwPzEwNzplLmxlbmd0aDwzMzkwMD8xMTMxOjMyNzY4fWZ1bmN0aW9uIE1lKGUsdCxyKXt2YXIgaSxuLGE9W10sbz1bXSxzPXNlLmdldENhcmQxNihlLHQpO2lmKDAhPT1zKXt2YXIgbD1zZS5nZXRCeXRlKGUsdCsyKTtpPXQrKHMrMSkqbCsyO2Zvcih2YXIgdT10KzMsaD0wO2g8cysxO2grPTEpYS5wdXNoKHNlLmdldE9mZnNldChlLHUsbCkpLHUrPWw7bj1pK2Fbc119ZWxzZSBuPXQrMjtmb3IodmFyIGM9MDtjPGEubGVuZ3RoLTE7Yys9MSl7dmFyIGY9c2UuZ2V0Qnl0ZXMoZSxpK2FbY10saSthW2MrMV0pO3ImJihmPXIoZikpLG8ucHVzaChmKX1yZXR1cm57b2JqZWN0czpvLHN0YXJ0T2Zmc2V0OnQsZW5kT2Zmc2V0Om59fWZ1bmN0aW9uIFRlKGUsdCl7aWYoMjg9PT10KXJldHVybiBlLnBhcnNlQnl0ZSgpPDw4fGUucGFyc2VCeXRlKCk7aWYoMjk9PT10KXJldHVybiBlLnBhcnNlQnl0ZSgpPDwyNHxlLnBhcnNlQnl0ZSgpPDwxNnxlLnBhcnNlQnl0ZSgpPDw4fGUucGFyc2VCeXRlKCk7aWYoMzA9PT10KXJldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHQ9XCJcIixyPVtcIjBcIixcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIi5cIixcIkVcIixcIkUtXCIsbnVsbCxcIi1cIl07Oyl7dmFyIGk9ZS5wYXJzZUJ5dGUoKSxuPWk+PjQsYT0xNSZpO2lmKDE1PT1uKWJyZWFrO2lmKHQrPXJbbl0sMTU9PWEpYnJlYWs7dCs9clthXX1yZXR1cm4gcGFyc2VGbG9hdCh0KX0oZSk7aWYoMzI8PXQmJnQ8PTI0NilyZXR1cm4gdC0xMzk7aWYoMjQ3PD10JiZ0PD0yNTApcmV0dXJuIDI1NioodC0yNDcpK2UucGFyc2VCeXRlKCkrMTA4O2lmKDI1MTw9dCYmdDw9MjU0KXJldHVybiAyNTYqLSh0LTI1MSktZS5wYXJzZUJ5dGUoKS0xMDg7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBiMCBcIit0KX1mdW5jdGlvbiBFZShlLHQscil7dD12b2lkIDAhPT10P3Q6MDt2YXIgaT1uZXcgc2UuUGFyc2VyKGUsdCksbj1bXSxhPVtdO2ZvcihyPXZvaWQgMCE9PXI/cjplLmxlbmd0aDtpLnJlbGF0aXZlT2Zmc2V0PHI7KXt2YXIgbz1pLnBhcnNlQnl0ZSgpO288PTIxPygxMj09PW8mJihvPTEyMDAraS5wYXJzZUJ5dGUoKSksbi5wdXNoKFtvLGFdKSxhPVtdKTphLnB1c2goVGUoaSxvKSl9cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxyPTA7cjxlLmxlbmd0aDtyKz0xKXt2YXIgaT1lW3JdWzBdLG49ZVtyXVsxXSxhPXZvaWQgMDtpZihhPTE9PT1uLmxlbmd0aD9uWzBdOm4sdC5oYXNPd25Qcm9wZXJ0eShpKSYmIWlzTmFOKHRbaV0pKXRocm93IG5ldyBFcnJvcihcIk9iamVjdCBcIit0K1wiIGFscmVhZHkgaGFzIGtleSBcIitpKTt0W2ldPWF9cmV0dXJuIHR9KG4pfWZ1bmN0aW9uIENlKGUsdCl7cmV0dXJuIHQ9dDw9MzkwP3VlW3RdOmVbdC0zOTFdfWZ1bmN0aW9uIExlKGUsdCxyKXtmb3IodmFyIGksbj17fSxhPTA7YTx0Lmxlbmd0aDthKz0xKXt2YXIgbz10W2FdO2lmKEFycmF5LmlzQXJyYXkoby50eXBlKSl7dmFyIHM9W107cy5sZW5ndGg9by50eXBlLmxlbmd0aDtmb3IodmFyIGw9MDtsPG8udHlwZS5sZW5ndGg7bCsrKXZvaWQgMD09PShpPXZvaWQgMCE9PWVbby5vcF0/ZVtvLm9wXVtsXTp2b2lkIDApJiYoaT12b2lkIDAhPT1vLnZhbHVlJiZ2b2lkIDAhPT1vLnZhbHVlW2xdP28udmFsdWVbbF06bnVsbCksXCJTSURcIj09PW8udHlwZVtsXSYmKGk9Q2UocixpKSksc1tsXT1pO25bby5uYW1lXT1zfWVsc2Ugdm9pZCAwPT09KGk9ZVtvLm9wXSkmJihpPXZvaWQgMCE9PW8udmFsdWU/by52YWx1ZTpudWxsKSxcIlNJRFwiPT09by50eXBlJiYoaT1DZShyLGkpKSxuW28ubmFtZV09aX1yZXR1cm4gbn12YXIgT2U9W3tuYW1lOlwidmVyc2lvblwiLG9wOjAsdHlwZTpcIlNJRFwifSx7bmFtZTpcIm5vdGljZVwiLG9wOjEsdHlwZTpcIlNJRFwifSx7bmFtZTpcImNvcHlyaWdodFwiLG9wOjEyMDAsdHlwZTpcIlNJRFwifSx7bmFtZTpcImZ1bGxOYW1lXCIsb3A6Mix0eXBlOlwiU0lEXCJ9LHtuYW1lOlwiZmFtaWx5TmFtZVwiLG9wOjMsdHlwZTpcIlNJRFwifSx7bmFtZTpcIndlaWdodFwiLG9wOjQsdHlwZTpcIlNJRFwifSx7bmFtZTpcImlzRml4ZWRQaXRjaFwiLG9wOjEyMDEsdHlwZTpcIm51bWJlclwiLHZhbHVlOjB9LHtuYW1lOlwiaXRhbGljQW5nbGVcIixvcDoxMjAyLHR5cGU6XCJudW1iZXJcIix2YWx1ZTowfSx7bmFtZTpcInVuZGVybGluZVBvc2l0aW9uXCIsb3A6MTIwMyx0eXBlOlwibnVtYmVyXCIsdmFsdWU6LTEwMH0se25hbWU6XCJ1bmRlcmxpbmVUaGlja25lc3NcIixvcDoxMjA0LHR5cGU6XCJudW1iZXJcIix2YWx1ZTo1MH0se25hbWU6XCJwYWludFR5cGVcIixvcDoxMjA1LHR5cGU6XCJudW1iZXJcIix2YWx1ZTowfSx7bmFtZTpcImNoYXJzdHJpbmdUeXBlXCIsb3A6MTIwNix0eXBlOlwibnVtYmVyXCIsdmFsdWU6Mn0se25hbWU6XCJmb250TWF0cml4XCIsb3A6MTIwNyx0eXBlOltcInJlYWxcIixcInJlYWxcIixcInJlYWxcIixcInJlYWxcIixcInJlYWxcIixcInJlYWxcIl0sdmFsdWU6Wy4wMDEsMCwwLC4wMDEsMCwwXX0se25hbWU6XCJ1bmlxdWVJZFwiLG9wOjEzLHR5cGU6XCJudW1iZXJcIn0se25hbWU6XCJmb250QkJveFwiLG9wOjUsdHlwZTpbXCJudW1iZXJcIixcIm51bWJlclwiLFwibnVtYmVyXCIsXCJudW1iZXJcIl0sdmFsdWU6WzAsMCwwLDBdfSx7bmFtZTpcInN0cm9rZVdpZHRoXCIsb3A6MTIwOCx0eXBlOlwibnVtYmVyXCIsdmFsdWU6MH0se25hbWU6XCJ4dWlkXCIsb3A6MTQsdHlwZTpbXSx2YWx1ZTpudWxsfSx7bmFtZTpcImNoYXJzZXRcIixvcDoxNSx0eXBlOlwib2Zmc2V0XCIsdmFsdWU6MH0se25hbWU6XCJlbmNvZGluZ1wiLG9wOjE2LHR5cGU6XCJvZmZzZXRcIix2YWx1ZTowfSx7bmFtZTpcImNoYXJTdHJpbmdzXCIsb3A6MTcsdHlwZTpcIm9mZnNldFwiLHZhbHVlOjB9LHtuYW1lOlwicHJpdmF0ZVwiLG9wOjE4LHR5cGU6W1wibnVtYmVyXCIsXCJvZmZzZXRcIl0sdmFsdWU6WzAsMF19LHtuYW1lOlwicm9zXCIsb3A6MTIzMCx0eXBlOltcIlNJRFwiLFwiU0lEXCIsXCJudW1iZXJcIl19LHtuYW1lOlwiY2lkRm9udFZlcnNpb25cIixvcDoxMjMxLHR5cGU6XCJudW1iZXJcIix2YWx1ZTowfSx7bmFtZTpcImNpZEZvbnRSZXZpc2lvblwiLG9wOjEyMzIsdHlwZTpcIm51bWJlclwiLHZhbHVlOjB9LHtuYW1lOlwiY2lkRm9udFR5cGVcIixvcDoxMjMzLHR5cGU6XCJudW1iZXJcIix2YWx1ZTowfSx7bmFtZTpcImNpZENvdW50XCIsb3A6MTIzNCx0eXBlOlwibnVtYmVyXCIsdmFsdWU6ODcyMH0se25hbWU6XCJ1aWRCYXNlXCIsb3A6MTIzNSx0eXBlOlwibnVtYmVyXCJ9LHtuYW1lOlwiZmRBcnJheVwiLG9wOjEyMzYsdHlwZTpcIm9mZnNldFwifSx7bmFtZTpcImZkU2VsZWN0XCIsb3A6MTIzNyx0eXBlOlwib2Zmc2V0XCJ9LHtuYW1lOlwiZm9udE5hbWVcIixvcDoxMjM4LHR5cGU6XCJTSURcIn1dLFBlPVt7bmFtZTpcInN1YnJzXCIsb3A6MTksdHlwZTpcIm9mZnNldFwiLHZhbHVlOjB9LHtuYW1lOlwiZGVmYXVsdFdpZHRoWFwiLG9wOjIwLHR5cGU6XCJudW1iZXJcIix2YWx1ZTowfSx7bmFtZTpcIm5vbWluYWxXaWR0aFhcIixvcDoyMSx0eXBlOlwibnVtYmVyXCIsdmFsdWU6MH1dO2Z1bmN0aW9uIFJlKGUsdCxyLGkpe3JldHVybiBMZShFZShlLHQsciksUGUsaSl9ZnVuY3Rpb24gRGUoZSx0LHIsaSl7Zm9yKHZhciBuLGEsbz1bXSxzPTA7czxyLmxlbmd0aDtzKz0xKXt2YXIgbD1uZXcgRGF0YVZpZXcobmV3IFVpbnQ4QXJyYXkocltzXSkuYnVmZmVyKSx1PShhPWksTGUoRWUobj1sLDAsbi5ieXRlTGVuZ3RoKSxPZSxhKSk7dS5fc3VicnM9W10sdS5fc3VicnNCaWFzPTA7dmFyIGg9dS5wcml2YXRlWzBdLGM9dS5wcml2YXRlWzFdO2lmKDAhPT1oJiYwIT09Yyl7dmFyIGY9UmUoZSxjK3QsaCxpKTtpZih1Ll9kZWZhdWx0V2lkdGhYPWYuZGVmYXVsdFdpZHRoWCx1Ll9ub21pbmFsV2lkdGhYPWYubm9taW5hbFdpZHRoWCwwIT09Zi5zdWJycyl7dmFyIGQ9TWUoZSxjK2Yuc3VicnMrdCk7dS5fc3VicnM9ZC5vYmplY3RzLHUuX3N1YnJzQmlhcz1TZSh1Ll9zdWJycyl9dS5fcHJpdmF0ZURpY3Q9Zn1vLnB1c2godSl9cmV0dXJuIG99ZnVuY3Rpb24ga2Uodix5LGUpe3ZhciBnLGIsXyx4LHcsUyx0LE0sVD1uZXcgSSxFPVtdLEM9MCxMPSExLE89ITEsUD0wLFI9MDtpZih2LmlzQ0lERm9udCl7dmFyIHI9di50YWJsZXMuY2ZmLnRvcERpY3QuX2ZkU2VsZWN0W3kuaW5kZXhdLGk9di50YWJsZXMuY2ZmLnRvcERpY3QuX2ZkQXJyYXlbcl07dz1pLl9zdWJycyxTPWkuX3N1YnJzQmlhcyx0PWkuX2RlZmF1bHRXaWR0aFgsTT1pLl9ub21pbmFsV2lkdGhYfWVsc2Ugdz12LnRhYmxlcy5jZmYudG9wRGljdC5fc3VicnMsUz12LnRhYmxlcy5jZmYudG9wRGljdC5fc3VicnNCaWFzLHQ9di50YWJsZXMuY2ZmLnRvcERpY3QuX2RlZmF1bHRXaWR0aFgsTT12LnRhYmxlcy5jZmYudG9wRGljdC5fbm9taW5hbFdpZHRoWDt2YXIgRD10O2Z1bmN0aW9uIGsoZSx0KXtPJiZULmNsb3NlUGF0aCgpLFQubW92ZVRvKGUsdCksTz0hMH1mdW5jdGlvbiBBKCl7RS5sZW5ndGglMj09MHx8THx8KEQ9RS5zaGlmdCgpK00pLEMrPUUubGVuZ3RoPj4xLEUubGVuZ3RoPTAsTD0hMH1yZXR1cm4gZnVuY3Rpb24gZSh0KXtmb3IodmFyIHIsaSxuLGEsbyxzLGwsdSxoLGMsZixkLHA9MDtwPHQubGVuZ3RoOyl7dmFyIG09dFtwXTtzd2l0Y2gocCs9MSxtKXtjYXNlIDE6Y2FzZSAzOkEoKTticmVhaztjYXNlIDQ6MTxFLmxlbmd0aCYmIUwmJihEPUUuc2hpZnQoKStNLEw9ITApLFIrPUUucG9wKCksayhQLFIpO2JyZWFrO2Nhc2UgNTpmb3IoOzA8RS5sZW5ndGg7KVArPUUuc2hpZnQoKSxSKz1FLnNoaWZ0KCksVC5saW5lVG8oUCxSKTticmVhaztjYXNlIDY6Zm9yKDswPEUubGVuZ3RoJiYoUCs9RS5zaGlmdCgpLFQubGluZVRvKFAsUiksMCE9PUUubGVuZ3RoKTspUis9RS5zaGlmdCgpLFQubGluZVRvKFAsUik7YnJlYWs7Y2FzZSA3OmZvcig7MDxFLmxlbmd0aCYmKFIrPUUuc2hpZnQoKSxULmxpbmVUbyhQLFIpLDAhPT1FLmxlbmd0aCk7KVArPUUuc2hpZnQoKSxULmxpbmVUbyhQLFIpO2JyZWFrO2Nhc2UgODpmb3IoOzA8RS5sZW5ndGg7KWc9UCtFLnNoaWZ0KCksYj1SK0Uuc2hpZnQoKSxfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksUD1fK0Uuc2hpZnQoKSxSPXgrRS5zaGlmdCgpLFQuY3VydmVUbyhnLGIsXyx4LFAsUik7YnJlYWs7Y2FzZSAxMDpvPUUucG9wKCkrUywocz13W29dKSYmZShzKTticmVhaztjYXNlIDExOnJldHVybjtjYXNlIDEyOnN3aXRjaChtPXRbcF0scCs9MSxtKXtjYXNlIDM1Omc9UCtFLnNoaWZ0KCksYj1SK0Uuc2hpZnQoKSxfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksbD1fK0Uuc2hpZnQoKSx1PXgrRS5zaGlmdCgpLGg9bCtFLnNoaWZ0KCksYz11K0Uuc2hpZnQoKSxmPWgrRS5zaGlmdCgpLGQ9YytFLnNoaWZ0KCksUD1mK0Uuc2hpZnQoKSxSPWQrRS5zaGlmdCgpLEUuc2hpZnQoKSxULmN1cnZlVG8oZyxiLF8seCxsLHUpLFQuY3VydmVUbyhoLGMsZixkLFAsUik7YnJlYWs7Y2FzZSAzNDpnPVArRS5zaGlmdCgpLGI9UixfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksbD1fK0Uuc2hpZnQoKSx1PXgsaD1sK0Uuc2hpZnQoKSxjPXgsZj1oK0Uuc2hpZnQoKSxkPVIsUD1mK0Uuc2hpZnQoKSxULmN1cnZlVG8oZyxiLF8seCxsLHUpLFQuY3VydmVUbyhoLGMsZixkLFAsUik7YnJlYWs7Y2FzZSAzNjpnPVArRS5zaGlmdCgpLGI9UitFLnNoaWZ0KCksXz1nK0Uuc2hpZnQoKSx4PWIrRS5zaGlmdCgpLGw9XytFLnNoaWZ0KCksdT14LGg9bCtFLnNoaWZ0KCksYz14LGY9aCtFLnNoaWZ0KCksZD1jK0Uuc2hpZnQoKSxQPWYrRS5zaGlmdCgpLFQuY3VydmVUbyhnLGIsXyx4LGwsdSksVC5jdXJ2ZVRvKGgsYyxmLGQsUCxSKTticmVhaztjYXNlIDM3Omc9UCtFLnNoaWZ0KCksYj1SK0Uuc2hpZnQoKSxfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksbD1fK0Uuc2hpZnQoKSx1PXgrRS5zaGlmdCgpLGg9bCtFLnNoaWZ0KCksYz11K0Uuc2hpZnQoKSxmPWgrRS5zaGlmdCgpLGQ9YytFLnNoaWZ0KCksTWF0aC5hYnMoZi1QKT5NYXRoLmFicyhkLVIpP1A9ZitFLnNoaWZ0KCk6Uj1kK0Uuc2hpZnQoKSxULmN1cnZlVG8oZyxiLF8seCxsLHUpLFQuY3VydmVUbyhoLGMsZixkLFAsUik7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmxvZyhcIkdseXBoIFwiK3kuaW5kZXgrXCI6IHVua25vd24gb3BlcmF0b3IgMTIwMFwiK20pLEUubGVuZ3RoPTB9YnJlYWs7Y2FzZSAxNDowPEUubGVuZ3RoJiYhTCYmKEQ9RS5zaGlmdCgpK00sTD0hMCksTyYmKFQuY2xvc2VQYXRoKCksTz0hMSk7YnJlYWs7Y2FzZSAxODpBKCk7YnJlYWs7Y2FzZSAxOTpjYXNlIDIwOkEoKSxwKz1DKzc+PjM7YnJlYWs7Y2FzZSAyMToyPEUubGVuZ3RoJiYhTCYmKEQ9RS5zaGlmdCgpK00sTD0hMCksUis9RS5wb3AoKSxrKFArPUUucG9wKCksUik7YnJlYWs7Y2FzZSAyMjoxPEUubGVuZ3RoJiYhTCYmKEQ9RS5zaGlmdCgpK00sTD0hMCksayhQKz1FLnBvcCgpLFIpO2JyZWFrO2Nhc2UgMjM6QSgpO2JyZWFrO2Nhc2UgMjQ6Zm9yKDsyPEUubGVuZ3RoOylnPVArRS5zaGlmdCgpLGI9UitFLnNoaWZ0KCksXz1nK0Uuc2hpZnQoKSx4PWIrRS5zaGlmdCgpLFA9XytFLnNoaWZ0KCksUj14K0Uuc2hpZnQoKSxULmN1cnZlVG8oZyxiLF8seCxQLFIpO1ArPUUuc2hpZnQoKSxSKz1FLnNoaWZ0KCksVC5saW5lVG8oUCxSKTticmVhaztjYXNlIDI1OmZvcig7NjxFLmxlbmd0aDspUCs9RS5zaGlmdCgpLFIrPUUuc2hpZnQoKSxULmxpbmVUbyhQLFIpO2c9UCtFLnNoaWZ0KCksYj1SK0Uuc2hpZnQoKSxfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksUD1fK0Uuc2hpZnQoKSxSPXgrRS5zaGlmdCgpLFQuY3VydmVUbyhnLGIsXyx4LFAsUik7YnJlYWs7Y2FzZSAyNjpmb3IoRS5sZW5ndGglMiYmKFArPUUuc2hpZnQoKSk7MDxFLmxlbmd0aDspZz1QLGI9UitFLnNoaWZ0KCksXz1nK0Uuc2hpZnQoKSx4PWIrRS5zaGlmdCgpLFA9XyxSPXgrRS5zaGlmdCgpLFQuY3VydmVUbyhnLGIsXyx4LFAsUik7YnJlYWs7Y2FzZSAyNzpmb3IoRS5sZW5ndGglMiYmKFIrPUUuc2hpZnQoKSk7MDxFLmxlbmd0aDspZz1QK0Uuc2hpZnQoKSxiPVIsXz1nK0Uuc2hpZnQoKSx4PWIrRS5zaGlmdCgpLFA9XytFLnNoaWZ0KCksUj14LFQuY3VydmVUbyhnLGIsXyx4LFAsUik7YnJlYWs7Y2FzZSAyODpyPXRbcF0saT10W3ArMV0sRS5wdXNoKChyPDwyNHxpPDwxNik+PjE2KSxwKz0yO2JyZWFrO2Nhc2UgMjk6bz1FLnBvcCgpK3YuZ3N1YnJzQmlhcywocz12LmdzdWJyc1tvXSkmJmUocyk7YnJlYWs7Y2FzZSAzMDpmb3IoOzA8RS5sZW5ndGgmJihnPVAsYj1SK0Uuc2hpZnQoKSxfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksUD1fK0Uuc2hpZnQoKSxSPXgrKDE9PT1FLmxlbmd0aD9FLnNoaWZ0KCk6MCksVC5jdXJ2ZVRvKGcsYixfLHgsUCxSKSwwIT09RS5sZW5ndGgpOylnPVArRS5zaGlmdCgpLGI9UixfPWcrRS5zaGlmdCgpLHg9YitFLnNoaWZ0KCksUj14K0Uuc2hpZnQoKSxQPV8rKDE9PT1FLmxlbmd0aD9FLnNoaWZ0KCk6MCksVC5jdXJ2ZVRvKGcsYixfLHgsUCxSKTticmVhaztjYXNlIDMxOmZvcig7MDxFLmxlbmd0aCYmKGc9UCtFLnNoaWZ0KCksYj1SLF89ZytFLnNoaWZ0KCkseD1iK0Uuc2hpZnQoKSxSPXgrRS5zaGlmdCgpLFA9XysoMT09PUUubGVuZ3RoP0Uuc2hpZnQoKTowKSxULmN1cnZlVG8oZyxiLF8seCxQLFIpLDAhPT1FLmxlbmd0aCk7KWc9UCxiPVIrRS5zaGlmdCgpLF89ZytFLnNoaWZ0KCkseD1iK0Uuc2hpZnQoKSxQPV8rRS5zaGlmdCgpLFI9eCsoMT09PUUubGVuZ3RoP0Uuc2hpZnQoKTowKSxULmN1cnZlVG8oZyxiLF8seCxQLFIpO2JyZWFrO2RlZmF1bHQ6bTwzMj9jb25zb2xlLmxvZyhcIkdseXBoIFwiK3kuaW5kZXgrXCI6IHVua25vd24gb3BlcmF0b3IgXCIrbSk6bTwyNDc/RS5wdXNoKG0tMTM5KTptPDI1MT8ocj10W3BdLHArPTEsRS5wdXNoKDI1NioobS0yNDcpK3IrMTA4KSk6bTwyNTU/KHI9dFtwXSxwKz0xLEUucHVzaCgyNTYqLShtLTI1MSktci0xMDgpKToocj10W3BdLGk9dFtwKzFdLG49dFtwKzJdLGE9dFtwKzNdLHArPTQsRS5wdXNoKChyPDwyNHxpPDwxNnxuPDw4fGEpLzY1NTM2KSl9fX0oZSkseS5hZHZhbmNlV2lkdGg9RCxUfWZ1bmN0aW9uIEFlKGUsdCl7dmFyIHIsaT11ZS5pbmRleE9mKGUpO3JldHVybiAwPD1pJiYocj1pKSwwPD0oaT10LmluZGV4T2YoZSkpP3I9aSt1ZS5sZW5ndGg6KHI9dWUubGVuZ3RoK3QubGVuZ3RoLHQucHVzaChlKSkscn1mdW5jdGlvbiBJZShlLHQscil7Zm9yKHZhciBpPXt9LG49MDtuPGUubGVuZ3RoO24rPTEpe3ZhciBhPWVbbl0sbz10W2EubmFtZV07dm9pZCAwPT09b3x8d2UobyxhLnZhbHVlKXx8KFwiU0lEXCI9PT1hLnR5cGUmJihvPUFlKG8scikpLGlbYS5vcF09e25hbWU6YS5uYW1lLHR5cGU6YS50eXBlLHZhbHVlOm99KX1yZXR1cm4gaX1mdW5jdGlvbiBVZShlLHQpe3ZhciByPW5ldyAkLlJlY29yZChcIlRvcCBESUNUXCIsW3tuYW1lOlwiZGljdFwiLHR5cGU6XCJESUNUXCIsdmFsdWU6e319XSk7cmV0dXJuIHIuZGljdD1JZShPZSxlLHQpLHJ9ZnVuY3Rpb24gTmUoZSl7dmFyIHQ9bmV3ICQuUmVjb3JkKFwiVG9wIERJQ1QgSU5ERVhcIixbe25hbWU6XCJ0b3BEaWN0c1wiLHR5cGU6XCJJTkRFWFwiLHZhbHVlOltdfV0pO3JldHVybiB0LnRvcERpY3RzPVt7bmFtZTpcInRvcERpY3RfMFwiLHR5cGU6XCJUQUJMRVwiLHZhbHVlOmV9XSx0fWZ1bmN0aW9uIEZlKGUpe3ZhciB0PVtdLHI9ZS5wYXRoO3QucHVzaCh7bmFtZTpcIndpZHRoXCIsdHlwZTpcIk5VTUJFUlwiLHZhbHVlOmUuYWR2YW5jZVdpZHRofSk7Zm9yKHZhciBpPTAsbj0wLGE9MDthPHIuY29tbWFuZHMubGVuZ3RoO2ErPTEpe3ZhciBvPXZvaWQgMCxzPXZvaWQgMCxsPXIuY29tbWFuZHNbYV07aWYoXCJRXCI9PT1sLnR5cGUpe2w9e3R5cGU6XCJDXCIseDpsLngseTpsLnkseDE6MS8zKmkrMi8zKmwueDEseTE6MS8zKm4rMi8zKmwueTEseDI6MS8zKmwueCsyLzMqbC54MSx5MjoxLzMqbC55KzIvMypsLnkxfX1pZihcIk1cIj09PWwudHlwZSlvPU1hdGgucm91bmQobC54LWkpLHM9TWF0aC5yb3VuZChsLnktbiksdC5wdXNoKHtuYW1lOlwiZHhcIix0eXBlOlwiTlVNQkVSXCIsdmFsdWU6b30pLHQucHVzaCh7bmFtZTpcImR5XCIsdHlwZTpcIk5VTUJFUlwiLHZhbHVlOnN9KSx0LnB1c2goe25hbWU6XCJybW92ZXRvXCIsdHlwZTpcIk9QXCIsdmFsdWU6MjF9KSxpPU1hdGgucm91bmQobC54KSxuPU1hdGgucm91bmQobC55KTtlbHNlIGlmKFwiTFwiPT09bC50eXBlKW89TWF0aC5yb3VuZChsLngtaSkscz1NYXRoLnJvdW5kKGwueS1uKSx0LnB1c2goe25hbWU6XCJkeFwiLHR5cGU6XCJOVU1CRVJcIix2YWx1ZTpvfSksdC5wdXNoKHtuYW1lOlwiZHlcIix0eXBlOlwiTlVNQkVSXCIsdmFsdWU6c30pLHQucHVzaCh7bmFtZTpcInJsaW5ldG9cIix0eXBlOlwiT1BcIix2YWx1ZTo1fSksaT1NYXRoLnJvdW5kKGwueCksbj1NYXRoLnJvdW5kKGwueSk7ZWxzZSBpZihcIkNcIj09PWwudHlwZSl7dmFyIHU9TWF0aC5yb3VuZChsLngxLWkpLGg9TWF0aC5yb3VuZChsLnkxLW4pLGM9TWF0aC5yb3VuZChsLngyLWwueDEpLGY9TWF0aC5yb3VuZChsLnkyLWwueTEpO289TWF0aC5yb3VuZChsLngtbC54Mikscz1NYXRoLnJvdW5kKGwueS1sLnkyKSx0LnB1c2goe25hbWU6XCJkeDFcIix0eXBlOlwiTlVNQkVSXCIsdmFsdWU6dX0pLHQucHVzaCh7bmFtZTpcImR5MVwiLHR5cGU6XCJOVU1CRVJcIix2YWx1ZTpofSksdC5wdXNoKHtuYW1lOlwiZHgyXCIsdHlwZTpcIk5VTUJFUlwiLHZhbHVlOmN9KSx0LnB1c2goe25hbWU6XCJkeTJcIix0eXBlOlwiTlVNQkVSXCIsdmFsdWU6Zn0pLHQucHVzaCh7bmFtZTpcImR4XCIsdHlwZTpcIk5VTUJFUlwiLHZhbHVlOm99KSx0LnB1c2goe25hbWU6XCJkeVwiLHR5cGU6XCJOVU1CRVJcIix2YWx1ZTpzfSksdC5wdXNoKHtuYW1lOlwicnJjdXJ2ZXRvXCIsdHlwZTpcIk9QXCIsdmFsdWU6OH0pLGk9TWF0aC5yb3VuZChsLngpLG49TWF0aC5yb3VuZChsLnkpfX1yZXR1cm4gdC5wdXNoKHtuYW1lOlwiZW5kY2hhclwiLHR5cGU6XCJPUFwiLHZhbHVlOjE0fSksdH12YXIgQmU9e3BhcnNlOmZ1bmN0aW9uKGUsdCxyKXtyLnRhYmxlcy5jZmY9e307dmFyIGksbixhLG89TWUoZSwoaT1lLG49dCwoYT17fSkuZm9ybWF0TWFqb3I9c2UuZ2V0Q2FyZDgoaSxuKSxhLmZvcm1hdE1pbm9yPXNlLmdldENhcmQ4KGksbisxKSxhLnNpemU9c2UuZ2V0Q2FyZDgoaSxuKzIpLGEub2Zmc2V0U2l6ZT1zZS5nZXRDYXJkOChpLG4rMyksYS5zdGFydE9mZnNldD1uLGEuZW5kT2Zmc2V0PW4rNCxhKS5lbmRPZmZzZXQsc2UuYnl0ZXNUb1N0cmluZykscz1NZShlLG8uZW5kT2Zmc2V0KSxsPU1lKGUscy5lbmRPZmZzZXQsc2UuYnl0ZXNUb1N0cmluZyksdT1NZShlLGwuZW5kT2Zmc2V0KTtyLmdzdWJycz11Lm9iamVjdHMsci5nc3VicnNCaWFzPVNlKHIuZ3N1YnJzKTt2YXIgaD1EZShlLHQscy5vYmplY3RzLGwub2JqZWN0cyk7aWYoMSE9PWgubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIkNGRiB0YWJsZSBoYXMgdG9vIG1hbnkgZm9udHMgaW4gJ0ZvbnRTZXQnIC0gY291bnQgb2YgZm9udHMgTmFtZUluZGV4Lmxlbmd0aCA9IFwiK2gubGVuZ3RoKTt2YXIgYz1oWzBdO2lmKChyLnRhYmxlcy5jZmYudG9wRGljdD1jKS5fcHJpdmF0ZURpY3QmJihyLmRlZmF1bHRXaWR0aFg9Yy5fcHJpdmF0ZURpY3QuZGVmYXVsdFdpZHRoWCxyLm5vbWluYWxXaWR0aFg9Yy5fcHJpdmF0ZURpY3Qubm9taW5hbFdpZHRoWCksdm9pZCAwIT09Yy5yb3NbMF0mJnZvaWQgMCE9PWMucm9zWzFdJiYoci5pc0NJREZvbnQ9ITApLHIuaXNDSURGb250KXt2YXIgZj1jLmZkQXJyYXksZD1jLmZkU2VsZWN0O2lmKDA9PT1mfHwwPT09ZCl0aHJvdyBuZXcgRXJyb3IoXCJGb250IGlzIG1hcmtlZCBhcyBhIENJRCBmb250LCBidXQgRkRBcnJheSBhbmQvb3IgRkRTZWxlY3QgaW5mb3JtYXRpb24gaXMgbWlzc2luZ1wiKTt2YXIgcD1EZShlLHQsTWUoZSxmKz10KS5vYmplY3RzLGwub2JqZWN0cyk7Yy5fZmRBcnJheT1wLGQrPXQsYy5fZmRTZWxlY3Q9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG4sYT1bXSxvPW5ldyBzZS5QYXJzZXIoZSx0KSxzPW8ucGFyc2VDYXJkOCgpO2lmKDA9PT1zKWZvcih2YXIgbD0wO2w8cjtsKyspe2lmKGk8PShuPW8ucGFyc2VDYXJkOCgpKSl0aHJvdyBuZXcgRXJyb3IoXCJDRkYgdGFibGUgQ0lEIEZvbnQgRkRTZWxlY3QgaGFzIGJhZCBGRCBpbmRleCB2YWx1ZSBcIituK1wiIChGRCBjb3VudCBcIitpK1wiKVwiKTthLnB1c2gobil9ZWxzZXtpZigzIT09cyl0aHJvdyBuZXcgRXJyb3IoXCJDRkYgVGFibGUgQ0lEIEZvbnQgRkRTZWxlY3QgdGFibGUgaGFzIHVuc3VwcG9ydGVkIGZvcm1hdCBcIitzKTt2YXIgdSxoPW8ucGFyc2VDYXJkMTYoKSxjPW8ucGFyc2VDYXJkMTYoKTtpZigwIT09Yyl0aHJvdyBuZXcgRXJyb3IoXCJDRkYgVGFibGUgQ0lEIEZvbnQgRkRTZWxlY3QgZm9ybWF0IDMgcmFuZ2UgaGFzIGJhZCBpbml0aWFsIEdJRCBcIitjKTtmb3IodmFyIGY9MDtmPGg7ZisrKXtpZihuPW8ucGFyc2VDYXJkOCgpLHU9by5wYXJzZUNhcmQxNigpLGk8PW4pdGhyb3cgbmV3IEVycm9yKFwiQ0ZGIHRhYmxlIENJRCBGb250IEZEU2VsZWN0IGhhcyBiYWQgRkQgaW5kZXggdmFsdWUgXCIrbitcIiAoRkQgY291bnQgXCIraStcIilcIik7aWYocjx1KXRocm93IG5ldyBFcnJvcihcIkNGRiBUYWJsZSBDSUQgRm9udCBGRFNlbGVjdCBmb3JtYXQgMyByYW5nZSBoYXMgYmFkIEdJRCBcIit1KTtmb3IoO2M8dTtjKyspYS5wdXNoKG4pO2M9dX1pZih1IT09cil0aHJvdyBuZXcgRXJyb3IoXCJDRkYgVGFibGUgQ0lEIEZvbnQgRkRTZWxlY3QgZm9ybWF0IDMgcmFuZ2UgaGFzIGJhZCBmaW5hbCBHSUQgXCIrdSl9cmV0dXJuIGF9KGUsZCxyLm51bUdseXBocyxwLmxlbmd0aCl9dmFyIG09dCtjLnByaXZhdGVbMV0sdj1SZShlLG0sYy5wcml2YXRlWzBdLGwub2JqZWN0cyk7aWYoci5kZWZhdWx0V2lkdGhYPXYuZGVmYXVsdFdpZHRoWCxyLm5vbWluYWxXaWR0aFg9di5ub21pbmFsV2lkdGhYLDAhPT12LnN1YnJzKXt2YXIgeT1NZShlLG0rdi5zdWJycyk7ci5zdWJycz15Lm9iamVjdHMsci5zdWJyc0JpYXM9U2Uoci5zdWJycyl9ZWxzZSByLnN1YnJzPVtdLHIuc3VicnNCaWFzPTA7dmFyIGc9TWUoZSx0K2MuY2hhclN0cmluZ3MpO3IubkdseXBocz1nLm9iamVjdHMubGVuZ3RoO3ZhciBiPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuLGEsbz1uZXcgc2UuUGFyc2VyKGUsdCk7LS1yO3ZhciBzPVtcIi5ub3RkZWZcIl0sbD1vLnBhcnNlQ2FyZDgoKTtpZigwPT09bClmb3IodmFyIHU9MDt1PHI7dSs9MSluPW8ucGFyc2VTSUQoKSxzLnB1c2goQ2UoaSxuKSk7ZWxzZSBpZigxPT09bClmb3IoO3MubGVuZ3RoPD1yOyl7bj1vLnBhcnNlU0lEKCksYT1vLnBhcnNlQ2FyZDgoKTtmb3IodmFyIGg9MDtoPD1hO2grPTEpcy5wdXNoKENlKGksbikpLG4rPTF9ZWxzZXtpZigyIT09bCl0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGNoYXJzZXQgZm9ybWF0IFwiK2wpO2Zvcig7cy5sZW5ndGg8PXI7KXtuPW8ucGFyc2VTSUQoKSxhPW8ucGFyc2VDYXJkMTYoKTtmb3IodmFyIGM9MDtjPD1hO2MrPTEpcy5wdXNoKENlKGksbikpLG4rPTF9fXJldHVybiBzfShlLHQrYy5jaGFyc2V0LHIubkdseXBocyxsLm9iamVjdHMpOzA9PT1jLmVuY29kaW5nP3IuY2ZmRW5jb2Rpbmc9bmV3IG1lKGhlLGIpOjE9PT1jLmVuY29kaW5nP3IuY2ZmRW5jb2Rpbmc9bmV3IG1lKGNlLGIpOnIuY2ZmRW5jb2Rpbmc9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpLG49e30sYT1uZXcgc2UuUGFyc2VyKGUsdCksbz1hLnBhcnNlQ2FyZDgoKTtpZigwPT09bylmb3IodmFyIHM9YS5wYXJzZUNhcmQ4KCksbD0wO2w8cztsKz0xKW5baT1hLnBhcnNlQ2FyZDgoKV09bDtlbHNle2lmKDEhPT1vKXRocm93IG5ldyBFcnJvcihcIlVua25vd24gZW5jb2RpbmcgZm9ybWF0IFwiK28pO3ZhciB1PWEucGFyc2VDYXJkOCgpO2k9MTtmb3IodmFyIGg9MDtoPHU7aCs9MSlmb3IodmFyIGM9YS5wYXJzZUNhcmQ4KCksZj1hLnBhcnNlQ2FyZDgoKSxkPWM7ZDw9YytmO2QrPTEpbltkXT1pLGkrPTF9cmV0dXJuIG5ldyBtZShuLHIpfShlLHQrYy5lbmNvZGluZyxiKSxyLmVuY29kaW5nPXIuZW5jb2Rpbmd8fHIuY2ZmRW5jb2Rpbmcsci5nbHlwaHM9bmV3IHhlLkdseXBoU2V0KHIpO2Zvcih2YXIgXz0wO188ci5uR2x5cGhzO18rPTEpe3ZhciB4PWcub2JqZWN0c1tfXTtyLmdseXBocy5wdXNoKF8seGUuY2ZmR2x5cGhMb2FkZXIocixfLGtlLHgpKX19LG1ha2U6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIsaT1uZXcgJC5UYWJsZShcIkNGRiBcIixbe25hbWU6XCJoZWFkZXJcIix0eXBlOlwiUkVDT1JEXCJ9LHtuYW1lOlwibmFtZUluZGV4XCIsdHlwZTpcIlJFQ09SRFwifSx7bmFtZTpcInRvcERpY3RJbmRleFwiLHR5cGU6XCJSRUNPUkRcIn0se25hbWU6XCJzdHJpbmdJbmRleFwiLHR5cGU6XCJSRUNPUkRcIn0se25hbWU6XCJnbG9iYWxTdWJySW5kZXhcIix0eXBlOlwiUkVDT1JEXCJ9LHtuYW1lOlwiY2hhcnNldHNcIix0eXBlOlwiUkVDT1JEXCJ9LHtuYW1lOlwiY2hhclN0cmluZ3NJbmRleFwiLHR5cGU6XCJSRUNPUkRcIn0se25hbWU6XCJwcml2YXRlRGljdFwiLHR5cGU6XCJSRUNPUkRcIn1dKSxuPTEvdC51bml0c1BlckVtLGE9e3ZlcnNpb246dC52ZXJzaW9uLGZ1bGxOYW1lOnQuZnVsbE5hbWUsZmFtaWx5TmFtZTp0LmZhbWlseU5hbWUsd2VpZ2h0OnQud2VpZ2h0TmFtZSxmb250QkJveDp0LmZvbnRCQm94fHxbMCwwLDAsMF0sZm9udE1hdHJpeDpbbiwwLDAsbiwwLDBdLGNoYXJzZXQ6OTk5LGVuY29kaW5nOjAsY2hhclN0cmluZ3M6OTk5LHByaXZhdGU6WzAsOTk5XX0sbz1bXSxzPTE7czxlLmxlbmd0aDtzKz0xKXI9ZS5nZXQocyksby5wdXNoKHIubmFtZSk7dmFyIGw9W107aS5oZWFkZXI9bmV3ICQuUmVjb3JkKFwiSGVhZGVyXCIsW3tuYW1lOlwibWFqb3JcIix0eXBlOlwiQ2FyZDhcIix2YWx1ZToxfSx7bmFtZTpcIm1pbm9yXCIsdHlwZTpcIkNhcmQ4XCIsdmFsdWU6MH0se25hbWU6XCJoZHJTaXplXCIsdHlwZTpcIkNhcmQ4XCIsdmFsdWU6NH0se25hbWU6XCJtYWpvclwiLHR5cGU6XCJDYXJkOFwiLHZhbHVlOjF9XSksaS5uYW1lSW5kZXg9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3ICQuUmVjb3JkKFwiTmFtZSBJTkRFWFwiLFt7bmFtZTpcIm5hbWVzXCIsdHlwZTpcIklOREVYXCIsdmFsdWU6W119XSk7dC5uYW1lcz1bXTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrPTEpdC5uYW1lcy5wdXNoKHtuYW1lOlwibmFtZV9cIityLHR5cGU6XCJOQU1FXCIsdmFsdWU6ZVtyXX0pO3JldHVybiB0fShbdC5wb3N0U2NyaXB0TmFtZV0pO3ZhciB1LGgsYyxmPVVlKGEsbCk7aS50b3BEaWN0SW5kZXg9TmUoZiksaS5nbG9iYWxTdWJySW5kZXg9bmV3ICQuUmVjb3JkKFwiR2xvYmFsIFN1YnIgSU5ERVhcIixbe25hbWU6XCJzdWJyc1wiLHR5cGU6XCJJTkRFWFwiLHZhbHVlOltdfV0pLGkuY2hhcnNldHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9bmV3ICQuUmVjb3JkKFwiQ2hhcnNldHNcIixbe25hbWU6XCJmb3JtYXRcIix0eXBlOlwiQ2FyZDhcIix2YWx1ZTowfV0pLGk9MDtpPGUubGVuZ3RoO2krPTEpe3ZhciBuPUFlKGVbaV0sdCk7ci5maWVsZHMucHVzaCh7bmFtZTpcImdseXBoX1wiK2ksdHlwZTpcIlNJRFwiLHZhbHVlOm59KX1yZXR1cm4gcn0obyxsKSxpLmNoYXJTdHJpbmdzSW5kZXg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyAkLlJlY29yZChcIkNoYXJTdHJpbmdzIElOREVYXCIsW3tuYW1lOlwiY2hhclN0cmluZ3NcIix0eXBlOlwiSU5ERVhcIix2YWx1ZTpbXX1dKSxyPTA7cjxlLmxlbmd0aDtyKz0xKXt2YXIgaT1lLmdldChyKSxuPUZlKGkpO3QuY2hhclN0cmluZ3MucHVzaCh7bmFtZTppLm5hbWUsdHlwZTpcIkNIQVJTVFJJTkdcIix2YWx1ZTpufSl9cmV0dXJuIHR9KGUpLGkucHJpdmF0ZURpY3Q9KHU9e30saD1sLChjPW5ldyAkLlJlY29yZChcIlByaXZhdGUgRElDVFwiLFt7bmFtZTpcImRpY3RcIix0eXBlOlwiRElDVFwiLHZhbHVlOnt9fV0pKS5kaWN0PUllKFBlLHUsaCksYyksaS5zdHJpbmdJbmRleD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgJC5SZWNvcmQoXCJTdHJpbmcgSU5ERVhcIixbe25hbWU6XCJzdHJpbmdzXCIsdHlwZTpcIklOREVYXCIsdmFsdWU6W119XSk7dC5zdHJpbmdzPVtdO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cis9MSl0LnN0cmluZ3MucHVzaCh7bmFtZTpcInN0cmluZ19cIityLHR5cGU6XCJTVFJJTkdcIix2YWx1ZTplW3JdfSk7cmV0dXJuIHR9KGwpO3ZhciBkPWkuaGVhZGVyLnNpemVPZigpK2kubmFtZUluZGV4LnNpemVPZigpK2kudG9wRGljdEluZGV4LnNpemVPZigpK2kuc3RyaW5nSW5kZXguc2l6ZU9mKCkraS5nbG9iYWxTdWJySW5kZXguc2l6ZU9mKCk7cmV0dXJuIGEuY2hhcnNldD1kLGEuZW5jb2Rpbmc9MCxhLmNoYXJTdHJpbmdzPWEuY2hhcnNldCtpLmNoYXJzZXRzLnNpemVPZigpLGEucHJpdmF0ZVsxXT1hLmNoYXJTdHJpbmdzK2kuY2hhclN0cmluZ3NJbmRleC5zaXplT2YoKSxmPVVlKGEsbCksaS50b3BEaWN0SW5kZXg9TmUoZiksaX19O3ZhciBHZT17cGFyc2U6ZnVuY3Rpb24oZSx0KXt2YXIgcj17fSxpPW5ldyBzZS5QYXJzZXIoZSx0KTtyZXR1cm4gci52ZXJzaW9uPWkucGFyc2VWZXJzaW9uKCksci5mb250UmV2aXNpb249TWF0aC5yb3VuZCgxZTMqaS5wYXJzZUZpeGVkKCkpLzFlMyxyLmNoZWNrU3VtQWRqdXN0bWVudD1pLnBhcnNlVUxvbmcoKSxyLm1hZ2ljTnVtYmVyPWkucGFyc2VVTG9uZygpLFAuYXJndW1lbnQoMTU5NDgzNDE2NT09PXIubWFnaWNOdW1iZXIsXCJGb250IGhlYWRlciBoYXMgd3JvbmcgbWFnaWMgbnVtYmVyLlwiKSxyLmZsYWdzPWkucGFyc2VVU2hvcnQoKSxyLnVuaXRzUGVyRW09aS5wYXJzZVVTaG9ydCgpLHIuY3JlYXRlZD1pLnBhcnNlTG9uZ0RhdGVUaW1lKCksci5tb2RpZmllZD1pLnBhcnNlTG9uZ0RhdGVUaW1lKCksci54TWluPWkucGFyc2VTaG9ydCgpLHIueU1pbj1pLnBhcnNlU2hvcnQoKSxyLnhNYXg9aS5wYXJzZVNob3J0KCksci55TWF4PWkucGFyc2VTaG9ydCgpLHIubWFjU3R5bGU9aS5wYXJzZVVTaG9ydCgpLHIubG93ZXN0UmVjUFBFTT1pLnBhcnNlVVNob3J0KCksci5mb250RGlyZWN0aW9uSGludD1pLnBhcnNlU2hvcnQoKSxyLmluZGV4VG9Mb2NGb3JtYXQ9aS5wYXJzZVNob3J0KCksci5nbHlwaERhdGFGb3JtYXQ9aS5wYXJzZVNob3J0KCkscn0sbWFrZTpmdW5jdGlvbihlKXt2YXIgdD1NYXRoLnJvdW5kKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFlMykrMjA4Mjg0NDgwMCxyPXQ7cmV0dXJuIGUuY3JlYXRlZFRpbWVzdGFtcCYmKHI9ZS5jcmVhdGVkVGltZXN0YW1wKzIwODI4NDQ4MDApLG5ldyAkLlRhYmxlKFwiaGVhZFwiLFt7bmFtZTpcInZlcnNpb25cIix0eXBlOlwiRklYRURcIix2YWx1ZTo2NTUzNn0se25hbWU6XCJmb250UmV2aXNpb25cIix0eXBlOlwiRklYRURcIix2YWx1ZTo2NTUzNn0se25hbWU6XCJjaGVja1N1bUFkanVzdG1lbnRcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcIm1hZ2ljTnVtYmVyXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6MTU5NDgzNDE2NX0se25hbWU6XCJmbGFnc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInVuaXRzUGVyRW1cIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MWUzfSx7bmFtZTpcImNyZWF0ZWRcIix0eXBlOlwiTE9OR0RBVEVUSU1FXCIsdmFsdWU6cn0se25hbWU6XCJtb2RpZmllZFwiLHR5cGU6XCJMT05HREFURVRJTUVcIix2YWx1ZTp0fSx7bmFtZTpcInhNaW5cIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInlNaW5cIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInhNYXhcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInlNYXhcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcIm1hY1N0eWxlXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwibG93ZXN0UmVjUFBFTVwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcImZvbnREaXJlY3Rpb25IaW50XCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6Mn0se25hbWU6XCJpbmRleFRvTG9jRm9ybWF0XCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJnbHlwaERhdGFGb3JtYXRcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfV0sZSl9fTt2YXIgamU9e3BhcnNlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9e30saT1uZXcgc2UuUGFyc2VyKGUsdCk7cmV0dXJuIHIudmVyc2lvbj1pLnBhcnNlVmVyc2lvbigpLHIuYXNjZW5kZXI9aS5wYXJzZVNob3J0KCksci5kZXNjZW5kZXI9aS5wYXJzZVNob3J0KCksci5saW5lR2FwPWkucGFyc2VTaG9ydCgpLHIuYWR2YW5jZVdpZHRoTWF4PWkucGFyc2VVU2hvcnQoKSxyLm1pbkxlZnRTaWRlQmVhcmluZz1pLnBhcnNlU2hvcnQoKSxyLm1pblJpZ2h0U2lkZUJlYXJpbmc9aS5wYXJzZVNob3J0KCksci54TWF4RXh0ZW50PWkucGFyc2VTaG9ydCgpLHIuY2FyZXRTbG9wZVJpc2U9aS5wYXJzZVNob3J0KCksci5jYXJldFNsb3BlUnVuPWkucGFyc2VTaG9ydCgpLHIuY2FyZXRPZmZzZXQ9aS5wYXJzZVNob3J0KCksaS5yZWxhdGl2ZU9mZnNldCs9OCxyLm1ldHJpY0RhdGFGb3JtYXQ9aS5wYXJzZVNob3J0KCksci5udW1iZXJPZkhNZXRyaWNzPWkucGFyc2VVU2hvcnQoKSxyfSxtYWtlOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJC5UYWJsZShcImhoZWFcIixbe25hbWU6XCJ2ZXJzaW9uXCIsdHlwZTpcIkZJWEVEXCIsdmFsdWU6NjU1MzZ9LHtuYW1lOlwiYXNjZW5kZXJcIix0eXBlOlwiRldPUkRcIix2YWx1ZTowfSx7bmFtZTpcImRlc2NlbmRlclwiLHR5cGU6XCJGV09SRFwiLHZhbHVlOjB9LHtuYW1lOlwibGluZUdhcFwiLHR5cGU6XCJGV09SRFwiLHZhbHVlOjB9LHtuYW1lOlwiYWR2YW5jZVdpZHRoTWF4XCIsdHlwZTpcIlVGV09SRFwiLHZhbHVlOjB9LHtuYW1lOlwibWluTGVmdFNpZGVCZWFyaW5nXCIsdHlwZTpcIkZXT1JEXCIsdmFsdWU6MH0se25hbWU6XCJtaW5SaWdodFNpZGVCZWFyaW5nXCIsdHlwZTpcIkZXT1JEXCIsdmFsdWU6MH0se25hbWU6XCJ4TWF4RXh0ZW50XCIsdHlwZTpcIkZXT1JEXCIsdmFsdWU6MH0se25hbWU6XCJjYXJldFNsb3BlUmlzZVwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjF9LHtuYW1lOlwiY2FyZXRTbG9wZVJ1blwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwiY2FyZXRPZmZzZXRcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInJlc2VydmVkMVwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwicmVzZXJ2ZWQyXCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJyZXNlcnZlZDNcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInJlc2VydmVkNFwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwibWV0cmljRGF0YUZvcm1hdFwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwibnVtYmVyT2ZITWV0cmljc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfV0sZSl9fTt2YXIgVmU9e3BhcnNlOmZ1bmN0aW9uKGUsdCxyLGksbil7Zm9yKHZhciBhLG8scz1uZXcgc2UuUGFyc2VyKGUsdCksbD0wO2w8aTtsKz0xKXtsPHImJihhPXMucGFyc2VVU2hvcnQoKSxvPXMucGFyc2VTaG9ydCgpKTt2YXIgdT1uLmdldChsKTt1LmFkdmFuY2VXaWR0aD1hLHUubGVmdFNpZGVCZWFyaW5nPW99fSxtYWtlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgJC5UYWJsZShcImhtdHhcIixbXSkscj0wO3I8ZS5sZW5ndGg7cis9MSl7dmFyIGk9ZS5nZXQociksbj1pLmFkdmFuY2VXaWR0aHx8MCxhPWkubGVmdFNpZGVCZWFyaW5nfHwwO3QuZmllbGRzLnB1c2goe25hbWU6XCJhZHZhbmNlV2lkdGhfXCIrcix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6bn0pLHQuZmllbGRzLnB1c2goe25hbWU6XCJsZWZ0U2lkZUJlYXJpbmdfXCIrcix0eXBlOlwiU0hPUlRcIix2YWx1ZTphfSl9cmV0dXJuIHR9fTt2YXIgemU9e21ha2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyAkLlRhYmxlKFwibHRhZ1wiLFt7bmFtZTpcInZlcnNpb25cIix0eXBlOlwiVUxPTkdcIix2YWx1ZToxfSx7bmFtZTpcImZsYWdzXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6MH0se25hbWU6XCJudW1UYWdzXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6ZS5sZW5ndGh9XSkscj1cIlwiLGk9MTIrNCplLmxlbmd0aCxuPTA7bjxlLmxlbmd0aDsrK24pe3ZhciBhPXIuaW5kZXhPZihlW25dKTthPDAmJihhPXIubGVuZ3RoLHIrPWVbbl0pLHQuZmllbGRzLnB1c2goe25hbWU6XCJvZmZzZXQgXCIrbix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6aSthfSksdC5maWVsZHMucHVzaCh7bmFtZTpcImxlbmd0aCBcIituLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTplW25dLmxlbmd0aH0pfXJldHVybiB0LmZpZWxkcy5wdXNoKHtuYW1lOlwic3RyaW5nUG9vbFwiLHR5cGU6XCJDSEFSQVJSQVlcIix2YWx1ZTpyfSksdH0scGFyc2U6ZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgc2UuUGFyc2VyKGUsdCksaT1yLnBhcnNlVUxvbmcoKTtQLmFyZ3VtZW50KDE9PT1pLFwiVW5zdXBwb3J0ZWQgbHRhZyB0YWJsZSB2ZXJzaW9uLlwiKSxyLnNraXAoXCJ1TG9uZ1wiLDEpO2Zvcih2YXIgbj1yLnBhcnNlVUxvbmcoKSxhPVtdLG89MDtvPG47bysrKXtmb3IodmFyIHM9XCJcIixsPXQrci5wYXJzZVVTaG9ydCgpLHU9ci5wYXJzZVVTaG9ydCgpLGg9bDtoPGwrdTsrK2gpcys9U3RyaW5nLmZyb21DaGFyQ29kZShlLmdldEludDgoaCkpO2EucHVzaChzKX1yZXR1cm4gYX19O3ZhciBIZT17cGFyc2U6ZnVuY3Rpb24oZSx0KXt2YXIgcj17fSxpPW5ldyBzZS5QYXJzZXIoZSx0KTtyZXR1cm4gci52ZXJzaW9uPWkucGFyc2VWZXJzaW9uKCksci5udW1HbHlwaHM9aS5wYXJzZVVTaG9ydCgpLDE9PT1yLnZlcnNpb24mJihyLm1heFBvaW50cz1pLnBhcnNlVVNob3J0KCksci5tYXhDb250b3Vycz1pLnBhcnNlVVNob3J0KCksci5tYXhDb21wb3NpdGVQb2ludHM9aS5wYXJzZVVTaG9ydCgpLHIubWF4Q29tcG9zaXRlQ29udG91cnM9aS5wYXJzZVVTaG9ydCgpLHIubWF4Wm9uZXM9aS5wYXJzZVVTaG9ydCgpLHIubWF4VHdpbGlnaHRQb2ludHM9aS5wYXJzZVVTaG9ydCgpLHIubWF4U3RvcmFnZT1pLnBhcnNlVVNob3J0KCksci5tYXhGdW5jdGlvbkRlZnM9aS5wYXJzZVVTaG9ydCgpLHIubWF4SW5zdHJ1Y3Rpb25EZWZzPWkucGFyc2VVU2hvcnQoKSxyLm1heFN0YWNrRWxlbWVudHM9aS5wYXJzZVVTaG9ydCgpLHIubWF4U2l6ZU9mSW5zdHJ1Y3Rpb25zPWkucGFyc2VVU2hvcnQoKSxyLm1heENvbXBvbmVudEVsZW1lbnRzPWkucGFyc2VVU2hvcnQoKSxyLm1heENvbXBvbmVudERlcHRoPWkucGFyc2VVU2hvcnQoKSkscn0sbWFrZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3ICQuVGFibGUoXCJtYXhwXCIsW3tuYW1lOlwidmVyc2lvblwiLHR5cGU6XCJGSVhFRFwiLHZhbHVlOjIwNDgwfSx7bmFtZTpcIm51bUdseXBoc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTplfV0pfX0sV2U9W1wiY29weXJpZ2h0XCIsXCJmb250RmFtaWx5XCIsXCJmb250U3ViZmFtaWx5XCIsXCJ1bmlxdWVJRFwiLFwiZnVsbE5hbWVcIixcInZlcnNpb25cIixcInBvc3RTY3JpcHROYW1lXCIsXCJ0cmFkZW1hcmtcIixcIm1hbnVmYWN0dXJlclwiLFwiZGVzaWduZXJcIixcImRlc2NyaXB0aW9uXCIsXCJtYW51ZmFjdHVyZXJVUkxcIixcImRlc2lnbmVyVVJMXCIsXCJsaWNlbnNlXCIsXCJsaWNlbnNlVVJMXCIsXCJyZXNlcnZlZFwiLFwicHJlZmVycmVkRmFtaWx5XCIsXCJwcmVmZXJyZWRTdWJmYW1pbHlcIixcImNvbXBhdGlibGVGdWxsTmFtZVwiLFwic2FtcGxlVGV4dFwiLFwicG9zdFNjcmlwdEZpbmRGb250TmFtZVwiLFwid3dzRmFtaWx5XCIsXCJ3d3NTdWJmYW1pbHlcIl0scWU9ezA6XCJlblwiLDE6XCJmclwiLDI6XCJkZVwiLDM6XCJpdFwiLDQ6XCJubFwiLDU6XCJzdlwiLDY6XCJlc1wiLDc6XCJkYVwiLDg6XCJwdFwiLDk6XCJub1wiLDEwOlwiaGVcIiwxMTpcImphXCIsMTI6XCJhclwiLDEzOlwiZmlcIiwxNDpcImVsXCIsMTU6XCJpc1wiLDE2OlwibXRcIiwxNzpcInRyXCIsMTg6XCJoclwiLDE5OlwiemgtSGFudFwiLDIwOlwidXJcIiwyMTpcImhpXCIsMjI6XCJ0aFwiLDIzOlwia29cIiwyNDpcImx0XCIsMjU6XCJwbFwiLDI2OlwiaHVcIiwyNzpcImVzXCIsMjg6XCJsdlwiLDI5Olwic2VcIiwzMDpcImZvXCIsMzE6XCJmYVwiLDMyOlwicnVcIiwzMzpcInpoXCIsMzQ6XCJubC1CRVwiLDM1OlwiZ2FcIiwzNjpcInNxXCIsMzc6XCJyb1wiLDM4OlwiY3pcIiwzOTpcInNrXCIsNDA6XCJzaVwiLDQxOlwieWlcIiw0MjpcInNyXCIsNDM6XCJta1wiLDQ0OlwiYmdcIiw0NTpcInVrXCIsNDY6XCJiZVwiLDQ3OlwidXpcIiw0ODpcImtrXCIsNDk6XCJhei1DeXJsXCIsNTA6XCJhei1BcmFiXCIsNTE6XCJoeVwiLDUyOlwia2FcIiw1MzpcIm1vXCIsNTQ6XCJreVwiLDU1OlwidGdcIiw1NjpcInRrXCIsNTc6XCJtbi1DTlwiLDU4OlwibW5cIiw1OTpcInBzXCIsNjA6XCJrc1wiLDYxOlwia3VcIiw2MjpcInNkXCIsNjM6XCJib1wiLDY0OlwibmVcIiw2NTpcInNhXCIsNjY6XCJtclwiLDY3OlwiYm5cIiw2ODpcImFzXCIsNjk6XCJndVwiLDcwOlwicGFcIiw3MTpcIm9yXCIsNzI6XCJtbFwiLDczOlwia25cIiw3NDpcInRhXCIsNzU6XCJ0ZVwiLDc2Olwic2lcIiw3NzpcIm15XCIsNzg6XCJrbVwiLDc5OlwibG9cIiw4MDpcInZpXCIsODE6XCJpZFwiLDgyOlwidGxcIiw4MzpcIm1zXCIsODQ6XCJtcy1BcmFiXCIsODU6XCJhbVwiLDg2OlwidGlcIiw4NzpcIm9tXCIsODg6XCJzb1wiLDg5Olwic3dcIiw5MDpcInJ3XCIsOTE6XCJyblwiLDkyOlwibnlcIiw5MzpcIm1nXCIsOTQ6XCJlb1wiLDEyODpcImN5XCIsMTI5OlwiZXVcIiwxMzA6XCJjYVwiLDEzMTpcImxhXCIsMTMyOlwicXVcIiwxMzM6XCJnblwiLDEzNDpcImF5XCIsMTM1OlwidHRcIiwxMzY6XCJ1Z1wiLDEzNzpcImR6XCIsMTM4OlwianZcIiwxMzk6XCJzdVwiLDE0MDpcImdsXCIsMTQxOlwiYWZcIiwxNDI6XCJiclwiLDE0MzpcIml1XCIsMTQ0OlwiZ2RcIiwxNDU6XCJndlwiLDE0NjpcImdhXCIsMTQ3OlwidG9cIiwxNDg6XCJlbC1wb2x5dG9uXCIsMTQ5Olwia2xcIiwxNTA6XCJhelwiLDE1MTpcIm5uXCJ9LFhlPXswOjAsMTowLDI6MCwzOjAsNDowLDU6MCw2OjAsNzowLDg6MCw5OjAsMTA6NSwxMToxLDEyOjQsMTM6MCwxNDo2LDE1OjAsMTY6MCwxNzowLDE4OjAsMTk6MiwyMDo0LDIxOjksMjI6MjEsMjM6MywyNDoyOSwyNToyOSwyNjoyOSwyNzoyOSwyODoyOSwyOTowLDMwOjAsMzE6NCwzMjo3LDMzOjI1LDM0OjAsMzU6MCwzNjowLDM3OjAsMzg6MjksMzk6MjksNDA6MCw0MTo1LDQyOjcsNDM6Nyw0NDo3LDQ1OjcsNDY6Nyw0Nzo3LDQ4OjcsNDk6Nyw1MDo0LDUxOjI0LDUyOjIzLDUzOjcsNTQ6Nyw1NTo3LDU2OjcsNTc6MjcsNTg6Nyw1OTo0LDYwOjQsNjE6NCw2Mjo0LDYzOjI2LDY0OjksNjU6OSw2Njo5LDY3OjEzLDY4OjEzLDY5OjExLDcwOjEwLDcxOjEyLDcyOjE3LDczOjE2LDc0OjE0LDc1OjE1LDc2OjE4LDc3OjE5LDc4OjIwLDc5OjIyLDgwOjMwLDgxOjAsODI6MCw4MzowLDg0OjQsODU6MjgsODY6MjgsODc6MjgsODg6MCw4OTowLDkwOjAsOTE6MCw5MjowLDkzOjAsOTQ6MCwxMjg6MCwxMjk6MCwxMzA6MCwxMzE6MCwxMzI6MCwxMzM6MCwxMzQ6MCwxMzU6NywxMzY6NCwxMzc6MjYsMTM4OjAsMTM5OjAsMTQwOjAsMTQxOjAsMTQyOjAsMTQzOjI4LDE0NDowLDE0NTowLDE0NjowLDE0NzowLDE0ODo2LDE0OTowLDE1MDowLDE1MTowfSxZZT17MTA3ODpcImFmXCIsMTA1MjpcInNxXCIsMTE1NjpcImdzd1wiLDExMTg6XCJhbVwiLDUxMjE6XCJhci1EWlwiLDE1MzYxOlwiYXItQkhcIiwzMDczOlwiYXJcIiwyMDQ5OlwiYXItSVFcIiwxMTI2NTpcImFyLUpPXCIsMTMzMTM6XCJhci1LV1wiLDEyMjg5OlwiYXItTEJcIiw0MDk3OlwiYXItTFlcIiw2MTQ1OlwiYXJ5XCIsODE5MzpcImFyLU9NXCIsMTYzODU6XCJhci1RQVwiLDEwMjU6XCJhci1TQVwiLDEwMjQxOlwiYXItU1lcIiw3MTY5OlwiYWViXCIsMTQzMzc6XCJhci1BRVwiLDkyMTc6XCJhci1ZRVwiLDEwNjc6XCJoeVwiLDExMDE6XCJhc1wiLDIwOTI6XCJhei1DeXJsXCIsMTA2ODpcImF6XCIsMTEzMzpcImJhXCIsMTA2OTpcImV1XCIsMTA1OTpcImJlXCIsMjExNzpcImJuXCIsMTA5MzpcImJuLUlOXCIsODIxODpcImJzLUN5cmxcIiw1MTQ2OlwiYnNcIiwxMTUwOlwiYnJcIiwxMDI2OlwiYmdcIiwxMDI3OlwiY2FcIiwzMDc2OlwiemgtSEtcIiw1MTI0OlwiemgtTU9cIiwyMDUyOlwiemhcIiw0MTAwOlwiemgtU0dcIiwxMDI4OlwiemgtVFdcIiwxMTU1OlwiY29cIiwxMDUwOlwiaHJcIiw0MTIyOlwiaHItQkFcIiwxMDI5OlwiY3NcIiwxMDMwOlwiZGFcIiwxMTY0OlwicHJzXCIsMTEyNTpcImR2XCIsMjA2NzpcIm5sLUJFXCIsMTA0MzpcIm5sXCIsMzA4MTpcImVuLUFVXCIsMTAyNDk6XCJlbi1CWlwiLDQxMDU6XCJlbi1DQVwiLDkyMjU6XCJlbi0wMjlcIiwxNjM5MzpcImVuLUlOXCIsNjE1MzpcImVuLUlFXCIsODIwMTpcImVuLUpNXCIsMTc0MTc6XCJlbi1NWVwiLDUxMjk6XCJlbi1OWlwiLDEzMzIxOlwiZW4tUEhcIiwxODQ0MTpcImVuLVNHXCIsNzE3NzpcImVuLVpBXCIsMTEyNzM6XCJlbi1UVFwiLDIwNTc6XCJlbi1HQlwiLDEwMzM6XCJlblwiLDEyMjk3OlwiZW4tWldcIiwxMDYxOlwiZXRcIiwxMDgwOlwiZm9cIiwxMTI0OlwiZmlsXCIsMTAzNTpcImZpXCIsMjA2MDpcImZyLUJFXCIsMzA4NDpcImZyLUNBXCIsMTAzNjpcImZyXCIsNTEzMjpcImZyLUxVXCIsNjE1NjpcImZyLU1DXCIsNDEwODpcImZyLUNIXCIsMTEyMjpcImZ5XCIsMTExMDpcImdsXCIsMTA3OTpcImthXCIsMzA3OTpcImRlLUFUXCIsMTAzMTpcImRlXCIsNTEyNzpcImRlLUxJXCIsNDEwMzpcImRlLUxVXCIsMjA1NTpcImRlLUNIXCIsMTAzMjpcImVsXCIsMTEzNTpcImtsXCIsMTA5NTpcImd1XCIsMTEyODpcImhhXCIsMTAzNzpcImhlXCIsMTA4MTpcImhpXCIsMTAzODpcImh1XCIsMTAzOTpcImlzXCIsMTEzNjpcImlnXCIsMTA1NzpcImlkXCIsMTExNzpcIml1XCIsMjE0MTpcIml1LUxhdG5cIiwyMTA4OlwiZ2FcIiwxMDc2OlwieGhcIiwxMDc3OlwienVcIiwxMDQwOlwiaXRcIiwyMDY0OlwiaXQtQ0hcIiwxMDQxOlwiamFcIiwxMDk5Olwia25cIiwxMDg3Olwia2tcIiwxMTA3Olwia21cIiwxMTU4OlwicXVjXCIsMTE1OTpcInJ3XCIsMTA4OTpcInN3XCIsMTExMTpcImtva1wiLDEwNDI6XCJrb1wiLDEwODg6XCJreVwiLDExMDg6XCJsb1wiLDEwNjI6XCJsdlwiLDEwNjM6XCJsdFwiLDIwOTQ6XCJkc2JcIiwxMTM0OlwibGJcIiwxMDcxOlwibWtcIiwyMTEwOlwibXMtQk5cIiwxMDg2OlwibXNcIiwxMTAwOlwibWxcIiwxMDgyOlwibXRcIiwxMTUzOlwibWlcIiwxMTQ2OlwiYXJuXCIsMTEwMjpcIm1yXCIsMTE0ODpcIm1vaFwiLDExMDQ6XCJtblwiLDIxMjg6XCJtbi1DTlwiLDExMjE6XCJuZVwiLDEwNDQ6XCJuYlwiLDIwNjg6XCJublwiLDExNTQ6XCJvY1wiLDEwOTY6XCJvclwiLDExMjM6XCJwc1wiLDEwNDU6XCJwbFwiLDEwNDY6XCJwdFwiLDIwNzA6XCJwdC1QVFwiLDEwOTQ6XCJwYVwiLDExMzE6XCJxdS1CT1wiLDIxNTU6XCJxdS1FQ1wiLDMxNzk6XCJxdVwiLDEwNDg6XCJyb1wiLDEwNDc6XCJybVwiLDEwNDk6XCJydVwiLDkyNzU6XCJzbW5cIiw0MTU1Olwic21qLU5PXCIsNTE3OTpcInNtalwiLDMxMzE6XCJzZS1GSVwiLDEwODM6XCJzZVwiLDIxMDc6XCJzZS1TRVwiLDgyNTE6XCJzbXNcIiw2MjAzOlwic21hLU5PXCIsNzIyNzpcInNtc1wiLDExMDM6XCJzYVwiLDcxOTQ6XCJzci1DeXJsLUJBXCIsMzA5ODpcInNyXCIsNjE3MDpcInNyLUxhdG4tQkFcIiwyMDc0Olwic3ItTGF0blwiLDExMzI6XCJuc29cIiwxMDc0OlwidG5cIiwxMTE1Olwic2lcIiwxMDUxOlwic2tcIiwxMDYwOlwic2xcIiwxMTI3NDpcImVzLUFSXCIsMTYzOTQ6XCJlcy1CT1wiLDEzMzIyOlwiZXMtQ0xcIiw5MjI2OlwiZXMtQ09cIiw1MTMwOlwiZXMtQ1JcIiw3MTc4OlwiZXMtRE9cIiwxMjI5ODpcImVzLUVDXCIsMTc0MTg6XCJlcy1TVlwiLDQxMDY6XCJlcy1HVFwiLDE4NDQyOlwiZXMtSE5cIiwyMDU4OlwiZXMtTVhcIiwxOTQ2NjpcImVzLU5JXCIsNjE1NDpcImVzLVBBXCIsMTUzNzA6XCJlcy1QWVwiLDEwMjUwOlwiZXMtUEVcIiwyMDQ5MDpcImVzLVBSXCIsMzA4MjpcImVzXCIsMTAzNDpcImVzXCIsMjE1MTQ6XCJlcy1VU1wiLDE0MzQ2OlwiZXMtVVlcIiw4MjAyOlwiZXMtVkVcIiwyMDc3Olwic3YtRklcIiwxMDUzOlwic3ZcIiwxMTE0Olwic3lyXCIsMTA2NDpcInRnXCIsMjE0MzpcInR6bVwiLDEwOTc6XCJ0YVwiLDEwOTI6XCJ0dFwiLDEwOTg6XCJ0ZVwiLDEwNTQ6XCJ0aFwiLDExMDU6XCJib1wiLDEwNTU6XCJ0clwiLDEwOTA6XCJ0a1wiLDExNTI6XCJ1Z1wiLDEwNTg6XCJ1a1wiLDEwNzA6XCJoc2JcIiwxMDU2OlwidXJcIiwyMTE1OlwidXotQ3lybFwiLDEwOTE6XCJ1elwiLDEwNjY6XCJ2aVwiLDExMDY6XCJjeVwiLDExNjA6XCJ3b1wiLDExNTc6XCJzYWhcIiwxMTQ0OlwiaWlcIiwxMTMwOlwieW9cIn07ZnVuY3Rpb24gWmUoZSx0LHIpe3N3aXRjaChlKXtjYXNlIDA6aWYoNjU1MzU9PT10KXJldHVyblwidW5kXCI7aWYocilyZXR1cm4gclt0XTticmVhaztjYXNlIDE6cmV0dXJuIHFlW3RdO2Nhc2UgMzpyZXR1cm4gWWVbdF19fXZhciBRZT1cInV0Zi0xNlwiLEtlPXswOlwibWFjaW50b3NoXCIsMTpcIngtbWFjLWphcGFuZXNlXCIsMjpcIngtbWFjLWNoaW5lc2V0cmFkXCIsMzpcIngtbWFjLWtvcmVhblwiLDY6XCJ4LW1hYy1ncmVla1wiLDc6XCJ4LW1hYy1jeXJpbGxpY1wiLDk6XCJ4LW1hYy1kZXZhbmFnYWlcIiwxMDpcIngtbWFjLWd1cm11a2hpXCIsMTE6XCJ4LW1hYy1ndWphcmF0aVwiLDEyOlwieC1tYWMtb3JpeWFcIiwxMzpcIngtbWFjLWJlbmdhbGlcIiwxNDpcIngtbWFjLXRhbWlsXCIsMTU6XCJ4LW1hYy10ZWx1Z3VcIiwxNjpcIngtbWFjLWthbm5hZGFcIiwxNzpcIngtbWFjLW1hbGF5YWxhbVwiLDE4OlwieC1tYWMtc2luaGFsZXNlXCIsMTk6XCJ4LW1hYy1idXJtZXNlXCIsMjA6XCJ4LW1hYy1raG1lclwiLDIxOlwieC1tYWMtdGhhaVwiLDIyOlwieC1tYWMtbGFvXCIsMjM6XCJ4LW1hYy1nZW9yZ2lhblwiLDI0OlwieC1tYWMtYXJtZW5pYW5cIiwyNTpcIngtbWFjLWNoaW5lc2VzaW1wXCIsMjY6XCJ4LW1hYy10aWJldGFuXCIsMjc6XCJ4LW1hYy1tb25nb2xpYW5cIiwyODpcIngtbWFjLWV0aGlvcGljXCIsMjk6XCJ4LW1hYy1jZVwiLDMwOlwieC1tYWMtdmlldG5hbWVzZVwiLDMxOlwieC1tYWMtZXh0YXJhYmljXCJ9LEplPXsxNTpcIngtbWFjLWljZWxhbmRpY1wiLDE3OlwieC1tYWMtdHVya2lzaFwiLDE4OlwieC1tYWMtY3JvYXRpYW5cIiwyNDpcIngtbWFjLWNlXCIsMjU6XCJ4LW1hYy1jZVwiLDI2OlwieC1tYWMtY2VcIiwyNzpcIngtbWFjLWNlXCIsMjg6XCJ4LW1hYy1jZVwiLDMwOlwieC1tYWMtaWNlbGFuZGljXCIsMzc6XCJ4LW1hYy1yb21hbmlhblwiLDM4OlwieC1tYWMtY2VcIiwzOTpcIngtbWFjLWNlXCIsNDA6XCJ4LW1hYy1jZVwiLDE0MzpcIngtbWFjLWludWl0XCIsMTQ2OlwieC1tYWMtZ2FlbGljXCJ9O2Z1bmN0aW9uICRlKGUsdCxyKXtzd2l0Y2goZSl7Y2FzZSAwOnJldHVybiBRZTtjYXNlIDE6cmV0dXJuIEplW3JdfHxLZVt0XTtjYXNlIDM6aWYoMT09PXR8fDEwPT09dClyZXR1cm4gUWV9fWZ1bmN0aW9uIGV0KGUpe3ZhciB0PXt9O2Zvcih2YXIgciBpbiBlKXRbZVtyXV09cGFyc2VJbnQocik7cmV0dXJuIHR9ZnVuY3Rpb24gdHQoZSx0LHIsaSxuLGEpe3JldHVybiBuZXcgJC5SZWNvcmQoXCJOYW1lUmVjb3JkXCIsW3tuYW1lOlwicGxhdGZvcm1JRFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTplfSx7bmFtZTpcImVuY29kaW5nSURcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6dH0se25hbWU6XCJsYW5ndWFnZUlEXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOnJ9LHtuYW1lOlwibmFtZUlEXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOml9LHtuYW1lOlwibGVuZ3RoXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOm59LHtuYW1lOlwib2Zmc2V0XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOmF9XSl9ZnVuY3Rpb24gcnQoZSx0KXt2YXIgcj1mdW5jdGlvbihlLHQpe3ZhciByPWUubGVuZ3RoLGk9dC5sZW5ndGgtcisxO2U6Zm9yKHZhciBuPTA7bjxpO24rKylmb3IoO248aTtuKyspe2Zvcih2YXIgYT0wO2E8cjthKyspaWYodFtuK2FdIT09ZVthXSljb250aW51ZSBlO3JldHVybiBufXJldHVybi0xfShlLHQpO2lmKHI8MCl7cj10Lmxlbmd0aDtmb3IodmFyIGk9MCxuPWUubGVuZ3RoO2k8bjsrK2kpdC5wdXNoKGVbaV0pfXJldHVybiByfXZhciBpdD17cGFyc2U6ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT17fSxuPW5ldyBzZS5QYXJzZXIoZSx0KSxhPW4ucGFyc2VVU2hvcnQoKSxvPW4ucGFyc2VVU2hvcnQoKSxzPW4ub2Zmc2V0K24ucGFyc2VVU2hvcnQoKSxsPTA7bDxvO2wrKyl7dmFyIHU9bi5wYXJzZVVTaG9ydCgpLGg9bi5wYXJzZVVTaG9ydCgpLGM9bi5wYXJzZVVTaG9ydCgpLGY9bi5wYXJzZVVTaG9ydCgpLGQ9V2VbZl18fGYscD1uLnBhcnNlVVNob3J0KCksbT1uLnBhcnNlVVNob3J0KCksdj1aZSh1LGMscikseT0kZSh1LGgsYyk7aWYodm9pZCAwIT09eSYmdm9pZCAwIT09dil7dmFyIGc9dm9pZCAwO2lmKGc9eT09PVFlP0QuVVRGMTYoZSxzK20scCk6RC5NQUNTVFJJTkcoZSxzK20scCx5KSl7dmFyIGI9aVtkXTt2b2lkIDA9PT1iJiYoYj1pW2RdPXt9KSxiW3ZdPWd9fX1yZXR1cm4gMT09PWEmJm4ucGFyc2VVU2hvcnQoKSxpfSxtYWtlOmZ1bmN0aW9uKGUsdCl7dmFyIHIsaT1bXSxuPXt9LGE9ZXQoV2UpO2Zvcih2YXIgbyBpbiBlKXt2YXIgcz1hW29dO2lmKHZvaWQgMD09PXMmJihzPW8pLHI9cGFyc2VJbnQocyksaXNOYU4ocikpdGhyb3cgbmV3IEVycm9yKCdOYW1lIHRhYmxlIGVudHJ5IFwiJytvKydcIiBkb2VzIG5vdCBleGlzdCwgc2VlIG5hbWVUYWJsZU5hbWVzIGZvciBjb21wbGV0ZSBsaXN0LicpO25bcl09ZVtvXSxpLnB1c2gocil9Zm9yKHZhciBsPWV0KHFlKSx1PWV0KFllKSxoPVtdLGM9W10sZj0wO2Y8aS5sZW5ndGg7ZisrKXt2YXIgZD1uW3I9aVtmXV07Zm9yKHZhciBwIGluIGQpe3ZhciBtPWRbcF0sdj0xLHk9bFtwXSxnPVhlW3ldLGI9JGUodixnLHkpLF89ay5NQUNTVFJJTkcobSxiKTt2b2lkIDA9PT1fJiYodj0wLCh5PXQuaW5kZXhPZihwKSk8MCYmKHk9dC5sZW5ndGgsdC5wdXNoKHApKSxnPTQsXz1rLlVURjE2KG0pKTt2YXIgeD1ydChfLGMpO2gucHVzaCh0dCh2LGcseSxyLF8ubGVuZ3RoLHgpKTt2YXIgdz11W3BdO2lmKHZvaWQgMCE9PXcpe3ZhciBTPWsuVVRGMTYobSksTT1ydChTLGMpO2gucHVzaCh0dCgzLDEsdyxyLFMubGVuZ3RoLE0pKX19fWguc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLnBsYXRmb3JtSUQtdC5wbGF0Zm9ybUlEfHxlLmVuY29kaW5nSUQtdC5lbmNvZGluZ0lEfHxlLmxhbmd1YWdlSUQtdC5sYW5ndWFnZUlEfHxlLm5hbWVJRC10Lm5hbWVJRH0pO2Zvcih2YXIgVD1uZXcgJC5UYWJsZShcIm5hbWVcIixbe25hbWU6XCJmb3JtYXRcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJjb3VudFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTpoLmxlbmd0aH0se25hbWU6XCJzdHJpbmdPZmZzZXRcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6NisxMipoLmxlbmd0aH1dKSxFPTA7RTxoLmxlbmd0aDtFKyspVC5maWVsZHMucHVzaCh7bmFtZTpcInJlY29yZF9cIitFLHR5cGU6XCJSRUNPUkRcIix2YWx1ZTpoW0VdfSk7cmV0dXJuIFQuZmllbGRzLnB1c2goe25hbWU6XCJzdHJpbmdzXCIsdHlwZTpcIkxJVEVSQUxcIix2YWx1ZTpjfSksVH19LG50PVt7YmVnaW46MCxlbmQ6MTI3fSx7YmVnaW46MTI4LGVuZDoyNTV9LHtiZWdpbjoyNTYsZW5kOjM4M30se2JlZ2luOjM4NCxlbmQ6NTkxfSx7YmVnaW46NTkyLGVuZDo2ODd9LHtiZWdpbjo2ODgsZW5kOjc2N30se2JlZ2luOjc2OCxlbmQ6ODc5fSx7YmVnaW46ODgwLGVuZDoxMDIzfSx7YmVnaW46MTEzOTIsZW5kOjExNTE5fSx7YmVnaW46MTAyNCxlbmQ6MTI3OX0se2JlZ2luOjEzMjgsZW5kOjE0MjN9LHtiZWdpbjoxNDI0LGVuZDoxNTM1fSx7YmVnaW46NDIyNDAsZW5kOjQyNTU5fSx7YmVnaW46MTUzNixlbmQ6MTc5MX0se2JlZ2luOjE5ODQsZW5kOjIwNDd9LHtiZWdpbjoyMzA0LGVuZDoyNDMxfSx7YmVnaW46MjQzMixlbmQ6MjU1OX0se2JlZ2luOjI1NjAsZW5kOjI2ODd9LHtiZWdpbjoyNjg4LGVuZDoyODE1fSx7YmVnaW46MjgxNixlbmQ6Mjk0M30se2JlZ2luOjI5NDQsZW5kOjMwNzF9LHtiZWdpbjozMDcyLGVuZDozMTk5fSx7YmVnaW46MzIwMCxlbmQ6MzMyN30se2JlZ2luOjMzMjgsZW5kOjM0NTV9LHtiZWdpbjozNTg0LGVuZDozNzExfSx7YmVnaW46MzcxMixlbmQ6MzgzOX0se2JlZ2luOjQyNTYsZW5kOjQzNTF9LHtiZWdpbjo2OTEyLGVuZDo3MDM5fSx7YmVnaW46NDM1MixlbmQ6NDYwN30se2JlZ2luOjc2ODAsZW5kOjc5MzV9LHtiZWdpbjo3OTM2LGVuZDo4MTkxfSx7YmVnaW46ODE5MixlbmQ6ODMwM30se2JlZ2luOjgzMDQsZW5kOjgzNTF9LHtiZWdpbjo4MzUyLGVuZDo4Mzk5fSx7YmVnaW46ODQwMCxlbmQ6ODQ0N30se2JlZ2luOjg0NDgsZW5kOjg1Mjd9LHtiZWdpbjo4NTI4LGVuZDo4NTkxfSx7YmVnaW46ODU5MixlbmQ6ODcwM30se2JlZ2luOjg3MDQsZW5kOjg5NTl9LHtiZWdpbjo4OTYwLGVuZDo5MjE1fSx7YmVnaW46OTIxNixlbmQ6OTI3OX0se2JlZ2luOjkyODAsZW5kOjkzMTF9LHtiZWdpbjo5MzEyLGVuZDo5NDcxfSx7YmVnaW46OTQ3MixlbmQ6OTU5OX0se2JlZ2luOjk2MDAsZW5kOjk2MzF9LHtiZWdpbjo5NjMyLGVuZDo5NzI3fSx7YmVnaW46OTcyOCxlbmQ6OTk4M30se2JlZ2luOjk5ODQsZW5kOjEwMTc1fSx7YmVnaW46MTIyODgsZW5kOjEyMzUxfSx7YmVnaW46MTIzNTIsZW5kOjEyNDQ3fSx7YmVnaW46MTI0NDgsZW5kOjEyNTQzfSx7YmVnaW46MTI1NDQsZW5kOjEyNTkxfSx7YmVnaW46MTI1OTIsZW5kOjEyNjg3fSx7YmVnaW46NDMwNzIsZW5kOjQzMTM1fSx7YmVnaW46MTI4MDAsZW5kOjEzMDU1fSx7YmVnaW46MTMwNTYsZW5kOjEzMzExfSx7YmVnaW46NDQwMzIsZW5kOjU1MjE1fSx7YmVnaW46NTUyOTYsZW5kOjU3MzQzfSx7YmVnaW46Njc4NDAsZW5kOjY3ODcxfSx7YmVnaW46MTk5NjgsZW5kOjQwOTU5fSx7YmVnaW46NTczNDQsZW5kOjYzNzQzfSx7YmVnaW46MTI3MzYsZW5kOjEyNzgzfSx7YmVnaW46NjQyNTYsZW5kOjY0MzM1fSx7YmVnaW46NjQzMzYsZW5kOjY1MDIzfSx7YmVnaW46NjUwNTYsZW5kOjY1MDcxfSx7YmVnaW46NjUwNDAsZW5kOjY1MDU1fSx7YmVnaW46NjUxMDQsZW5kOjY1MTM1fSx7YmVnaW46NjUxMzYsZW5kOjY1Mjc5fSx7YmVnaW46NjUyODAsZW5kOjY1NTE5fSx7YmVnaW46NjU1MjAsZW5kOjY1NTM1fSx7YmVnaW46Mzg0MCxlbmQ6NDA5NX0se2JlZ2luOjE3OTIsZW5kOjE4NzF9LHtiZWdpbjoxOTIwLGVuZDoxOTgzfSx7YmVnaW46MzQ1NixlbmQ6MzU4M30se2JlZ2luOjQwOTYsZW5kOjQyNTV9LHtiZWdpbjo0NjA4LGVuZDo0OTkxfSx7YmVnaW46NTAyNCxlbmQ6NTExOX0se2JlZ2luOjUxMjAsZW5kOjU3NTl9LHtiZWdpbjo1NzYwLGVuZDo1NzkxfSx7YmVnaW46NTc5MixlbmQ6NTg4N30se2JlZ2luOjYwMTYsZW5kOjYxNDN9LHtiZWdpbjo2MTQ0LGVuZDo2MzE5fSx7YmVnaW46MTAyNDAsZW5kOjEwNDk1fSx7YmVnaW46NDA5NjAsZW5kOjQyMTI3fSx7YmVnaW46NTg4OCxlbmQ6NTkxOX0se2JlZ2luOjY2MzA0LGVuZDo2NjM1MX0se2JlZ2luOjY2MzUyLGVuZDo2NjM4M30se2JlZ2luOjY2NTYwLGVuZDo2NjYzOX0se2JlZ2luOjExODc4NCxlbmQ6MTE5MDM5fSx7YmVnaW46MTE5ODA4LGVuZDoxMjA4MzF9LHtiZWdpbjoxMDQ0NDgwLGVuZDoxMDQ4NTczfSx7YmVnaW46NjUwMjQsZW5kOjY1MDM5fSx7YmVnaW46OTE3NTA0LGVuZDo5MTc2MzF9LHtiZWdpbjo2NDAwLGVuZDo2NDc5fSx7YmVnaW46NjQ4MCxlbmQ6NjUyN30se2JlZ2luOjY1MjgsZW5kOjY2MjN9LHtiZWdpbjo2NjU2LGVuZDo2Njg3fSx7YmVnaW46MTEyNjQsZW5kOjExMzU5fSx7YmVnaW46MTE1NjgsZW5kOjExNjQ3fSx7YmVnaW46MTk5MDQsZW5kOjE5OTY3fSx7YmVnaW46NDMwMDgsZW5kOjQzMDU1fSx7YmVnaW46NjU1MzYsZW5kOjY1NjYzfSx7YmVnaW46NjU4NTYsZW5kOjY1OTM1fSx7YmVnaW46NjY0MzIsZW5kOjY2NDYzfSx7YmVnaW46NjY0NjQsZW5kOjY2NTI3fSx7YmVnaW46NjY2NDAsZW5kOjY2Njg3fSx7YmVnaW46NjY2ODgsZW5kOjY2NzM1fSx7YmVnaW46Njc1ODQsZW5kOjY3NjQ3fSx7YmVnaW46NjgwOTYsZW5kOjY4MTkxfSx7YmVnaW46MTE5NTUyLGVuZDoxMTk2NDd9LHtiZWdpbjo3MzcyOCxlbmQ6NzQ3NTF9LHtiZWdpbjoxMTk2NDgsZW5kOjExOTY3OX0se2JlZ2luOjcwNDAsZW5kOjcxMDN9LHtiZWdpbjo3MTY4LGVuZDo3MjQ3fSx7YmVnaW46NzI0OCxlbmQ6NzI5NX0se2JlZ2luOjQzMTM2LGVuZDo0MzIzMX0se2JlZ2luOjQzMjY0LGVuZDo0MzMxMX0se2JlZ2luOjQzMzEyLGVuZDo0MzM1OX0se2JlZ2luOjQzNTIwLGVuZDo0MzYxNX0se2JlZ2luOjY1OTM2LGVuZDo2NTk5OX0se2JlZ2luOjY2ZTMsZW5kOjY2MDQ3fSx7YmVnaW46NjYyMDgsZW5kOjY2MjcxfSx7YmVnaW46MTI3MDI0LGVuZDoxMjcxMzV9XTt2YXIgYXQ9e3BhcnNlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9e30saT1uZXcgc2UuUGFyc2VyKGUsdCk7ci52ZXJzaW9uPWkucGFyc2VVU2hvcnQoKSxyLnhBdmdDaGFyV2lkdGg9aS5wYXJzZVNob3J0KCksci51c1dlaWdodENsYXNzPWkucGFyc2VVU2hvcnQoKSxyLnVzV2lkdGhDbGFzcz1pLnBhcnNlVVNob3J0KCksci5mc1R5cGU9aS5wYXJzZVVTaG9ydCgpLHIueVN1YnNjcmlwdFhTaXplPWkucGFyc2VTaG9ydCgpLHIueVN1YnNjcmlwdFlTaXplPWkucGFyc2VTaG9ydCgpLHIueVN1YnNjcmlwdFhPZmZzZXQ9aS5wYXJzZVNob3J0KCksci55U3Vic2NyaXB0WU9mZnNldD1pLnBhcnNlU2hvcnQoKSxyLnlTdXBlcnNjcmlwdFhTaXplPWkucGFyc2VTaG9ydCgpLHIueVN1cGVyc2NyaXB0WVNpemU9aS5wYXJzZVNob3J0KCksci55U3VwZXJzY3JpcHRYT2Zmc2V0PWkucGFyc2VTaG9ydCgpLHIueVN1cGVyc2NyaXB0WU9mZnNldD1pLnBhcnNlU2hvcnQoKSxyLnlTdHJpa2VvdXRTaXplPWkucGFyc2VTaG9ydCgpLHIueVN0cmlrZW91dFBvc2l0aW9uPWkucGFyc2VTaG9ydCgpLHIuc0ZhbWlseUNsYXNzPWkucGFyc2VTaG9ydCgpLHIucGFub3NlPVtdO2Zvcih2YXIgbj0wO248MTA7bisrKXIucGFub3NlW25dPWkucGFyc2VCeXRlKCk7cmV0dXJuIHIudWxVbmljb2RlUmFuZ2UxPWkucGFyc2VVTG9uZygpLHIudWxVbmljb2RlUmFuZ2UyPWkucGFyc2VVTG9uZygpLHIudWxVbmljb2RlUmFuZ2UzPWkucGFyc2VVTG9uZygpLHIudWxVbmljb2RlUmFuZ2U0PWkucGFyc2VVTG9uZygpLHIuYWNoVmVuZElEPVN0cmluZy5mcm9tQ2hhckNvZGUoaS5wYXJzZUJ5dGUoKSxpLnBhcnNlQnl0ZSgpLGkucGFyc2VCeXRlKCksaS5wYXJzZUJ5dGUoKSksci5mc1NlbGVjdGlvbj1pLnBhcnNlVVNob3J0KCksci51c0ZpcnN0Q2hhckluZGV4PWkucGFyc2VVU2hvcnQoKSxyLnVzTGFzdENoYXJJbmRleD1pLnBhcnNlVVNob3J0KCksci5zVHlwb0FzY2VuZGVyPWkucGFyc2VTaG9ydCgpLHIuc1R5cG9EZXNjZW5kZXI9aS5wYXJzZVNob3J0KCksci5zVHlwb0xpbmVHYXA9aS5wYXJzZVNob3J0KCksci51c1dpbkFzY2VudD1pLnBhcnNlVVNob3J0KCksci51c1dpbkRlc2NlbnQ9aS5wYXJzZVVTaG9ydCgpLDE8PXIudmVyc2lvbiYmKHIudWxDb2RlUGFnZVJhbmdlMT1pLnBhcnNlVUxvbmcoKSxyLnVsQ29kZVBhZ2VSYW5nZTI9aS5wYXJzZVVMb25nKCkpLDI8PXIudmVyc2lvbiYmKHIuc3hIZWlnaHQ9aS5wYXJzZVNob3J0KCksci5zQ2FwSGVpZ2h0PWkucGFyc2VTaG9ydCgpLHIudXNEZWZhdWx0Q2hhcj1pLnBhcnNlVVNob3J0KCksci51c0JyZWFrQ2hhcj1pLnBhcnNlVVNob3J0KCksci51c01heENvbnRlbnQ9aS5wYXJzZVVTaG9ydCgpKSxyfSxtYWtlOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJC5UYWJsZShcIk9TLzJcIixbe25hbWU6XCJ2ZXJzaW9uXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjN9LHtuYW1lOlwieEF2Z0NoYXJXaWR0aFwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwidXNXZWlnaHRDbGFzc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInVzV2lkdGhDbGFzc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcImZzVHlwZVwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInlTdWJzY3JpcHRYU2l6ZVwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjY1MH0se25hbWU6XCJ5U3Vic2NyaXB0WVNpemVcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTo2OTl9LHtuYW1lOlwieVN1YnNjcmlwdFhPZmZzZXRcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInlTdWJzY3JpcHRZT2Zmc2V0XCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MTQwfSx7bmFtZTpcInlTdXBlcnNjcmlwdFhTaXplXCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6NjUwfSx7bmFtZTpcInlTdXBlcnNjcmlwdFlTaXplXCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6Njk5fSx7bmFtZTpcInlTdXBlcnNjcmlwdFhPZmZzZXRcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInlTdXBlcnNjcmlwdFlPZmZzZXRcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTo0Nzl9LHtuYW1lOlwieVN0cmlrZW91dFNpemVcIix0eXBlOlwiU0hPUlRcIix2YWx1ZTo0OX0se25hbWU6XCJ5U3RyaWtlb3V0UG9zaXRpb25cIix0eXBlOlwiU0hPUlRcIix2YWx1ZToyNTh9LHtuYW1lOlwic0ZhbWlseUNsYXNzXCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJiRmFtaWx5VHlwZVwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJiU2VyaWZTdHlsZVwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJiV2VpZ2h0XCIsdHlwZTpcIkJZVEVcIix2YWx1ZTowfSx7bmFtZTpcImJQcm9wb3J0aW9uXCIsdHlwZTpcIkJZVEVcIix2YWx1ZTowfSx7bmFtZTpcImJDb250cmFzdFwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJiU3Ryb2tlVmFyaWF0aW9uXCIsdHlwZTpcIkJZVEVcIix2YWx1ZTowfSx7bmFtZTpcImJBcm1TdHlsZVwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJiTGV0dGVyZm9ybVwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJiTWlkbGluZVwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJiWEhlaWdodFwiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0se25hbWU6XCJ1bFVuaWNvZGVSYW5nZTFcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcInVsVW5pY29kZVJhbmdlMlwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOjB9LHtuYW1lOlwidWxVbmljb2RlUmFuZ2UzXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6MH0se25hbWU6XCJ1bFVuaWNvZGVSYW5nZTRcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcImFjaFZlbmRJRFwiLHR5cGU6XCJDSEFSQVJSQVlcIix2YWx1ZTpcIlhYWFhcIn0se25hbWU6XCJmc1NlbGVjdGlvblwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInVzRmlyc3RDaGFySW5kZXhcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJ1c0xhc3RDaGFySW5kZXhcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJzVHlwb0FzY2VuZGVyXCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJzVHlwb0Rlc2NlbmRlclwiLHR5cGU6XCJTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwic1R5cG9MaW5lR2FwXCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJ1c1dpbkFzY2VudFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInVzV2luRGVzY2VudFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfSx7bmFtZTpcInVsQ29kZVBhZ2VSYW5nZTFcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcInVsQ29kZVBhZ2VSYW5nZTJcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcInN4SGVpZ2h0XCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJzQ2FwSGVpZ2h0XCIsdHlwZTpcIlNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJ1c0RlZmF1bHRDaGFyXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwidXNCcmVha0NoYXJcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJ1c01heENvbnRleHRcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH1dLGUpfSx1bmljb2RlUmFuZ2VzOm50LGdldFVuaWNvZGVSYW5nZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PG50Lmxlbmd0aDt0Kz0xKXt2YXIgcj1udFt0XTtpZihlPj1yLmJlZ2luJiZlPHIuZW5kKXJldHVybiB0fXJldHVybi0xfX07dmFyIG90PXtwYXJzZTpmdW5jdGlvbihlLHQpe3ZhciByPXt9LGk9bmV3IHNlLlBhcnNlcihlLHQpO3N3aXRjaChyLnZlcnNpb249aS5wYXJzZVZlcnNpb24oKSxyLml0YWxpY0FuZ2xlPWkucGFyc2VGaXhlZCgpLHIudW5kZXJsaW5lUG9zaXRpb249aS5wYXJzZVNob3J0KCksci51bmRlcmxpbmVUaGlja25lc3M9aS5wYXJzZVNob3J0KCksci5pc0ZpeGVkUGl0Y2g9aS5wYXJzZVVMb25nKCksci5taW5NZW1UeXBlNDI9aS5wYXJzZVVMb25nKCksci5tYXhNZW1UeXBlNDI9aS5wYXJzZVVMb25nKCksci5taW5NZW1UeXBlMT1pLnBhcnNlVUxvbmcoKSxyLm1heE1lbVR5cGUxPWkucGFyc2VVTG9uZygpLHIudmVyc2lvbil7Y2FzZSAxOnIubmFtZXM9ZmUuc2xpY2UoKTticmVhaztjYXNlIDI6ci5udW1iZXJPZkdseXBocz1pLnBhcnNlVVNob3J0KCksci5nbHlwaE5hbWVJbmRleD1uZXcgQXJyYXkoci5udW1iZXJPZkdseXBocyk7Zm9yKHZhciBuPTA7bjxyLm51bWJlck9mR2x5cGhzO24rKylyLmdseXBoTmFtZUluZGV4W25dPWkucGFyc2VVU2hvcnQoKTtyLm5hbWVzPVtdO2Zvcih2YXIgYT0wO2E8ci5udW1iZXJPZkdseXBoczthKyspaWYoci5nbHlwaE5hbWVJbmRleFthXT49ZmUubGVuZ3RoKXt2YXIgbz1pLnBhcnNlQ2hhcigpO3IubmFtZXMucHVzaChpLnBhcnNlU3RyaW5nKG8pKX1icmVhaztjYXNlIDIuNTpyLm51bWJlck9mR2x5cGhzPWkucGFyc2VVU2hvcnQoKSxyLm9mZnNldD1uZXcgQXJyYXkoci5udW1iZXJPZkdseXBocyk7Zm9yKHZhciBzPTA7czxyLm51bWJlck9mR2x5cGhzO3MrKylyLm9mZnNldFtzXT1pLnBhcnNlQ2hhcigpfXJldHVybiByfSxtYWtlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyAkLlRhYmxlKFwicG9zdFwiLFt7bmFtZTpcInZlcnNpb25cIix0eXBlOlwiRklYRURcIix2YWx1ZToxOTY2MDh9LHtuYW1lOlwiaXRhbGljQW5nbGVcIix0eXBlOlwiRklYRURcIix2YWx1ZTowfSx7bmFtZTpcInVuZGVybGluZVBvc2l0aW9uXCIsdHlwZTpcIkZXT1JEXCIsdmFsdWU6MH0se25hbWU6XCJ1bmRlcmxpbmVUaGlja25lc3NcIix0eXBlOlwiRldPUkRcIix2YWx1ZTowfSx7bmFtZTpcImlzRml4ZWRQaXRjaFwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOjB9LHtuYW1lOlwibWluTWVtVHlwZTQyXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6MH0se25hbWU6XCJtYXhNZW1UeXBlNDJcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTowfSx7bmFtZTpcIm1pbk1lbVR5cGUxXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6MH0se25hbWU6XCJtYXhNZW1UeXBlMVwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOjB9XSl9fSxzdD1uZXcgQXJyYXkoOSk7c3RbMV09ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0LHQ9dGhpcy5wYXJzZVVTaG9ydCgpO3JldHVybiAxPT09dD97c3Vic3RGb3JtYXQ6MSxjb3ZlcmFnZTp0aGlzLnBhcnNlUG9pbnRlcihhZS5jb3ZlcmFnZSksZGVsdGFHbHlwaElkOnRoaXMucGFyc2VVU2hvcnQoKX06Mj09PXQ/e3N1YnN0Rm9ybWF0OjIsY292ZXJhZ2U6dGhpcy5wYXJzZVBvaW50ZXIoYWUuY292ZXJhZ2UpLHN1YnN0aXR1dGU6dGhpcy5wYXJzZU9mZnNldDE2TGlzdCgpfTp2b2lkIFAuYXNzZXJ0KCExLFwiMHhcIitlLnRvU3RyaW5nKDE2KStcIjogbG9va3VwIHR5cGUgMSBmb3JtYXQgbXVzdCBiZSAxIG9yIDIuXCIpfSxzdFsyXT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucGFyc2VVU2hvcnQoKTtyZXR1cm4gUC5hcmd1bWVudCgxPT09ZSxcIkdTVUIgTXVsdGlwbGUgU3Vic3RpdHV0aW9uIFN1YnRhYmxlIGlkZW50aWZpZXItZm9ybWF0IG11c3QgYmUgMVwiKSx7c3Vic3RGb3JtYXQ6ZSxjb3ZlcmFnZTp0aGlzLnBhcnNlUG9pbnRlcihhZS5jb3ZlcmFnZSksc2VxdWVuY2VzOnRoaXMucGFyc2VMaXN0T2ZMaXN0cygpfX0sc3RbM109ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnNlVVNob3J0KCk7cmV0dXJuIFAuYXJndW1lbnQoMT09PWUsXCJHU1VCIEFsdGVybmF0ZSBTdWJzdGl0dXRpb24gU3VidGFibGUgaWRlbnRpZmllci1mb3JtYXQgbXVzdCBiZSAxXCIpLHtzdWJzdEZvcm1hdDplLGNvdmVyYWdlOnRoaXMucGFyc2VQb2ludGVyKGFlLmNvdmVyYWdlKSxhbHRlcm5hdGVTZXRzOnRoaXMucGFyc2VMaXN0T2ZMaXN0cygpfX0sc3RbNF09ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnNlVVNob3J0KCk7cmV0dXJuIFAuYXJndW1lbnQoMT09PWUsXCJHU1VCIGxpZ2F0dXJlIHRhYmxlIGlkZW50aWZpZXItZm9ybWF0IG11c3QgYmUgMVwiKSx7c3Vic3RGb3JtYXQ6ZSxjb3ZlcmFnZTp0aGlzLnBhcnNlUG9pbnRlcihhZS5jb3ZlcmFnZSksbGlnYXR1cmVTZXRzOnRoaXMucGFyc2VMaXN0T2ZMaXN0cyhmdW5jdGlvbigpe3JldHVybntsaWdHbHlwaDp0aGlzLnBhcnNlVVNob3J0KCksY29tcG9uZW50czp0aGlzLnBhcnNlVVNob3J0TGlzdCh0aGlzLnBhcnNlVVNob3J0KCktMSl9fSl9fTt2YXIgbHQ9e3NlcXVlbmNlSW5kZXg6YWUudVNob3J0LGxvb2t1cExpc3RJbmRleDphZS51U2hvcnR9O3N0WzVdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXQrdGhpcy5yZWxhdGl2ZU9mZnNldCx0PXRoaXMucGFyc2VVU2hvcnQoKTtpZigxPT09dClyZXR1cm57c3Vic3RGb3JtYXQ6dCxjb3ZlcmFnZTp0aGlzLnBhcnNlUG9pbnRlcihhZS5jb3ZlcmFnZSkscnVsZVNldHM6dGhpcy5wYXJzZUxpc3RPZkxpc3RzKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXJzZVVTaG9ydCgpLHQ9dGhpcy5wYXJzZVVTaG9ydCgpO3JldHVybntpbnB1dDp0aGlzLnBhcnNlVVNob3J0TGlzdChlLTEpLGxvb2t1cFJlY29yZHM6dGhpcy5wYXJzZVJlY29yZExpc3QodCxsdCl9fSl9O2lmKDI9PT10KXJldHVybntzdWJzdEZvcm1hdDp0LGNvdmVyYWdlOnRoaXMucGFyc2VQb2ludGVyKGFlLmNvdmVyYWdlKSxjbGFzc0RlZjp0aGlzLnBhcnNlUG9pbnRlcihhZS5jbGFzc0RlZiksY2xhc3NTZXRzOnRoaXMucGFyc2VMaXN0T2ZMaXN0cyhmdW5jdGlvbigpe3ZhciBlPXRoaXMucGFyc2VVU2hvcnQoKSx0PXRoaXMucGFyc2VVU2hvcnQoKTtyZXR1cm57Y2xhc3Nlczp0aGlzLnBhcnNlVVNob3J0TGlzdChlLTEpLGxvb2t1cFJlY29yZHM6dGhpcy5wYXJzZVJlY29yZExpc3QodCxsdCl9fSl9O2lmKDM9PT10KXt2YXIgcj10aGlzLnBhcnNlVVNob3J0KCksaT10aGlzLnBhcnNlVVNob3J0KCk7cmV0dXJue3N1YnN0Rm9ybWF0OnQsY292ZXJhZ2VzOnRoaXMucGFyc2VMaXN0KHIsYWUucG9pbnRlcihhZS5jb3ZlcmFnZSkpLGxvb2t1cFJlY29yZHM6dGhpcy5wYXJzZVJlY29yZExpc3QoaSxsdCl9fVAuYXNzZXJ0KCExLFwiMHhcIitlLnRvU3RyaW5nKDE2KStcIjogbG9va3VwIHR5cGUgNSBmb3JtYXQgbXVzdCBiZSAxLCAyIG9yIDMuXCIpfSxzdFs2XT1mdW5jdGlvbigpe3ZhciBlPXRoaXMub2Zmc2V0K3RoaXMucmVsYXRpdmVPZmZzZXQsdD10aGlzLnBhcnNlVVNob3J0KCk7cmV0dXJuIDE9PT10P3tzdWJzdEZvcm1hdDoxLGNvdmVyYWdlOnRoaXMucGFyc2VQb2ludGVyKGFlLmNvdmVyYWdlKSxjaGFpblJ1bGVTZXRzOnRoaXMucGFyc2VMaXN0T2ZMaXN0cyhmdW5jdGlvbigpe3JldHVybntiYWNrdHJhY2s6dGhpcy5wYXJzZVVTaG9ydExpc3QoKSxpbnB1dDp0aGlzLnBhcnNlVVNob3J0TGlzdCh0aGlzLnBhcnNlU2hvcnQoKS0xKSxsb29rYWhlYWQ6dGhpcy5wYXJzZVVTaG9ydExpc3QoKSxsb29rdXBSZWNvcmRzOnRoaXMucGFyc2VSZWNvcmRMaXN0KGx0KX19KX06Mj09PXQ/e3N1YnN0Rm9ybWF0OjIsY292ZXJhZ2U6dGhpcy5wYXJzZVBvaW50ZXIoYWUuY292ZXJhZ2UpLGJhY2t0cmFja0NsYXNzRGVmOnRoaXMucGFyc2VQb2ludGVyKGFlLmNsYXNzRGVmKSxpbnB1dENsYXNzRGVmOnRoaXMucGFyc2VQb2ludGVyKGFlLmNsYXNzRGVmKSxsb29rYWhlYWRDbGFzc0RlZjp0aGlzLnBhcnNlUG9pbnRlcihhZS5jbGFzc0RlZiksY2hhaW5DbGFzc1NldDp0aGlzLnBhcnNlTGlzdE9mTGlzdHMoZnVuY3Rpb24oKXtyZXR1cm57YmFja3RyYWNrOnRoaXMucGFyc2VVU2hvcnRMaXN0KCksaW5wdXQ6dGhpcy5wYXJzZVVTaG9ydExpc3QodGhpcy5wYXJzZVNob3J0KCktMSksbG9va2FoZWFkOnRoaXMucGFyc2VVU2hvcnRMaXN0KCksbG9va3VwUmVjb3Jkczp0aGlzLnBhcnNlUmVjb3JkTGlzdChsdCl9fSl9OjM9PT10P3tzdWJzdEZvcm1hdDozLGJhY2t0cmFja0NvdmVyYWdlOnRoaXMucGFyc2VMaXN0KGFlLnBvaW50ZXIoYWUuY292ZXJhZ2UpKSxpbnB1dENvdmVyYWdlOnRoaXMucGFyc2VMaXN0KGFlLnBvaW50ZXIoYWUuY292ZXJhZ2UpKSxsb29rYWhlYWRDb3ZlcmFnZTp0aGlzLnBhcnNlTGlzdChhZS5wb2ludGVyKGFlLmNvdmVyYWdlKSksbG9va3VwUmVjb3Jkczp0aGlzLnBhcnNlUmVjb3JkTGlzdChsdCl9OnZvaWQgUC5hc3NlcnQoITEsXCIweFwiK2UudG9TdHJpbmcoMTYpK1wiOiBsb29rdXAgdHlwZSA2IGZvcm1hdCBtdXN0IGJlIDEsIDIgb3IgMy5cIil9LHN0WzddPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXJzZVVTaG9ydCgpO1AuYXJndW1lbnQoMT09PWUsXCJHU1VCIEV4dGVuc2lvbiBTdWJzdGl0dXRpb24gc3VidGFibGUgaWRlbnRpZmllci1mb3JtYXQgbXVzdCBiZSAxXCIpO3ZhciB0PXRoaXMucGFyc2VVU2hvcnQoKSxyPW5ldyBhZSh0aGlzLmRhdGEsdGhpcy5vZmZzZXQrdGhpcy5wYXJzZVVMb25nKCkpO3JldHVybntzdWJzdEZvcm1hdDoxLGxvb2t1cFR5cGU6dCxleHRlbnNpb246c3RbdF0uY2FsbChyKX19LHN0WzhdPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXJzZVVTaG9ydCgpO3JldHVybiBQLmFyZ3VtZW50KDE9PT1lLFwiR1NVQiBSZXZlcnNlIENoYWluaW5nIENvbnRleHR1YWwgU2luZ2xlIFN1YnN0aXR1dGlvbiBTdWJ0YWJsZSBpZGVudGlmaWVyLWZvcm1hdCBtdXN0IGJlIDFcIikse3N1YnN0Rm9ybWF0OmUsY292ZXJhZ2U6dGhpcy5wYXJzZVBvaW50ZXIoYWUuY292ZXJhZ2UpLGJhY2t0cmFja0NvdmVyYWdlOnRoaXMucGFyc2VMaXN0KGFlLnBvaW50ZXIoYWUuY292ZXJhZ2UpKSxsb29rYWhlYWRDb3ZlcmFnZTp0aGlzLnBhcnNlTGlzdChhZS5wb2ludGVyKGFlLmNvdmVyYWdlKSksc3Vic3RpdHV0ZXM6dGhpcy5wYXJzZVVTaG9ydExpc3QoKX19O3ZhciB1dD1uZXcgQXJyYXkoOSk7dXRbMV09ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLnN1YnN0Rm9ybWF0P25ldyAkLlRhYmxlKFwic3Vic3RpdHV0aW9uVGFibGVcIixbe25hbWU6XCJzdWJzdEZvcm1hdFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZToxfSx7bmFtZTpcImNvdmVyYWdlXCIsdHlwZTpcIlRBQkxFXCIsdmFsdWU6bmV3ICQuQ292ZXJhZ2UoZS5jb3ZlcmFnZSl9LHtuYW1lOlwiZGVsdGFHbHlwaElEXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOmUuZGVsdGFHbHlwaElkfV0pOm5ldyAkLlRhYmxlKFwic3Vic3RpdHV0aW9uVGFibGVcIixbe25hbWU6XCJzdWJzdEZvcm1hdFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZToyfSx7bmFtZTpcImNvdmVyYWdlXCIsdHlwZTpcIlRBQkxFXCIsdmFsdWU6bmV3ICQuQ292ZXJhZ2UoZS5jb3ZlcmFnZSl9XS5jb25jYXQoJC51c2hvcnRMaXN0KFwic3Vic3RpdHV0ZVwiLGUuc3Vic3RpdHV0ZSkpKX0sdXRbM109ZnVuY3Rpb24oZSl7cmV0dXJuIFAuYXNzZXJ0KDE9PT1lLnN1YnN0Rm9ybWF0LFwiTG9va3VwIHR5cGUgMyBzdWJzdEZvcm1hdCBtdXN0IGJlIDEuXCIpLG5ldyAkLlRhYmxlKFwic3Vic3RpdHV0aW9uVGFibGVcIixbe25hbWU6XCJzdWJzdEZvcm1hdFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZToxfSx7bmFtZTpcImNvdmVyYWdlXCIsdHlwZTpcIlRBQkxFXCIsdmFsdWU6bmV3ICQuQ292ZXJhZ2UoZS5jb3ZlcmFnZSl9XS5jb25jYXQoJC50YWJsZUxpc3QoXCJhbHRTZXRcIixlLmFsdGVybmF0ZVNldHMsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyAkLlRhYmxlKFwiYWx0ZXJuYXRlU2V0VGFibGVcIiwkLnVzaG9ydExpc3QoXCJhbHRlcm5hdGVcIixlKSl9KSkpfSx1dFs0XT1mdW5jdGlvbihlKXtyZXR1cm4gUC5hc3NlcnQoMT09PWUuc3Vic3RGb3JtYXQsXCJMb29rdXAgdHlwZSA0IHN1YnN0Rm9ybWF0IG11c3QgYmUgMS5cIiksbmV3ICQuVGFibGUoXCJzdWJzdGl0dXRpb25UYWJsZVwiLFt7bmFtZTpcInN1YnN0Rm9ybWF0XCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjF9LHtuYW1lOlwiY292ZXJhZ2VcIix0eXBlOlwiVEFCTEVcIix2YWx1ZTpuZXcgJC5Db3ZlcmFnZShlLmNvdmVyYWdlKX1dLmNvbmNhdCgkLnRhYmxlTGlzdChcImxpZ1NldFwiLGUubGlnYXR1cmVTZXRzLGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJC5UYWJsZShcImxpZ2F0dXJlU2V0VGFibGVcIiwkLnRhYmxlTGlzdChcImxpZ2F0dXJlXCIsZSxmdW5jdGlvbihlKXtyZXR1cm4gbmV3ICQuVGFibGUoXCJsaWdhdHVyZVRhYmxlXCIsW3tuYW1lOlwibGlnR2x5cGhcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6ZS5saWdHbHlwaH1dLmNvbmNhdCgkLnVzaG9ydExpc3QoXCJjb21wb25lbnRcIixlLmNvbXBvbmVudHMsZS5jb21wb25lbnRzLmxlbmd0aCsxKSkpfSkpfSkpKX07dmFyIGh0PXtwYXJzZTpmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBhZShlLHQ9dHx8MCksaT1yLnBhcnNlVmVyc2lvbigxKTtyZXR1cm4gUC5hcmd1bWVudCgxPT09aXx8MS4xPT09aSxcIlVuc3VwcG9ydGVkIEdTVUIgdGFibGUgdmVyc2lvbi5cIiksMT09PWk/e3ZlcnNpb246aSxzY3JpcHRzOnIucGFyc2VTY3JpcHRMaXN0KCksZmVhdHVyZXM6ci5wYXJzZUZlYXR1cmVMaXN0KCksbG9va3VwczpyLnBhcnNlTG9va3VwTGlzdChzdCl9Ont2ZXJzaW9uOmksc2NyaXB0czpyLnBhcnNlU2NyaXB0TGlzdCgpLGZlYXR1cmVzOnIucGFyc2VGZWF0dXJlTGlzdCgpLGxvb2t1cHM6ci5wYXJzZUxvb2t1cExpc3Qoc3QpLHZhcmlhdGlvbnM6ci5wYXJzZUZlYXR1cmVWYXJpYXRpb25zTGlzdCgpfX0sbWFrZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3ICQuVGFibGUoXCJHU1VCXCIsW3tuYW1lOlwidmVyc2lvblwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOjY1NTM2fSx7bmFtZTpcInNjcmlwdHNcIix0eXBlOlwiVEFCTEVcIix2YWx1ZTpuZXcgJC5TY3JpcHRMaXN0KGUuc2NyaXB0cyl9LHtuYW1lOlwiZmVhdHVyZXNcIix0eXBlOlwiVEFCTEVcIix2YWx1ZTpuZXcgJC5GZWF0dXJlTGlzdChlLmZlYXR1cmVzKX0se25hbWU6XCJsb29rdXBzXCIsdHlwZTpcIlRBQkxFXCIsdmFsdWU6bmV3ICQuTG9va3VwTGlzdChlLmxvb2t1cHMsdXQpfV0pfX07dmFyIGN0PXtwYXJzZTpmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBzZS5QYXJzZXIoZSx0KSxpPXIucGFyc2VVTG9uZygpO1AuYXJndW1lbnQoMT09PWksXCJVbnN1cHBvcnRlZCBNRVRBIHRhYmxlIHZlcnNpb24uXCIpLHIucGFyc2VVTG9uZygpLHIucGFyc2VVTG9uZygpO2Zvcih2YXIgbj1yLnBhcnNlVUxvbmcoKSxhPXt9LG89MDtvPG47bysrKXt2YXIgcz1yLnBhcnNlVGFnKCksbD1yLnBhcnNlVUxvbmcoKSx1PXIucGFyc2VVTG9uZygpLGg9RC5VVEY4KGUsdCtsLHUpO2Fbc109aH1yZXR1cm4gYX0sbWFrZTpmdW5jdGlvbihlKXt2YXIgdD1PYmplY3Qua2V5cyhlKS5sZW5ndGgscj1cIlwiLGk9MTYrMTIqdCxuPW5ldyAkLlRhYmxlKFwibWV0YVwiLFt7bmFtZTpcInZlcnNpb25cIix0eXBlOlwiVUxPTkdcIix2YWx1ZToxfSx7bmFtZTpcImZsYWdzXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6MH0se25hbWU6XCJvZmZzZXRcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTppfSx7bmFtZTpcIm51bVRhZ3NcIix0eXBlOlwiVUxPTkdcIix2YWx1ZTp0fV0pO2Zvcih2YXIgYSBpbiBlKXt2YXIgbz1yLmxlbmd0aDtyKz1lW2FdLG4uZmllbGRzLnB1c2goe25hbWU6XCJ0YWcgXCIrYSx0eXBlOlwiVEFHXCIsdmFsdWU6YX0pLG4uZmllbGRzLnB1c2goe25hbWU6XCJvZmZzZXQgXCIrYSx0eXBlOlwiVUxPTkdcIix2YWx1ZTppK299KSxuLmZpZWxkcy5wdXNoKHtuYW1lOlwibGVuZ3RoIFwiK2EsdHlwZTpcIlVMT05HXCIsdmFsdWU6ZVthXS5sZW5ndGh9KX1yZXR1cm4gbi5maWVsZHMucHVzaCh7bmFtZTpcInN0cmluZ1Bvb2xcIix0eXBlOlwiQ0hBUkFSUkFZXCIsdmFsdWU6cn0pLG59fTtmdW5jdGlvbiBmdChlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5sb2coMil8MH1mdW5jdGlvbiBkdChlKXtmb3IoO2UubGVuZ3RoJTQhPTA7KWUucHVzaCgwKTtmb3IodmFyIHQ9MCxyPTA7cjxlLmxlbmd0aDtyKz00KXQrPShlW3JdPDwyNCkrKGVbcisxXTw8MTYpKyhlW3IrMl08PDgpK2VbciszXTtyZXR1cm4gdCU9TWF0aC5wb3coMiwzMil9ZnVuY3Rpb24gcHQoZSx0LHIsaSl7cmV0dXJuIG5ldyAkLlJlY29yZChcIlRhYmxlIFJlY29yZFwiLFt7bmFtZTpcInRhZ1wiLHR5cGU6XCJUQUdcIix2YWx1ZTp2b2lkIDAhPT1lP2U6XCJcIn0se25hbWU6XCJjaGVja1N1bVwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOnZvaWQgMCE9PXQ/dDowfSx7bmFtZTpcIm9mZnNldFwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOnZvaWQgMCE9PXI/cjowfSx7bmFtZTpcImxlbmd0aFwiLHR5cGU6XCJVTE9OR1wiLHZhbHVlOnZvaWQgMCE9PWk/aTowfV0pfWZ1bmN0aW9uIG10KGUpe3ZhciB0PW5ldyAkLlRhYmxlKFwic2ZudFwiLFt7bmFtZTpcInZlcnNpb25cIix0eXBlOlwiVEFHXCIsdmFsdWU6XCJPVFRPXCJ9LHtuYW1lOlwibnVtVGFibGVzXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwic2VhcmNoUmFuZ2VcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJlbnRyeVNlbGVjdG9yXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwicmFuZ2VTaGlmdFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTowfV0pO3QudGFibGVzPWUsdC5udW1UYWJsZXM9ZS5sZW5ndGg7dmFyIHI9TWF0aC5wb3coMixmdCh0Lm51bVRhYmxlcykpO3Quc2VhcmNoUmFuZ2U9MTYqcix0LmVudHJ5U2VsZWN0b3I9ZnQociksdC5yYW5nZVNoaWZ0PTE2KnQubnVtVGFibGVzLXQuc2VhcmNoUmFuZ2U7Zm9yKHZhciBpPVtdLG49W10sYT10LnNpemVPZigpK3B0KCkuc2l6ZU9mKCkqdC5udW1UYWJsZXM7YSU0IT0wOylhKz0xLG4ucHVzaCh7bmFtZTpcInBhZGRpbmdcIix0eXBlOlwiQllURVwiLHZhbHVlOjB9KTtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rPTEpe3ZhciBzPWVbb107UC5hcmd1bWVudCg0PT09cy50YWJsZU5hbWUubGVuZ3RoLFwiVGFibGUgbmFtZVwiK3MudGFibGVOYW1lK1wiIGlzIGludmFsaWQuXCIpO3ZhciBsPXMuc2l6ZU9mKCksdT1wdChzLnRhYmxlTmFtZSxkdChzLmVuY29kZSgpKSxhLGwpO2ZvcihpLnB1c2goe25hbWU6dS50YWcrXCIgVGFibGUgUmVjb3JkXCIsdHlwZTpcIlJFQ09SRFwiLHZhbHVlOnV9KSxuLnB1c2goe25hbWU6cy50YWJsZU5hbWUrXCIgdGFibGVcIix0eXBlOlwiUkVDT1JEXCIsdmFsdWU6c30pLGErPWwsUC5hcmd1bWVudCghaXNOYU4oYSksXCJTb21ldGhpbmcgd2VudCB3cm9uZyBjYWxjdWxhdGluZyB0aGUgb2Zmc2V0LlwiKTthJTQhPTA7KWErPTEsbi5wdXNoKHtuYW1lOlwicGFkZGluZ1wiLHR5cGU6XCJCWVRFXCIsdmFsdWU6MH0pfXJldHVybiBpLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS52YWx1ZS50YWc+dC52YWx1ZS50YWc/MTotMX0pLHQuZmllbGRzPXQuZmllbGRzLmNvbmNhdChpKSx0LmZpZWxkcz10LmZpZWxkcy5jb25jYXQobiksdH1mdW5jdGlvbiB2dChlLHQscil7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKz0xKXt2YXIgbj1lLmNoYXJUb0dseXBoSW5kZXgodFtpXSk7aWYoMDxuKXJldHVybiBlLmdseXBocy5nZXQobikuZ2V0TWV0cmljcygpfXJldHVybiByfXZhciB5dD17bWFrZTptdCxmb250VG9UYWJsZTpmdW5jdGlvbihlKXtmb3IodmFyIHQscj1bXSxpPVtdLG49W10sYT1bXSxvPVtdLHM9W10sbD1bXSx1PTAsaD0wLGM9MCxmPTAsZD0wLHA9MDtwPGUuZ2x5cGhzLmxlbmd0aDtwKz0xKXt2YXIgbT1lLmdseXBocy5nZXQocCksdj0wfG0udW5pY29kZTtpZihpc05hTihtLmFkdmFuY2VXaWR0aCkpdGhyb3cgbmV3IEVycm9yKFwiR2x5cGggXCIrbS5uYW1lK1wiIChcIitwK1wiKTogYWR2YW5jZVdpZHRoIGlzIG5vdCBhIG51bWJlci5cIik7KHY8dHx8dm9pZCAwPT09dCkmJjA8diYmKHQ9diksdTx2JiYodT12KTt2YXIgeT1hdC5nZXRVbmljb2RlUmFuZ2Uodik7aWYoeTwzMilofD0xPDx5O2Vsc2UgaWYoeTw2NCljfD0xPDx5LTMyO2Vsc2UgaWYoeTw5NilmfD0xPDx5LTY0O2Vsc2V7aWYoISh5PDEyMykpdGhyb3cgbmV3IEVycm9yKFwiVW5pY29kZSByYW5nZXMgYml0cyA+IDEyMyBhcmUgcmVzZXJ2ZWQgZm9yIGludGVybmFsIHVzYWdlXCIpO2R8PTE8PHktOTZ9aWYoXCIubm90ZGVmXCIhPT1tLm5hbWUpe3ZhciBnPW0uZ2V0TWV0cmljcygpO3IucHVzaChnLnhNaW4pLGkucHVzaChnLnlNaW4pLG4ucHVzaChnLnhNYXgpLGEucHVzaChnLnlNYXgpLHMucHVzaChnLmxlZnRTaWRlQmVhcmluZyksbC5wdXNoKGcucmlnaHRTaWRlQmVhcmluZyksby5wdXNoKG0uYWR2YW5jZVdpZHRoKX19dmFyIGI9e3hNaW46TWF0aC5taW4uYXBwbHkobnVsbCxyKSx5TWluOk1hdGgubWluLmFwcGx5KG51bGwsaSkseE1heDpNYXRoLm1heC5hcHBseShudWxsLG4pLHlNYXg6TWF0aC5tYXguYXBwbHkobnVsbCxhKSxhZHZhbmNlV2lkdGhNYXg6TWF0aC5tYXguYXBwbHkobnVsbCxvKSxhZHZhbmNlV2lkdGhBdmc6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAscj0wO3I8ZS5sZW5ndGg7cis9MSl0Kz1lW3JdO3JldHVybiB0L2UubGVuZ3RofShvKSxtaW5MZWZ0U2lkZUJlYXJpbmc6TWF0aC5taW4uYXBwbHkobnVsbCxzKSxtYXhMZWZ0U2lkZUJlYXJpbmc6TWF0aC5tYXguYXBwbHkobnVsbCxzKSxtaW5SaWdodFNpZGVCZWFyaW5nOk1hdGgubWluLmFwcGx5KG51bGwsbCl9O2IuYXNjZW5kZXI9ZS5hc2NlbmRlcixiLmRlc2NlbmRlcj1lLmRlc2NlbmRlcjt2YXIgXz1HZS5tYWtlKHtmbGFnczozLHVuaXRzUGVyRW06ZS51bml0c1BlckVtLHhNaW46Yi54TWluLHlNaW46Yi55TWluLHhNYXg6Yi54TWF4LHlNYXg6Yi55TWF4LGxvd2VzdFJlY1BQRU06MyxjcmVhdGVkVGltZXN0YW1wOmUuY3JlYXRlZFRpbWVzdGFtcH0pLHg9amUubWFrZSh7YXNjZW5kZXI6Yi5hc2NlbmRlcixkZXNjZW5kZXI6Yi5kZXNjZW5kZXIsYWR2YW5jZVdpZHRoTWF4OmIuYWR2YW5jZVdpZHRoTWF4LG1pbkxlZnRTaWRlQmVhcmluZzpiLm1pbkxlZnRTaWRlQmVhcmluZyxtaW5SaWdodFNpZGVCZWFyaW5nOmIubWluUmlnaHRTaWRlQmVhcmluZyx4TWF4RXh0ZW50OmIubWF4TGVmdFNpZGVCZWFyaW5nKyhiLnhNYXgtYi54TWluKSxudW1iZXJPZkhNZXRyaWNzOmUuZ2x5cGhzLmxlbmd0aH0pLHc9SGUubWFrZShlLmdseXBocy5sZW5ndGgpLFM9YXQubWFrZSh7eEF2Z0NoYXJXaWR0aDpNYXRoLnJvdW5kKGIuYWR2YW5jZVdpZHRoQXZnKSx1c1dlaWdodENsYXNzOmUudGFibGVzLm9zMi51c1dlaWdodENsYXNzLHVzV2lkdGhDbGFzczplLnRhYmxlcy5vczIudXNXaWR0aENsYXNzLHVzRmlyc3RDaGFySW5kZXg6dCx1c0xhc3RDaGFySW5kZXg6dSx1bFVuaWNvZGVSYW5nZTE6aCx1bFVuaWNvZGVSYW5nZTI6Yyx1bFVuaWNvZGVSYW5nZTM6Zix1bFVuaWNvZGVSYW5nZTQ6ZCxmc1NlbGVjdGlvbjplLnRhYmxlcy5vczIuZnNTZWxlY3Rpb24sc1R5cG9Bc2NlbmRlcjpiLmFzY2VuZGVyLHNUeXBvRGVzY2VuZGVyOmIuZGVzY2VuZGVyLHNUeXBvTGluZUdhcDowLHVzV2luQXNjZW50OmIueU1heCx1c1dpbkRlc2NlbnQ6TWF0aC5hYnMoYi55TWluKSx1bENvZGVQYWdlUmFuZ2UxOjEsc3hIZWlnaHQ6dnQoZSxcInh5dndcIix7eU1heDpNYXRoLnJvdW5kKGIuYXNjZW5kZXIvMil9KS55TWF4LHNDYXBIZWlnaHQ6dnQoZSxcIkhJS0xFRkpNTlRaQkRQUkFHT1FTVVZXWFlcIixiKS55TWF4LHVzRGVmYXVsdENoYXI6ZS5oYXNDaGFyKFwiIFwiKT8zMjowLHVzQnJlYWtDaGFyOmUuaGFzQ2hhcihcIiBcIik/MzI6MH0pLE09VmUubWFrZShlLmdseXBocyksVD1sZS5tYWtlKGUuZ2x5cGhzKSxFPWUuZ2V0RW5nbGlzaE5hbWUoXCJmb250RmFtaWx5XCIpLEM9ZS5nZXRFbmdsaXNoTmFtZShcImZvbnRTdWJmYW1pbHlcIiksTD1FK1wiIFwiK0MsTz1lLmdldEVuZ2xpc2hOYW1lKFwicG9zdFNjcmlwdE5hbWVcIik7Tz1PfHxFLnJlcGxhY2UoL1xccy9nLFwiXCIpK1wiLVwiK0M7dmFyIFA9e307Zm9yKHZhciBSIGluIGUubmFtZXMpUFtSXT1lLm5hbWVzW1JdO1AudW5pcXVlSUR8fChQLnVuaXF1ZUlEPXtlbjplLmdldEVuZ2xpc2hOYW1lKFwibWFudWZhY3R1cmVyXCIpK1wiOlwiK0x9KSxQLnBvc3RTY3JpcHROYW1lfHwoUC5wb3N0U2NyaXB0TmFtZT17ZW46T30pLFAucHJlZmVycmVkRmFtaWx5fHwoUC5wcmVmZXJyZWRGYW1pbHk9ZS5uYW1lcy5mb250RmFtaWx5KSxQLnByZWZlcnJlZFN1YmZhbWlseXx8KFAucHJlZmVycmVkU3ViZmFtaWx5PWUubmFtZXMuZm9udFN1YmZhbWlseSk7dmFyIEQ9W10saz1pdC5tYWtlKFAsRCksQT0wPEQubGVuZ3RoP3plLm1ha2UoRCk6dm9pZCAwLEk9b3QubWFrZSgpLFU9QmUubWFrZShlLmdseXBocyx7dmVyc2lvbjplLmdldEVuZ2xpc2hOYW1lKFwidmVyc2lvblwiKSxmdWxsTmFtZTpMLGZhbWlseU5hbWU6RSx3ZWlnaHROYW1lOkMscG9zdFNjcmlwdE5hbWU6Tyx1bml0c1BlckVtOmUudW5pdHNQZXJFbSxmb250QkJveDpbMCxiLnlNaW4sYi5hc2NlbmRlcixiLmFkdmFuY2VXaWR0aE1heF19KSxOPWUubWV0YXMmJjA8T2JqZWN0LmtleXMoZS5tZXRhcykubGVuZ3RoP2N0Lm1ha2UoZS5tZXRhcyk6dm9pZCAwLEY9W18seCx3LFMsayxULEksVSxNXTtBJiZGLnB1c2goQSksZS50YWJsZXMuZ3N1YiYmRi5wdXNoKGh0Lm1ha2UoZS50YWJsZXMuZ3N1YikpLE4mJkYucHVzaChOKTtmb3IodmFyIEI9bXQoRiksRz1kdChCLmVuY29kZSgpKSxqPUIuZmllbGRzLFY9ITEsej0wO3o8ai5sZW5ndGg7eis9MSlpZihcImhlYWQgdGFibGVcIj09PWpbel0ubmFtZSl7alt6XS52YWx1ZS5jaGVja1N1bUFkanVzdG1lbnQ9Mjk4MTE0NjU1NC1HLFY9ITA7YnJlYWt9aWYoIVYpdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgaGVhZCB0YWJsZSB3aXRoIGNoZWNrU3VtIHRvIGFkanVzdC5cIik7cmV0dXJuIEJ9LGNvbXB1dGVDaGVja1N1bTpkdH07ZnVuY3Rpb24gZ3QoZSx0KXtmb3IodmFyIHI9MCxpPWUubGVuZ3RoLTE7cjw9aTspe3ZhciBuPXIraT4+PjEsYT1lW25dLnRhZztpZihhPT09dClyZXR1cm4gbjthPHQ/cj0xK246aT1uLTF9cmV0dXJuLXItMX1mdW5jdGlvbiBidChlLHQpe2Zvcih2YXIgcj0wLGk9ZS5sZW5ndGgtMTtyPD1pOyl7dmFyIG49citpPj4+MSxhPWVbbl07aWYoYT09PXQpcmV0dXJuIG47YTx0P3I9MStuOmk9bi0xfXJldHVybi1yLTF9ZnVuY3Rpb24gX3QoZSx0KXtmb3IodmFyIHIsaT0wLG49ZS5sZW5ndGgtMTtpPD1uOyl7dmFyIGE9aStuPj4+MSxvPShyPWVbYV0pLnN0YXJ0O2lmKG89PT10KXJldHVybiByO288dD9pPTErYTpuPWEtMX1pZigwPGkpcmV0dXJuIHQ+KHI9ZVtpLTFdKS5lbmQ/MDpyfWZ1bmN0aW9uIHh0KGUsdCl7dGhpcy5mb250PWUsdGhpcy50YWJsZU5hbWU9dH1mdW5jdGlvbiB3dChlKXt4dC5jYWxsKHRoaXMsZSxcImdwb3NcIil9ZnVuY3Rpb24gU3QoZSl7eHQuY2FsbCh0aGlzLGUsXCJnc3ViXCIpfWZ1bmN0aW9uIE10KGUsdCl7dmFyIHI9ZS5sZW5ndGg7aWYociE9PXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgaT0wO2k8cjtpKyspaWYoZVtpXSE9PXRbaV0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gVHQoZSx0LHIpe2Zvcih2YXIgaT1lLnN1YnRhYmxlcyxuPTA7bjxpLmxlbmd0aDtuKyspe3ZhciBhPWlbbl07aWYoYS5zdWJzdEZvcm1hdD09PXQpcmV0dXJuIGF9aWYocilyZXR1cm4gaS5wdXNoKHIpLHJ9ZnVuY3Rpb24gRXQoZSl7Zm9yKHZhciB0PW5ldyBBcnJheUJ1ZmZlcihlLmxlbmd0aCkscj1uZXcgVWludDhBcnJheSh0KSxpPTA7aTxlLmxlbmd0aDsrK2kpcltpXT1lW2ldO3JldHVybiB0fWZ1bmN0aW9uIEN0KGUsdCl7aWYoIWUpdGhyb3cgdH1mdW5jdGlvbiBMdChlLHQscixpLG4pe3ZhciBhO3JldHVybiBhPTA8KHQmaSk/KGE9ZS5wYXJzZUJ5dGUoKSwwPT0odCZuKSYmKGE9LWEpLHIrYSk6MDwodCZuKT9yOnIrZS5wYXJzZVNob3J0KCl9ZnVuY3Rpb24gT3QoZSx0LHIpe3ZhciBpLG4sYT1uZXcgc2UuUGFyc2VyKHQscik7aWYoZS5udW1iZXJPZkNvbnRvdXJzPWEucGFyc2VTaG9ydCgpLGUuX3hNaW49YS5wYXJzZVNob3J0KCksZS5feU1pbj1hLnBhcnNlU2hvcnQoKSxlLl94TWF4PWEucGFyc2VTaG9ydCgpLGUuX3lNYXg9YS5wYXJzZVNob3J0KCksMDxlLm51bWJlck9mQ29udG91cnMpe2Zvcih2YXIgbz1lLmVuZFBvaW50SW5kaWNlcz1bXSxzPTA7czxlLm51bWJlck9mQ29udG91cnM7cys9MSlvLnB1c2goYS5wYXJzZVVTaG9ydCgpKTtlLmluc3RydWN0aW9uTGVuZ3RoPWEucGFyc2VVU2hvcnQoKSxlLmluc3RydWN0aW9ucz1bXTtmb3IodmFyIGw9MDtsPGUuaW5zdHJ1Y3Rpb25MZW5ndGg7bCs9MSllLmluc3RydWN0aW9ucy5wdXNoKGEucGFyc2VCeXRlKCkpO3ZhciB1PW9bby5sZW5ndGgtMV0rMTtpPVtdO2Zvcih2YXIgaD0wO2g8dTtoKz0xKWlmKG49YS5wYXJzZUJ5dGUoKSxpLnB1c2gobiksMDwoOCZuKSlmb3IodmFyIGM9YS5wYXJzZUJ5dGUoKSxmPTA7ZjxjO2YrPTEpaS5wdXNoKG4pLGgrPTE7aWYoUC5hcmd1bWVudChpLmxlbmd0aD09PXUsXCJCYWQgZmxhZ3MuXCIpLDA8by5sZW5ndGgpe3ZhciBkLHA9W107aWYoMDx1KXtmb3IodmFyIG09MDttPHU7bSs9MSluPWlbbV0sKGQ9e30pLm9uQ3VydmU9ISEoMSZuKSxkLmxhc3RQb2ludE9mQ29udG91cj0wPD1vLmluZGV4T2YobSkscC5wdXNoKGQpO2Zvcih2YXIgdj0wLHk9MDt5PHU7eSs9MSluPWlbeV0sKGQ9cFt5XSkueD1MdChhLG4sdiwyLDE2KSx2PWQueDtmb3IodmFyIGc9MCxiPTA7Yjx1O2IrPTEpbj1pW2JdLChkPXBbYl0pLnk9THQoYSxuLGcsNCwzMiksZz1kLnl9ZS5wb2ludHM9cH1lbHNlIGUucG9pbnRzPVtdfWVsc2UgaWYoMD09PWUubnVtYmVyT2ZDb250b3VycyllLnBvaW50cz1bXTtlbHNle2UuaXNDb21wb3NpdGU9ITAsZS5wb2ludHM9W10sZS5jb21wb25lbnRzPVtdO2Zvcih2YXIgXz0hMDtfOyl7aT1hLnBhcnNlVVNob3J0KCk7dmFyIHg9e2dseXBoSW5kZXg6YS5wYXJzZVVTaG9ydCgpLHhTY2FsZToxLHNjYWxlMDE6MCxzY2FsZTEwOjAseVNjYWxlOjEsZHg6MCxkeTowfTswPCgxJmkpPzA8KDImaSk/KHguZHg9YS5wYXJzZVNob3J0KCkseC5keT1hLnBhcnNlU2hvcnQoKSk6eC5tYXRjaGVkUG9pbnRzPVthLnBhcnNlVVNob3J0KCksYS5wYXJzZVVTaG9ydCgpXTowPCgyJmkpPyh4LmR4PWEucGFyc2VDaGFyKCkseC5keT1hLnBhcnNlQ2hhcigpKTp4Lm1hdGNoZWRQb2ludHM9W2EucGFyc2VCeXRlKCksYS5wYXJzZUJ5dGUoKV0sMDwoOCZpKT94LnhTY2FsZT14LnlTY2FsZT1hLnBhcnNlRjJEb3QxNCgpOjA8KDY0JmkpPyh4LnhTY2FsZT1hLnBhcnNlRjJEb3QxNCgpLHgueVNjYWxlPWEucGFyc2VGMkRvdDE0KCkpOjA8KDEyOCZpKSYmKHgueFNjYWxlPWEucGFyc2VGMkRvdDE0KCkseC5zY2FsZTAxPWEucGFyc2VGMkRvdDE0KCkseC5zY2FsZTEwPWEucGFyc2VGMkRvdDE0KCkseC55U2NhbGU9YS5wYXJzZUYyRG90MTQoKSksZS5jb21wb25lbnRzLnB1c2goeCksXz0hISgzMiZpKX1pZigyNTYmaSl7ZS5pbnN0cnVjdGlvbkxlbmd0aD1hLnBhcnNlVVNob3J0KCksZS5pbnN0cnVjdGlvbnM9W107Zm9yKHZhciB3PTA7dzxlLmluc3RydWN0aW9uTGVuZ3RoO3crPTEpZS5pbnN0cnVjdGlvbnMucHVzaChhLnBhcnNlQnl0ZSgpKX19fWZ1bmN0aW9uIFB0KGUsdCl7Zm9yKHZhciByPVtdLGk9MDtpPGUubGVuZ3RoO2krPTEpe3ZhciBuPWVbaV0sYT17eDp0LnhTY2FsZSpuLngrdC5zY2FsZTAxKm4ueSt0LmR4LHk6dC5zY2FsZTEwKm4ueCt0LnlTY2FsZSpuLnkrdC5keSxvbkN1cnZlOm4ub25DdXJ2ZSxsYXN0UG9pbnRPZkNvbnRvdXI6bi5sYXN0UG9pbnRPZkNvbnRvdXJ9O3IucHVzaChhKX1yZXR1cm4gcn1mdW5jdGlvbiBSdChlKXt2YXIgdD1uZXcgSTtpZighZSlyZXR1cm4gdDtmb3IodmFyIHI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9W10saT0wO2k8ZS5sZW5ndGg7aSs9MSl7dmFyIG49ZVtpXTtyLnB1c2gobiksbi5sYXN0UG9pbnRPZkNvbnRvdXImJih0LnB1c2gocikscj1bXSl9cmV0dXJuIFAuYXJndW1lbnQoMD09PXIubGVuZ3RoLFwiVGhlcmUgYXJlIHN0aWxsIHBvaW50cyBsZWZ0IGluIHRoZSBjdXJyZW50IGNvbnRvdXIuXCIpLHR9KGUpLGk9MDtpPHIubGVuZ3RoOysraSl7dmFyIG49cltpXSxhPW51bGwsbz1uW24ubGVuZ3RoLTFdLHM9blswXTtpZihvLm9uQ3VydmUpdC5tb3ZlVG8oby54LG8ueSk7ZWxzZSBpZihzLm9uQ3VydmUpdC5tb3ZlVG8ocy54LHMueSk7ZWxzZXt2YXIgbD17eDouNSooby54K3MueCkseTouNSooby55K3MueSl9O3QubW92ZVRvKGwueCxsLnkpfWZvcih2YXIgdT0wO3U8bi5sZW5ndGg7Kyt1KWlmKGE9byxvPXMscz1uWyh1KzEpJW4ubGVuZ3RoXSxvLm9uQ3VydmUpdC5saW5lVG8oby54LG8ueSk7ZWxzZXt2YXIgaD1zO2Eub25DdXJ2ZXx8e3g6LjUqKG8ueCthLngpLHk6LjUqKG8ueSthLnkpfSxzLm9uQ3VydmV8fChoPXt4Oi41KihvLngrcy54KSx5Oi41KihvLnkrcy55KX0pLHQucXVhZHJhdGljQ3VydmVUbyhvLngsby55LGgueCxoLnkpfXQuY2xvc2VQYXRoKCl9cmV0dXJuIHR9ZnVuY3Rpb24gRHQoZSx0KXtpZih0LmlzQ29tcG9zaXRlKWZvcih2YXIgcj0wO3I8dC5jb21wb25lbnRzLmxlbmd0aDtyKz0xKXt2YXIgaT10LmNvbXBvbmVudHNbcl0sbj1lLmdldChpLmdseXBoSW5kZXgpO2lmKG4uZ2V0UGF0aCgpLG4ucG9pbnRzKXt2YXIgYT12b2lkIDA7aWYodm9pZCAwPT09aS5tYXRjaGVkUG9pbnRzKWE9UHQobi5wb2ludHMsaSk7ZWxzZXtpZihpLm1hdGNoZWRQb2ludHNbMF0+dC5wb2ludHMubGVuZ3RoLTF8fGkubWF0Y2hlZFBvaW50c1sxXT5uLnBvaW50cy5sZW5ndGgtMSl0aHJvdyBFcnJvcihcIk1hdGNoZWQgcG9pbnRzIG91dCBvZiByYW5nZSBpbiBcIit0Lm5hbWUpO3ZhciBvPXQucG9pbnRzW2kubWF0Y2hlZFBvaW50c1swXV0scz1uLnBvaW50c1tpLm1hdGNoZWRQb2ludHNbMV1dLGw9e3hTY2FsZTppLnhTY2FsZSxzY2FsZTAxOmkuc2NhbGUwMSxzY2FsZTEwOmkuc2NhbGUxMCx5U2NhbGU6aS55U2NhbGUsZHg6MCxkeTowfTtzPVB0KFtzXSxsKVswXSxsLmR4PW8ueC1zLngsbC5keT1vLnktcy55LGE9UHQobi5wb2ludHMsbCl9dC5wb2ludHM9dC5wb2ludHMuY29uY2F0KGEpfX1yZXR1cm4gUnQodC5wb2ludHMpfSh3dC5wcm90b3R5cGU9eHQucHJvdG90eXBlPXtzZWFyY2hUYWc6Z3QsYmluU2VhcmNoOmJ0LGdldFRhYmxlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZm9udC50YWJsZXNbdGhpcy50YWJsZU5hbWVdO3JldHVybiF0JiZlJiYodD10aGlzLmZvbnQudGFibGVzW3RoaXMudGFibGVOYW1lXT10aGlzLmNyZWF0ZURlZmF1bHRUYWJsZSgpKSx0fSxnZXRTY3JpcHROYW1lczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0VGFibGUoKTtyZXR1cm4gZT9lLnNjcmlwdHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ30pOltdfSxnZXREZWZhdWx0U2NyaXB0TmFtZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0VGFibGUoKTtpZihlKXtmb3IodmFyIHQ9ITEscj0wO3I8ZS5zY3JpcHRzLmxlbmd0aDtyKyspe3ZhciBpPWUuc2NyaXB0c1tyXS50YWc7aWYoXCJERkxUXCI9PT1pKXJldHVybiBpO1wibGF0blwiPT09aSYmKHQ9ITApfXJldHVybiB0P1wibGF0blwiOnZvaWQgMH19LGdldFNjcmlwdFRhYmxlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5nZXRUYWJsZSh0KTtpZihyKXtlPWV8fFwiREZMVFwiO3ZhciBpPXIuc2NyaXB0cyxuPWd0KHIuc2NyaXB0cyxlKTtpZigwPD1uKXJldHVybiBpW25dLnNjcmlwdDtpZih0KXt2YXIgYT17dGFnOmUsc2NyaXB0OntkZWZhdWx0TGFuZ1N5czp7cmVzZXJ2ZWQ6MCxyZXFGZWF0dXJlSW5kZXg6NjU1MzUsZmVhdHVyZUluZGV4ZXM6W119LGxhbmdTeXNSZWNvcmRzOltdfX07cmV0dXJuIGkuc3BsaWNlKC0xLW4sMCxhKSxhLnNjcmlwdH19fSxnZXRMYW5nU3lzVGFibGU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMuZ2V0U2NyaXB0VGFibGUoZSxyKTtpZihpKXtpZighdHx8XCJkZmx0XCI9PT10fHxcIkRGTFRcIj09PXQpcmV0dXJuIGkuZGVmYXVsdExhbmdTeXM7dmFyIG49Z3QoaS5sYW5nU3lzUmVjb3Jkcyx0KTtpZigwPD1uKXJldHVybiBpLmxhbmdTeXNSZWNvcmRzW25dLmxhbmdTeXM7aWYocil7dmFyIGE9e3RhZzp0LGxhbmdTeXM6e3Jlc2VydmVkOjAscmVxRmVhdHVyZUluZGV4OjY1NTM1LGZlYXR1cmVJbmRleGVzOltdfX07cmV0dXJuIGkubGFuZ1N5c1JlY29yZHMuc3BsaWNlKC0xLW4sMCxhKSxhLmxhbmdTeXN9fX0sZ2V0RmVhdHVyZVRhYmxlOmZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPXRoaXMuZ2V0TGFuZ1N5c1RhYmxlKGUsdCxpKTtpZihuKXtmb3IodmFyIGEsbz1uLmZlYXR1cmVJbmRleGVzLHM9dGhpcy5mb250LnRhYmxlc1t0aGlzLnRhYmxlTmFtZV0uZmVhdHVyZXMsbD0wO2w8by5sZW5ndGg7bCsrKWlmKChhPXNbb1tsXV0pLnRhZz09PXIpcmV0dXJuIGEuZmVhdHVyZTtpZihpKXt2YXIgdT1zLmxlbmd0aDtyZXR1cm4gUC5hc3NlcnQoMD09PXV8fHI+PXNbdS0xXS50YWcsXCJGZWF0dXJlcyBtdXN0IGJlIGFkZGVkIGluIGFscGhhYmV0aWNhbCBvcmRlci5cIiksYT17dGFnOnIsZmVhdHVyZTp7cGFyYW1zOjAsbG9va3VwTGlzdEluZGV4ZXM6W119fSxzLnB1c2goYSksby5wdXNoKHUpLGEuZmVhdHVyZX19fSxnZXRMb29rdXBUYWJsZXM6ZnVuY3Rpb24oZSx0LHIsaSxuKXt2YXIgYT10aGlzLmdldEZlYXR1cmVUYWJsZShlLHQscixuKSxvPVtdO2lmKGEpe2Zvcih2YXIgcyxsPWEubG9va3VwTGlzdEluZGV4ZXMsdT10aGlzLmZvbnQudGFibGVzW3RoaXMudGFibGVOYW1lXS5sb29rdXBzLGg9MDtoPGwubGVuZ3RoO2grKykocz11W2xbaF1dKS5sb29rdXBUeXBlPT09aSYmby5wdXNoKHMpO2lmKDA9PT1vLmxlbmd0aCYmbil7cz17bG9va3VwVHlwZTppLGxvb2t1cEZsYWc6MCxzdWJ0YWJsZXM6W10sbWFya0ZpbHRlcmluZ1NldDp2b2lkIDB9O3ZhciBjPXUubGVuZ3RoO3JldHVybiB1LnB1c2gocyksbC5wdXNoKGMpLFtzXX19cmV0dXJuIG99LGdldEdseXBoQ2xhc3M6ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZS5mb3JtYXQpe2Nhc2UgMTpyZXR1cm4gZS5zdGFydEdseXBoPD10JiZ0PGUuc3RhcnRHbHlwaCtlLmNsYXNzZXMubGVuZ3RoP2UuY2xhc3Nlc1t0LWUuc3RhcnRHbHlwaF06MDtjYXNlIDI6dmFyIHI9X3QoZS5yYW5nZXMsdCk7cmV0dXJuIHI/ci5jbGFzc0lkOjB9fSxnZXRDb3ZlcmFnZUluZGV4OmZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUuZm9ybWF0KXtjYXNlIDE6dmFyIHI9YnQoZS5nbHlwaHMsdCk7cmV0dXJuIDA8PXI/cjotMTtjYXNlIDI6dmFyIGk9X3QoZS5yYW5nZXMsdCk7cmV0dXJuIGk/aS5pbmRleCt0LWkuc3RhcnQ6LTF9fSxleHBhbmRDb3ZlcmFnZTpmdW5jdGlvbihlKXtpZigxPT09ZS5mb3JtYXQpcmV0dXJuIGUuZ2x5cGhzO2Zvcih2YXIgdD1bXSxyPWUucmFuZ2VzLGk9MDtpPHIubGVuZ3RoO2krKylmb3IodmFyIG49cltpXSxhPW4uc3RhcnQsbz1uLmVuZCxzPWE7czw9bztzKyspdC5wdXNoKHMpO3JldHVybiB0fX0pLmluaXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldERlZmF1bHRTY3JpcHROYW1lKCk7dGhpcy5kZWZhdWx0S2VybmluZ1RhYmxlcz10aGlzLmdldEtlcm5pbmdUYWJsZXMoZSl9LHd0LnByb3RvdHlwZS5nZXRLZXJuaW5nVmFsdWU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKWZvcih2YXIgbj1lW2ldLnN1YnRhYmxlcyxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV0scz10aGlzLmdldENvdmVyYWdlSW5kZXgoby5jb3ZlcmFnZSx0KTtpZighKHM8MCkpc3dpdGNoKG8ucG9zRm9ybWF0KXtjYXNlIDE6Zm9yKHZhciBsPW8ucGFpclNldHNbc10sdT0wO3U8bC5sZW5ndGg7dSsrKXt2YXIgaD1sW3VdO2lmKGguc2Vjb25kR2x5cGg9PT1yKXJldHVybiBoLnZhbHVlMSYmaC52YWx1ZTEueEFkdmFuY2V8fDB9YnJlYWs7Y2FzZSAyOnZhciBjPXRoaXMuZ2V0R2x5cGhDbGFzcyhvLmNsYXNzRGVmMSx0KSxmPXRoaXMuZ2V0R2x5cGhDbGFzcyhvLmNsYXNzRGVmMixyKSxkPW8uY2xhc3NSZWNvcmRzW2NdW2ZdO3JldHVybiBkLnZhbHVlMSYmZC52YWx1ZTEueEFkdmFuY2V8fDB9fXJldHVybiAwfSx3dC5wcm90b3R5cGUuZ2V0S2VybmluZ1RhYmxlcz1mdW5jdGlvbihlLHQpe2lmKHRoaXMuZm9udC50YWJsZXMuZ3BvcylyZXR1cm4gdGhpcy5nZXRMb29rdXBUYWJsZXMoZSx0LFwia2VyblwiLDIpfSwoU3QucHJvdG90eXBlPXh0LnByb3RvdHlwZSkuY3JlYXRlRGVmYXVsdFRhYmxlPWZ1bmN0aW9uKCl7cmV0dXJue3ZlcnNpb246MSxzY3JpcHRzOlt7dGFnOlwiREZMVFwiLHNjcmlwdDp7ZGVmYXVsdExhbmdTeXM6e3Jlc2VydmVkOjAscmVxRmVhdHVyZUluZGV4OjY1NTM1LGZlYXR1cmVJbmRleGVzOltdfSxsYW5nU3lzUmVjb3JkczpbXX19XSxmZWF0dXJlczpbXSxsb29rdXBzOltdfX0sU3QucHJvdG90eXBlLmdldFNpbmdsZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPVtdLG49dGhpcy5nZXRMb29rdXBUYWJsZXModCxyLGUsMSksYT0wO2E8bi5sZW5ndGg7YSsrKWZvcih2YXIgbz1uW2FdLnN1YnRhYmxlcyxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc10sdT10aGlzLmV4cGFuZENvdmVyYWdlKGwuY292ZXJhZ2UpLGg9dm9pZCAwO2lmKDE9PT1sLnN1YnN0Rm9ybWF0KXt2YXIgYz1sLmRlbHRhR2x5cGhJZDtmb3IoaD0wO2g8dS5sZW5ndGg7aCsrKXt2YXIgZj11W2hdO2kucHVzaCh7c3ViOmYsYnk6ZitjfSl9fWVsc2V7dmFyIGQ9bC5zdWJzdGl0dXRlO2ZvcihoPTA7aDx1Lmxlbmd0aDtoKyspaS5wdXNoKHtzdWI6dVtoXSxieTpkW2hdfSl9fXJldHVybiBpfSxTdC5wcm90b3R5cGUuZ2V0QWx0ZXJuYXRlcz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPVtdLG49dGhpcy5nZXRMb29rdXBUYWJsZXModCxyLGUsMyksYT0wO2E8bi5sZW5ndGg7YSsrKWZvcih2YXIgbz1uW2FdLnN1YnRhYmxlcyxzPTA7czxvLmxlbmd0aDtzKyspZm9yKHZhciBsPW9bc10sdT10aGlzLmV4cGFuZENvdmVyYWdlKGwuY292ZXJhZ2UpLGg9bC5hbHRlcm5hdGVTZXRzLGM9MDtjPHUubGVuZ3RoO2MrKylpLnB1c2goe3N1Yjp1W2NdLGJ5OmhbY119KTtyZXR1cm4gaX0sU3QucHJvdG90eXBlLmdldExpZ2F0dXJlcz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPVtdLG49dGhpcy5nZXRMb29rdXBUYWJsZXModCxyLGUsNCksYT0wO2E8bi5sZW5ndGg7YSsrKWZvcih2YXIgbz1uW2FdLnN1YnRhYmxlcyxzPTA7czxvLmxlbmd0aDtzKyspZm9yKHZhciBsPW9bc10sdT10aGlzLmV4cGFuZENvdmVyYWdlKGwuY292ZXJhZ2UpLGg9bC5saWdhdHVyZVNldHMsYz0wO2M8dS5sZW5ndGg7YysrKWZvcih2YXIgZj11W2NdLGQ9aFtjXSxwPTA7cDxkLmxlbmd0aDtwKyspe3ZhciBtPWRbcF07aS5wdXNoKHtzdWI6W2ZdLmNvbmNhdChtLmNvbXBvbmVudHMpLGJ5Om0ubGlnR2x5cGh9KX1yZXR1cm4gaX0sU3QucHJvdG90eXBlLmFkZFNpbmdsZT1mdW5jdGlvbihlLHQscixpKXt2YXIgbj1UdCh0aGlzLmdldExvb2t1cFRhYmxlcyhyLGksZSwxLCEwKVswXSwyLHtzdWJzdEZvcm1hdDoyLGNvdmVyYWdlOntmb3JtYXQ6MSxnbHlwaHM6W119LHN1YnN0aXR1dGU6W119KTtQLmFzc2VydCgxPT09bi5jb3ZlcmFnZS5mb3JtYXQsXCJMaWdhdHVyZTogdW5hYmxlIHRvIG1vZGlmeSBjb3ZlcmFnZSB0YWJsZSBmb3JtYXQgXCIrbi5jb3ZlcmFnZS5mb3JtYXQpO3ZhciBhPXQuc3ViLG89dGhpcy5iaW5TZWFyY2gobi5jb3ZlcmFnZS5nbHlwaHMsYSk7bzwwJiYobz0tMS1vLG4uY292ZXJhZ2UuZ2x5cGhzLnNwbGljZShvLDAsYSksbi5zdWJzdGl0dXRlLnNwbGljZShvLDAsMCkpLG4uc3Vic3RpdHV0ZVtvXT10LmJ5fSxTdC5wcm90b3R5cGUuYWRkQWx0ZXJuYXRlPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPVR0KHRoaXMuZ2V0TG9va3VwVGFibGVzKHIsaSxlLDMsITApWzBdLDEse3N1YnN0Rm9ybWF0OjEsY292ZXJhZ2U6e2Zvcm1hdDoxLGdseXBoczpbXX0sYWx0ZXJuYXRlU2V0czpbXX0pO1AuYXNzZXJ0KDE9PT1uLmNvdmVyYWdlLmZvcm1hdCxcIkxpZ2F0dXJlOiB1bmFibGUgdG8gbW9kaWZ5IGNvdmVyYWdlIHRhYmxlIGZvcm1hdCBcIituLmNvdmVyYWdlLmZvcm1hdCk7dmFyIGE9dC5zdWIsbz10aGlzLmJpblNlYXJjaChuLmNvdmVyYWdlLmdseXBocyxhKTtvPDAmJihvPS0xLW8sbi5jb3ZlcmFnZS5nbHlwaHMuc3BsaWNlKG8sMCxhKSxuLmFsdGVybmF0ZVNldHMuc3BsaWNlKG8sMCwwKSksbi5hbHRlcm5hdGVTZXRzW29dPXQuYnl9LFN0LnByb3RvdHlwZS5hZGRMaWdhdHVyZT1mdW5jdGlvbihlLHQscixpKXt2YXIgbj10aGlzLmdldExvb2t1cFRhYmxlcyhyLGksZSw0LCEwKVswXSxhPW4uc3VidGFibGVzWzBdO2F8fChhPXtzdWJzdEZvcm1hdDoxLGNvdmVyYWdlOntmb3JtYXQ6MSxnbHlwaHM6W119LGxpZ2F0dXJlU2V0czpbXX0sbi5zdWJ0YWJsZXNbMF09YSksUC5hc3NlcnQoMT09PWEuY292ZXJhZ2UuZm9ybWF0LFwiTGlnYXR1cmU6IHVuYWJsZSB0byBtb2RpZnkgY292ZXJhZ2UgdGFibGUgZm9ybWF0IFwiK2EuY292ZXJhZ2UuZm9ybWF0KTt2YXIgbz10LnN1YlswXSxzPXQuc3ViLnNsaWNlKDEpLGw9e2xpZ0dseXBoOnQuYnksY29tcG9uZW50czpzfSx1PXRoaXMuYmluU2VhcmNoKGEuY292ZXJhZ2UuZ2x5cGhzLG8pO2lmKDA8PXUpe2Zvcih2YXIgaD1hLmxpZ2F0dXJlU2V0c1t1XSxjPTA7YzxoLmxlbmd0aDtjKyspaWYoTXQoaFtjXS5jb21wb25lbnRzLHMpKXJldHVybjtoLnB1c2gobCl9ZWxzZSB1PS0xLXUsYS5jb3ZlcmFnZS5nbHlwaHMuc3BsaWNlKHUsMCxvKSxhLmxpZ2F0dXJlU2V0cy5zcGxpY2UodSwwLFtsXSl9LFN0LnByb3RvdHlwZS5nZXRGZWF0dXJlPWZ1bmN0aW9uKGUsdCxyKXtpZigvc3NcXGRcXGQvLnRlc3QoZSkpcmV0dXJuIHRoaXMuZ2V0U2luZ2xlKGUsdCxyKTtzd2l0Y2goZSl7Y2FzZVwiYWFsdFwiOmNhc2VcInNhbHRcIjpyZXR1cm4gdGhpcy5nZXRTaW5nbGUoZSx0LHIpLmNvbmNhdCh0aGlzLmdldEFsdGVybmF0ZXMoZSx0LHIpKTtjYXNlXCJkbGlnXCI6Y2FzZVwibGlnYVwiOmNhc2VcInJsaWdcIjpyZXR1cm4gdGhpcy5nZXRMaWdhdHVyZXMoZSx0LHIpfX0sU3QucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlLHQscixpKXtpZigvc3NcXGRcXGQvLnRlc3QoZSkpcmV0dXJuIHRoaXMuYWRkU2luZ2xlKGUsdCxyLGkpO3N3aXRjaChlKXtjYXNlXCJhYWx0XCI6Y2FzZVwic2FsdFwiOnJldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0LmJ5P3RoaXMuYWRkU2luZ2xlKGUsdCxyLGkpOnRoaXMuYWRkQWx0ZXJuYXRlKGUsdCxyLGkpO2Nhc2VcImRsaWdcIjpjYXNlXCJsaWdhXCI6Y2FzZVwicmxpZ1wiOnJldHVybiB0aGlzLmFkZExpZ2F0dXJlKGUsdCxyLGkpfX07dmFyIGt0LEF0LEl0LFV0LE50PXtnZXRQYXRoOlJ0LHBhcnNlOmZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbj1uZXcgeGUuR2x5cGhTZXQoaSksYT0wO2E8ci5sZW5ndGgtMTthKz0xKXt2YXIgbz1yW2FdO28hPT1yW2ErMV0/bi5wdXNoKGEseGUudHRmR2x5cGhMb2FkZXIoaSxhLE90LGUsdCtvLER0KSk6bi5wdXNoKGEseGUuZ2x5cGhMb2FkZXIoaSxhKSl9cmV0dXJuIG59fTtmdW5jdGlvbiBGdChlKXt0aGlzLmZvbnQ9ZSx0aGlzLmdldENvbW1hbmRzPWZ1bmN0aW9uKGUpe3JldHVybiBOdC5nZXRQYXRoKGUpLmNvbW1hbmRzfSx0aGlzLl9mcGdtU3RhdGU9dGhpcy5fcHJlcFN0YXRlPXZvaWQgMCx0aGlzLl9lcnJvclN0YXRlPTB9ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gR3QoZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLnJvdW5kKE1hdGguYWJzKGUpKX1mdW5jdGlvbiBqdChlKXtyZXR1cm4gTWF0aC5zaWduKGUpKk1hdGgucm91bmQoTWF0aC5hYnMoMiplKSkvMn1mdW5jdGlvbiBWdChlKXtyZXR1cm4gTWF0aC5zaWduKGUpKihNYXRoLnJvdW5kKE1hdGguYWJzKGUpKy41KS0uNSl9ZnVuY3Rpb24genQoZSl7cmV0dXJuIE1hdGguc2lnbihlKSpNYXRoLmNlaWwoTWF0aC5hYnMoZSkpfWZ1bmN0aW9uIEh0KGUpe3JldHVybiBNYXRoLnNpZ24oZSkqTWF0aC5mbG9vcihNYXRoLmFicyhlKSl9ZnVuY3Rpb24gV3QoZSl7dmFyIHQ9dGhpcy5zclBlcmlvZCxyPXRoaXMuc3JQaGFzZSxpPTE7cmV0dXJuIGU8MCYmKGU9LWUsaT0tMSksZSs9dGhpcy5zclRocmVzaG9sZC1yLGU9TWF0aC50cnVuYyhlL3QpKnQsKGUrPXIpPDA/cippOmUqaX12YXIgcXQ9e3g6MSx5OjAsYXhpczpcInhcIixkaXN0YW5jZTpmdW5jdGlvbihlLHQscixpKXtyZXR1cm4ocj9lLnhvOmUueCktKGk/dC54bzp0LngpfSxpbnRlcnBvbGF0ZTpmdW5jdGlvbihlLHQscixpKXt2YXIgbixhLG8scyxsLHUsaDtpZighaXx8aT09PXRoaXMpcmV0dXJuIG49ZS54by10LnhvLGE9ZS54by1yLnhvLGw9dC54LXQueG8sdT1yLngtci54bywwPT09KGg9KG89TWF0aC5hYnMobikpKyhzPU1hdGguYWJzKGEpKSk/dm9pZChlLng9ZS54bysobCt1KS8yKTp2b2lkKGUueD1lLnhvKyhsKnMrdSpvKS9oKTtuPWkuZGlzdGFuY2UoZSx0LCEwLCEwKSxhPWkuZGlzdGFuY2UoZSxyLCEwLCEwKSxsPWkuZGlzdGFuY2UodCx0LCExLCEwKSx1PWkuZGlzdGFuY2UocixyLCExLCEwKSwwIT09KGg9KG89TWF0aC5hYnMobikpKyhzPU1hdGguYWJzKGEpKSk/cXQuc2V0UmVsYXRpdmUoZSxlLChsKnMrdSpvKS9oLGksITApOnF0LnNldFJlbGF0aXZlKGUsZSwobCt1KS8yLGksITApfSxub3JtYWxTbG9wZTpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksc2V0UmVsYXRpdmU6ZnVuY3Rpb24oZSx0LHIsaSxuKXtpZihpJiZpIT09dGhpcyl7dmFyIGE9bj90LnhvOnQueCxvPW4/dC55bzp0Lnkscz1hK3IqaS54LGw9bytyKmkueTtlLng9cysoZS55LWwpL2kubm9ybWFsU2xvcGV9ZWxzZSBlLng9KG4/dC54bzp0LngpK3J9LHNsb3BlOjAsdG91Y2g6ZnVuY3Rpb24oZSl7ZS54VG91Y2hlZD0hMH0sdG91Y2hlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS54VG91Y2hlZH0sdW50b3VjaDpmdW5jdGlvbihlKXtlLnhUb3VjaGVkPSExfX0sWHQ9e3g6MCx5OjEsYXhpczpcInlcIixkaXN0YW5jZTpmdW5jdGlvbihlLHQscixpKXtyZXR1cm4ocj9lLnlvOmUueSktKGk/dC55bzp0LnkpfSxpbnRlcnBvbGF0ZTpmdW5jdGlvbihlLHQscixpKXt2YXIgbixhLG8scyxsLHUsaDtpZighaXx8aT09PXRoaXMpcmV0dXJuIG49ZS55by10LnlvLGE9ZS55by1yLnlvLGw9dC55LXQueW8sdT1yLnktci55bywwPT09KGg9KG89TWF0aC5hYnMobikpKyhzPU1hdGguYWJzKGEpKSk/dm9pZChlLnk9ZS55bysobCt1KS8yKTp2b2lkKGUueT1lLnlvKyhsKnMrdSpvKS9oKTtuPWkuZGlzdGFuY2UoZSx0LCEwLCEwKSxhPWkuZGlzdGFuY2UoZSxyLCEwLCEwKSxsPWkuZGlzdGFuY2UodCx0LCExLCEwKSx1PWkuZGlzdGFuY2UocixyLCExLCEwKSwwIT09KGg9KG89TWF0aC5hYnMobikpKyhzPU1hdGguYWJzKGEpKSk/WHQuc2V0UmVsYXRpdmUoZSxlLChsKnMrdSpvKS9oLGksITApOlh0LnNldFJlbGF0aXZlKGUsZSwobCt1KS8yLGksITApfSxub3JtYWxTbG9wZTowLHNldFJlbGF0aXZlOmZ1bmN0aW9uKGUsdCxyLGksbil7aWYoaSYmaSE9PXRoaXMpe3ZhciBhPW4/dC54bzp0Lngsbz1uP3QueW86dC55LHM9YStyKmkueCxsPW8rcippLnk7ZS55PWwraS5ub3JtYWxTbG9wZSooZS54LXMpfWVsc2UgZS55PShuP3QueW86dC55KStyfSxzbG9wZTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdG91Y2g6ZnVuY3Rpb24oZSl7ZS55VG91Y2hlZD0hMH0sdG91Y2hlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS55VG91Y2hlZH0sdW50b3VjaDpmdW5jdGlvbihlKXtlLnlUb3VjaGVkPSExfX07ZnVuY3Rpb24gWXQoZSx0KXt0aGlzLng9ZSx0aGlzLnk9dCx0aGlzLmF4aXM9dm9pZCAwLHRoaXMuc2xvcGU9dC9lLHRoaXMubm9ybWFsU2xvcGU9LWUvdCxPYmplY3QuZnJlZXplKHRoaXMpfWZ1bmN0aW9uIFp0KGUsdCl7dmFyIHI9TWF0aC5zcXJ0KGUqZSt0KnQpO3JldHVybiB0Lz1yLDE9PT0oZS89cikmJjA9PT10P3F0OjA9PT1lJiYxPT09dD9YdDpuZXcgWXQoZSx0KX1mdW5jdGlvbiBRdChlLHQscixpKXt0aGlzLng9dGhpcy54bz1NYXRoLnJvdW5kKDY0KmUpLzY0LHRoaXMueT10aGlzLnlvPU1hdGgucm91bmQoNjQqdCkvNjQsdGhpcy5sYXN0UG9pbnRPZkNvbnRvdXI9cix0aGlzLm9uQ3VydmU9aSx0aGlzLnByZXZQb2ludE9uQ29udG91cj12b2lkIDAsdGhpcy5uZXh0UG9pbnRPbkNvbnRvdXI9dm9pZCAwLHRoaXMueFRvdWNoZWQ9ITEsdGhpcy55VG91Y2hlZD0hMSxPYmplY3QucHJldmVudEV4dGVuc2lvbnModGhpcyl9T2JqZWN0LmZyZWV6ZShxdCksT2JqZWN0LmZyZWV6ZShYdCksWXQucHJvdG90eXBlLmRpc3RhbmNlPWZ1bmN0aW9uKGUsdCxyLGkpe3JldHVybiB0aGlzLngqcXQuZGlzdGFuY2UoZSx0LHIsaSkrdGhpcy55Klh0LmRpc3RhbmNlKGUsdCxyLGkpfSxZdC5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG4sYSxvLHMsbCx1LGg7bz1pLmRpc3RhbmNlKGUsdCwhMCwhMCkscz1pLmRpc3RhbmNlKGUsciwhMCwhMCksbj1pLmRpc3RhbmNlKHQsdCwhMSwhMCksYT1pLmRpc3RhbmNlKHIsciwhMSwhMCksMCE9PShoPShsPU1hdGguYWJzKG8pKSsodT1NYXRoLmFicyhzKSkpP3RoaXMuc2V0UmVsYXRpdmUoZSxlLChuKnUrYSpsKS9oLGksITApOnRoaXMuc2V0UmVsYXRpdmUoZSxlLChuK2EpLzIsaSwhMCl9LFl0LnByb3RvdHlwZS5zZXRSZWxhdGl2ZT1mdW5jdGlvbihlLHQscixpLG4pe2k9aXx8dGhpczt2YXIgYT1uP3QueG86dC54LG89bj90LnlvOnQueSxzPWErcippLngsbD1vK3IqaS55LHU9aS5ub3JtYWxTbG9wZSxoPXRoaXMuc2xvcGUsYz1lLngsZj1lLnk7ZS54PShoKmMtdSpzK2wtZikvKGgtdSksZS55PWgqKGUueC1jKStmfSxZdC5wcm90b3R5cGUudG91Y2g9ZnVuY3Rpb24oZSl7ZS54VG91Y2hlZD0hMCxlLnlUb3VjaGVkPSEwfSxRdC5wcm90b3R5cGUubmV4dFRvdWNoZWQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMubmV4dFBvaW50T25Db250b3VyOyFlLnRvdWNoZWQodCkmJnQhPT10aGlzOyl0PXQubmV4dFBvaW50T25Db250b3VyO3JldHVybiB0fSxRdC5wcm90b3R5cGUucHJldlRvdWNoZWQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMucHJldlBvaW50T25Db250b3VyOyFlLnRvdWNoZWQodCkmJnQhPT10aGlzOyl0PXQucHJldlBvaW50T25Db250b3VyO3JldHVybiB0fTt2YXIgS3Q9T2JqZWN0LmZyZWV6ZShuZXcgUXQoMCwwKSksSnQ9e2N2Q3V0SW46MTcvMTYsZGVsdGFCYXNlOjksZGVsdGFTaGlmdDouMTI1LGxvb3A6MSxtaW5EaXM6MSxhdXRvRmxpcDohMH07ZnVuY3Rpb24gJHQoZSx0KXtzd2l0Y2godGhpcy5lbnY9ZSx0aGlzLnN0YWNrPVtdLHRoaXMucHJvZz10LGUpe2Nhc2VcImdseWZcIjp0aGlzLnpwMD10aGlzLnpwMT10aGlzLnpwMj0xLHRoaXMucnAwPXRoaXMucnAxPXRoaXMucnAyPTA7Y2FzZVwicHJlcFwiOnRoaXMuZnY9dGhpcy5wdj10aGlzLmRwdj1xdCx0aGlzLnJvdW5kPUd0fX1mdW5jdGlvbiBlcihlKXtmb3IodmFyIHQ9ZS50Wm9uZT1uZXcgQXJyYXkoZS5nWm9uZS5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdPW5ldyBRdCgwLDApfWZ1bmN0aW9uIHRyKGUsdCl7dmFyIHIsaT1lLnByb2csbj1lLmlwLGE9MTtkb3tpZig4OD09PShyPWlbKytuXSkpYSsrO2Vsc2UgaWYoODk9PT1yKWEtLTtlbHNlIGlmKDY0PT09ciluKz1pW24rMV0rMTtlbHNlIGlmKDY1PT09ciluKz0yKmlbbisxXSsxO2Vsc2UgaWYoMTc2PD1yJiZyPD0xODMpbis9ci0xNzYrMTtlbHNlIGlmKDE4NDw9ciYmcjw9MTkxKW4rPTIqKHItMTg0KzEpO2Vsc2UgaWYodCYmMT09PWEmJjI3PT09cilicmVha313aGlsZSgwPGEpO2UuaXA9bn1mdW5jdGlvbiBycihlLHQpe1QuREVCVUcmJmNvbnNvbGUubG9nKHQuc3RlcCxcIlNWVENBW1wiK2UuYXhpcytcIl1cIiksdC5mdj10LnB2PXQuZHB2PWV9ZnVuY3Rpb24gaXIoZSx0KXtULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJTUFZUQ0FbXCIrZS5heGlzK1wiXVwiKSx0LnB2PXQuZHB2PWV9ZnVuY3Rpb24gbnIoZSx0KXtULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJTRlZUQ0FbXCIrZS5heGlzK1wiXVwiKSx0LmZ2PWV9ZnVuY3Rpb24gYXIoZSx0KXt2YXIgcixpLG49dC5zdGFjayxhPW4ucG9wKCksbz1uLnBvcCgpLHM9dC56MlthXSxsPXQuejFbb107VC5ERUJVRyYmY29uc29sZS5sb2coXCJTUFZUTFtcIitlK1wiXVwiLGEsbyksaT1lPyhyPXMueS1sLnksbC54LXMueCk6KHI9bC54LXMueCxsLnktcy55KSx0LnB2PXQuZHB2PVp0KHIsaSl9ZnVuY3Rpb24gb3IoZSx0KXt2YXIgcixpLG49dC5zdGFjayxhPW4ucG9wKCksbz1uLnBvcCgpLHM9dC56MlthXSxsPXQuejFbb107VC5ERUJVRyYmY29uc29sZS5sb2coXCJTRlZUTFtcIitlK1wiXVwiLGEsbyksaT1lPyhyPXMueS1sLnksbC54LXMueCk6KHI9bC54LXMueCxsLnktcy55KSx0LmZ2PVp0KHIsaSl9ZnVuY3Rpb24gc3IoZSl7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiUE9QW11cIiksZS5zdGFjay5wb3AoKX1mdW5jdGlvbiBscihlLHQpe3ZhciByPXQuc3RhY2sucG9wKCksaT10LnowW3JdLG49dC5mdixhPXQucHY7VC5ERUJVRyYmY29uc29sZS5sb2codC5zdGVwLFwiTURBUFtcIitlK1wiXVwiLHIpO3ZhciBvPWEuZGlzdGFuY2UoaSxLdCk7ZSYmKG89dC5yb3VuZChvKSksbi5zZXRSZWxhdGl2ZShpLEt0LG8sYSksbi50b3VjaChpKSx0LnJwMD10LnJwMT1yfWZ1bmN0aW9uIHVyKGUsdCl7dmFyIHIsaSxuLGE9dC56MixvPWEubGVuZ3RoLTI7VC5ERUJVRyYmY29uc29sZS5sb2codC5zdGVwLFwiSVVQW1wiK2UuYXhpcytcIl1cIik7Zm9yKHZhciBzPTA7czxvO3MrKylyPWFbc10sZS50b3VjaGVkKHIpfHwoaT1yLnByZXZUb3VjaGVkKGUpKSE9PXImJihpPT09KG49ci5uZXh0VG91Y2hlZChlKSkmJmUuc2V0UmVsYXRpdmUocixyLGUuZGlzdGFuY2UoaSxpLCExLCEwKSxlLCEwKSxlLmludGVycG9sYXRlKHIsaSxuLGUpKX1mdW5jdGlvbiBocihlLHQpe2Zvcih2YXIgcj10LnN0YWNrLGk9ZT90LnJwMTp0LnJwMixuPShlP3QuejA6dC56MSlbaV0sYT10LmZ2LG89dC5wdixzPXQubG9vcCxsPXQuejI7cy0tOyl7dmFyIHU9ci5wb3AoKSxoPWxbdV0sYz1vLmRpc3RhbmNlKG4sbiwhMSwhMCk7YS5zZXRSZWxhdGl2ZShoLGgsYyxvKSxhLnRvdWNoKGgpLFQuREVCVUcmJmNvbnNvbGUubG9nKHQuc3RlcCwoMTx0Lmxvb3A/XCJsb29wIFwiKyh0Lmxvb3AtcykrXCI6IFwiOlwiXCIpK1wiU0hQW1wiKyhlP1wicnAxXCI6XCJycDJcIikrXCJdXCIsdSl9dC5sb29wPTF9ZnVuY3Rpb24gY3IoZSx0KXt2YXIgcj10LnN0YWNrLGk9ZT90LnJwMTp0LnJwMixuPShlP3QuejA6dC56MSlbaV0sYT10LmZ2LG89dC5wdixzPXIucG9wKCksbD10LnoyW3QuY29udG91cnNbc11dLHU9bDtULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJTSENbXCIrZStcIl1cIixzKTtmb3IodmFyIGg9by5kaXN0YW5jZShuLG4sITEsITApO3UhPT1uJiZhLnNldFJlbGF0aXZlKHUsdSxoLG8pLCh1PXUubmV4dFBvaW50T25Db250b3VyKSE9PWw7KTt9ZnVuY3Rpb24gZnIoZSx0KXt2YXIgcixpLG49dC5zdGFjayxhPWU/dC5ycDE6dC5ycDIsbz0oZT90LnowOnQuejEpW2FdLHM9dC5mdixsPXQucHYsdT1uLnBvcCgpO3N3aXRjaChULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJTSFpbXCIrZStcIl1cIix1KSx1KXtjYXNlIDA6cj10LnRab25lO2JyZWFrO2Nhc2UgMTpyPXQuZ1pvbmU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHpvbmVcIil9Zm9yKHZhciBoPWwuZGlzdGFuY2UobyxvLCExLCEwKSxjPXIubGVuZ3RoLTIsZj0wO2Y8YztmKyspaT1yW2ZdLHMuc2V0UmVsYXRpdmUoaSxpLGgsbCl9ZnVuY3Rpb24gZHIoZSx0KXt2YXIgcj10LnN0YWNrLGk9ci5wb3AoKS82NCxuPXIucG9wKCksYT10LnoxW25dLG89dC56MFt0LnJwMF0scz10LmZ2LGw9dC5wdjtzLnNldFJlbGF0aXZlKGEsbyxpLGwpLHMudG91Y2goYSksVC5ERUJVRyYmY29uc29sZS5sb2codC5zdGVwLFwiTVNJUlBbXCIrZStcIl1cIixpLG4pLHQucnAxPXQucnAwLHQucnAyPW4sZSYmKHQucnAwPW4pfWZ1bmN0aW9uIHByKGUsdCl7dmFyIHI9dC5zdGFjayxpPXIucG9wKCksbj1yLnBvcCgpLGE9dC56MFtuXSxvPXQuZnYscz10LnB2LGw9dC5jdnRbaV07VC5ERUJVRyYmY29uc29sZS5sb2codC5zdGVwLFwiTUlBUFtcIitlK1wiXVwiLGksXCIoXCIsbCxcIilcIixuKTt2YXIgdT1zLmRpc3RhbmNlKGEsS3QpO2UmJihNYXRoLmFicyh1LWwpPHQuY3ZDdXRJbiYmKHU9bCksdT10LnJvdW5kKHUpKSxvLnNldFJlbGF0aXZlKGEsS3QsdSxzKSwwPT09dC56cDAmJihhLnhvPWEueCxhLnlvPWEueSksby50b3VjaChhKSx0LnJwMD10LnJwMT1ufWZ1bmN0aW9uIG1yKGUsdCl7dmFyIHI9dC5zdGFjayxpPXIucG9wKCksbj10LnoyW2ldO1QuREVCVUcmJmNvbnNvbGUubG9nKHQuc3RlcCxcIkdDW1wiK2UrXCJdXCIsaSksci5wdXNoKDY0KnQuZHB2LmRpc3RhbmNlKG4sS3QsZSwhMSkpfWZ1bmN0aW9uIHZyKGUsdCl7dmFyIHI9dC5zdGFjayxpPXIucG9wKCksbj1yLnBvcCgpLGE9dC56MVtpXSxvPXQuejBbbl0scz10LmRwdi5kaXN0YW5jZShvLGEsZSxlKTtULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJNRFtcIitlK1wiXVwiLGksbixcIi0+XCIscyksdC5zdGFjay5wdXNoKE1hdGgucm91bmQoNjQqcykpfWZ1bmN0aW9uIHlyKGUsdCl7dmFyIHI9dC5zdGFjayxpPXIucG9wKCksbj10LmZ2LGE9dC5wdixvPXQucHBlbSxzPXQuZGVsdGFCYXNlKzE2KihlLTEpLGw9dC5kZWx0YVNoaWZ0LHU9dC56MDtULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJERUxUQVBbXCIrZStcIl1cIixpLHIpO2Zvcih2YXIgaD0wO2g8aTtoKyspe3ZhciBjPXIucG9wKCksZj1yLnBvcCgpO2lmKHMrKCgyNDAmZik+PjQpPT09byl7dmFyIGQ9KDE1JmYpLTg7MDw9ZCYmZCsrLFQuREVCVUcmJmNvbnNvbGUubG9nKHQuc3RlcCxcIkRFTFRBUEZJWFwiLGMsXCJieVwiLGQqbCk7dmFyIHA9dVtjXTtuLnNldFJlbGF0aXZlKHAscCxkKmwsYSl9fX1mdW5jdGlvbiBncihlLHQpe3ZhciByPXQuc3RhY2ssaT1yLnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKHQuc3RlcCxcIlJPVU5EW11cIiksci5wdXNoKDY0KnQucm91bmQoaS82NCkpfWZ1bmN0aW9uIGJyKGUsdCl7dmFyIHI9dC5zdGFjayxpPXIucG9wKCksbj10LnBwZW0sYT10LmRlbHRhQmFzZSsxNiooZS0xKSxvPXQuZGVsdGFTaGlmdDtULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJERUxUQUNbXCIrZStcIl1cIixpLHIpO2Zvcih2YXIgcz0wO3M8aTtzKyspe3ZhciBsPXIucG9wKCksdT1yLnBvcCgpO2lmKGErKCgyNDAmdSk+PjQpPT09bil7dmFyIGg9KDE1JnUpLTg7MDw9aCYmaCsrO3ZhciBjPWgqbztULkRFQlVHJiZjb25zb2xlLmxvZyh0LnN0ZXAsXCJERUxUQUNGSVhcIixsLFwiYnlcIixjKSx0LmN2dFtsXSs9Y319fWZ1bmN0aW9uIF9yKGUsdCl7dmFyIHIsaSxuPXQuc3RhY2ssYT1uLnBvcCgpLG89bi5wb3AoKSxzPXQuejJbYV0sbD10LnoxW29dO1QuREVCVUcmJmNvbnNvbGUubG9nKHQuc3RlcCxcIlNEUFZUTFtcIitlK1wiXVwiLGEsbyksaT1lPyhyPXMueS1sLnksbC54LXMueCk6KHI9bC54LXMueCxsLnktcy55KSx0LmRwdj1adChyLGkpfWZ1bmN0aW9uIHhyKGUsdCl7dmFyIHI9dC5zdGFjayxpPXQucHJvZyxuPXQuaXA7VC5ERUJVRyYmY29uc29sZS5sb2codC5zdGVwLFwiUFVTSEJbXCIrZStcIl1cIik7Zm9yKHZhciBhPTA7YTxlO2ErKylyLnB1c2goaVsrK25dKTt0LmlwPW59ZnVuY3Rpb24gd3IoZSx0KXt2YXIgcj10LmlwLGk9dC5wcm9nLG49dC5zdGFjaztULkRFQlVHJiZjb25zb2xlLmxvZyh0LmlwLFwiUFVTSFdbXCIrZStcIl1cIik7Zm9yKHZhciBhPTA7YTxlO2ErKyl7dmFyIG89aVsrK3JdPDw4fGlbKytyXTszMjc2OCZvJiYobz0tKDErKDY1NTM1Xm8pKSksbi5wdXNoKG8pfXQuaXA9cn1mdW5jdGlvbiBTcihlLHQscixpLG4sYSl7dmFyIG8scyxsLHUsaD1hLnN0YWNrLGM9ZSYmaC5wb3AoKSxmPWgucG9wKCksZD1hLnJwMCxwPWEuejBbZF0sbT1hLnoxW2ZdLHY9YS5taW5EaXMseT1hLmZ2LGc9YS5kcHY7bD0wPD0ocz1vPWcuZGlzdGFuY2UobSxwLCEwLCEwKSk/MTotMSxzPU1hdGguYWJzKHMpLGUmJih1PWEuY3Z0W2NdLGkmJk1hdGguYWJzKHMtdSk8YS5jdkN1dEluJiYocz11KSksciYmczx2JiYocz12KSxpJiYocz1hLnJvdW5kKHMpKSx5LnNldFJlbGF0aXZlKG0scCxsKnMsZykseS50b3VjaChtKSxULkRFQlVHJiZjb25zb2xlLmxvZyhhLnN0ZXAsKGU/XCJNSVJQW1wiOlwiTURSUFtcIikrKHQ/XCJNXCI6XCJtXCIpKyhyP1wiPlwiOlwiX1wiKSsoaT9cIlJcIjpcIl9cIikrKDA9PT1uP1wiR3JcIjoxPT09bj9cIkJsXCI6Mj09PW4/XCJXaFwiOlwiXCIpK1wiXVwiLGU/YytcIihcIithLmN2dFtjXStcIixcIit1K1wiKVwiOlwiXCIsZixcIihkID1cIixvLFwiLT5cIixsKnMsXCIpXCIpLGEucnAxPWEucnAwLGEucnAyPWYsdCYmKGEucnAwPWYpfUZ0LnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKGUsdCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKFwiUG9pbnQgc2l6ZSBpcyBub3QgYSBudW1iZXIhXCIpO2lmKCEoMjx0aGlzLl9lcnJvclN0YXRlKSl7dmFyIHI9dGhpcy5mb250LGk9dGhpcy5fcHJlcFN0YXRlO2lmKCFpfHxpLnBwZW0hPT10KXt2YXIgbj10aGlzLl9mcGdtU3RhdGU7aWYoIW4peyR0LnByb3RvdHlwZT1KdCwobj10aGlzLl9mcGdtU3RhdGU9bmV3ICR0KFwiZnBnbVwiLHIudGFibGVzLmZwZ20pKS5mdW5jcz1bXSxuLmZvbnQ9cixULkRFQlVHJiYoY29uc29sZS5sb2coXCItLS1FWEVDIEZQR00tLS1cIiksbi5zdGVwPS0xKTt0cnl7QXQobil9Y2F0Y2goZSl7cmV0dXJuIGNvbnNvbGUubG9nKFwiSGludGluZyBlcnJvciBpbiBGUEdNOlwiK2UpLHZvaWQodGhpcy5fZXJyb3JTdGF0ZT0zKX19JHQucHJvdG90eXBlPW4sKGk9dGhpcy5fcHJlcFN0YXRlPW5ldyAkdChcInByZXBcIixyLnRhYmxlcy5wcmVwKSkucHBlbT10O3ZhciBhPXIudGFibGVzLmN2dDtpZihhKWZvcih2YXIgbz1pLmN2dD1uZXcgQXJyYXkoYS5sZW5ndGgpLHM9dC9yLnVuaXRzUGVyRW0sbD0wO2w8YS5sZW5ndGg7bCsrKW9bbF09YVtsXSpzO2Vsc2UgaS5jdnQ9W107VC5ERUJVRyYmKGNvbnNvbGUubG9nKFwiLS0tRVhFQyBQUkVQLS0tXCIpLGkuc3RlcD0tMSk7dHJ5e0F0KGkpfWNhdGNoKGUpe3RoaXMuX2Vycm9yU3RhdGU8MiYmY29uc29sZS5sb2coXCJIaW50aW5nIGVycm9yIGluIFBSRVA6XCIrZSksdGhpcy5fZXJyb3JTdGF0ZT0yfX1pZighKDE8dGhpcy5fZXJyb3JTdGF0ZSkpdHJ5e3JldHVybiBJdChlLGkpfWNhdGNoKGUpe3JldHVybiB0aGlzLl9lcnJvclN0YXRlPDEmJihjb25zb2xlLmxvZyhcIkhpbnRpbmcgZXJyb3I6XCIrZSksY29uc29sZS5sb2coXCJOb3RlOiBmdXJ0aGVyIGhpbnRpbmcgZXJyb3JzIGFyZSBzaWxlbmNlZFwiKSksdm9pZCh0aGlzLl9lcnJvclN0YXRlPTEpfX19LEl0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsaSxuLGE9dC5wcGVtL3QuZm9udC51bml0c1BlckVtLG89YSxzPWUuY29tcG9uZW50cztpZigkdC5wcm90b3R5cGU9dCxzKXt2YXIgbD10LmZvbnQ7aT1bXSxyPVtdO2Zvcih2YXIgdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgaD1zW3VdLGM9bC5nbHlwaHMuZ2V0KGguZ2x5cGhJbmRleCk7bj1uZXcgJHQoXCJnbHlmXCIsYy5pbnN0cnVjdGlvbnMpLFQuREVCVUcmJihjb25zb2xlLmxvZyhcIi0tLUVYRUMgQ09NUCBcIit1K1wiLS0tXCIpLG4uc3RlcD0tMSksVXQoYyxuLGEsbyk7Zm9yKHZhciBmPU1hdGgucm91bmQoaC5keCphKSxkPU1hdGgucm91bmQoaC5keSpvKSxwPW4uZ1pvbmUsbT1uLmNvbnRvdXJzLHY9MDt2PHAubGVuZ3RoO3YrKyl7dmFyIHk9cFt2XTt5LnhUb3VjaGVkPXkueVRvdWNoZWQ9ITEseS54bz15Lng9eS54K2YseS55bz15Lnk9eS55K2R9dmFyIGc9aS5sZW5ndGg7aS5wdXNoLmFwcGx5KGkscCk7Zm9yKHZhciBiPTA7YjxtLmxlbmd0aDtiKyspci5wdXNoKG1bYl0rZyl9ZS5pbnN0cnVjdGlvbnMmJiFuLmluaGliaXRHcmlkRml0JiYoKG49bmV3ICR0KFwiZ2x5ZlwiLGUuaW5zdHJ1Y3Rpb25zKSkuZ1pvbmU9bi56MD1uLnoxPW4uejI9aSxuLmNvbnRvdXJzPXIsaS5wdXNoKG5ldyBRdCgwLDApLG5ldyBRdChNYXRoLnJvdW5kKGUuYWR2YW5jZVdpZHRoKmEpLDApKSxULkRFQlVHJiYoY29uc29sZS5sb2coXCItLS1FWEVDIENPTVBPU0lURS0tLVwiKSxuLnN0ZXA9LTEpLEF0KG4pLGkubGVuZ3RoLT0yKX1lbHNlIG49bmV3ICR0KFwiZ2x5ZlwiLGUuaW5zdHJ1Y3Rpb25zKSxULkRFQlVHJiYoY29uc29sZS5sb2coXCItLS1FWEVDIEdMWVBILS0tXCIpLG4uc3RlcD0tMSksVXQoZSxuLGEsbyksaT1uLmdab25lO3JldHVybiBpfSxVdD1mdW5jdGlvbihlLHQscixpKXtmb3IodmFyIG4sYSxvLHM9ZS5wb2ludHN8fFtdLGw9cy5sZW5ndGgsdT10Lmdab25lPXQuejA9dC56MT10LnoyPVtdLGg9dC5jb250b3Vycz1bXSxjPTA7YzxsO2MrKyluPXNbY10sdVtjXT1uZXcgUXQobi54KnIsbi55Kmksbi5sYXN0UG9pbnRPZkNvbnRvdXIsbi5vbkN1cnZlKTtmb3IodmFyIGY9MDtmPGw7ZisrKW49dVtmXSxhfHwoYT1uLGgucHVzaChmKSksbi5sYXN0UG9pbnRPZkNvbnRvdXI/KChuLm5leHRQb2ludE9uQ29udG91cj1hKS5wcmV2UG9pbnRPbkNvbnRvdXI9bixhPXZvaWQgMCk6KG89dVtmKzFdLChuLm5leHRQb2ludE9uQ29udG91cj1vKS5wcmV2UG9pbnRPbkNvbnRvdXI9bik7aWYoIXQuaW5oaWJpdEdyaWRGaXQpe2lmKFQuREVCVUcpe2NvbnNvbGUubG9nKFwiUFJPQ0VTU0lORyBHTFlQSFwiLHQuc3RhY2spO2Zvcih2YXIgZD0wO2Q8bDtkKyspY29uc29sZS5sb2coZCx1W2RdLngsdVtkXS55KX1pZih1LnB1c2gobmV3IFF0KDAsMCksbmV3IFF0KE1hdGgucm91bmQoZS5hZHZhbmNlV2lkdGgqciksMCkpLEF0KHQpLHUubGVuZ3RoLT0yLFQuREVCVUcpe2NvbnNvbGUubG9nKFwiRklOSVNIRUQgR0xZUEhcIix0LnN0YWNrKTtmb3IodmFyIHA9MDtwPGw7cCsrKWNvbnNvbGUubG9nKHAsdVtwXS54LHVbcF0ueSl9fX0sQXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wcm9nO2lmKHQpe3ZhciByLGk9dC5sZW5ndGg7Zm9yKGUuaXA9MDtlLmlwPGk7ZS5pcCsrKXtpZihULkRFQlVHJiZlLnN0ZXArKywhKHI9a3RbdFtlLmlwXV0pKXRocm93IG5ldyBFcnJvcihcInVua25vd24gaW5zdHJ1Y3Rpb246IDB4XCIrTnVtYmVyKHRbZS5pcF0pLnRvU3RyaW5nKDE2KSk7cihlKX19fSxrdD1bcnIuYmluZCh2b2lkIDAsWHQpLHJyLmJpbmQodm9pZCAwLHF0KSxpci5iaW5kKHZvaWQgMCxYdCksaXIuYmluZCh2b2lkIDAscXQpLG5yLmJpbmQodm9pZCAwLFh0KSxuci5iaW5kKHZvaWQgMCxxdCksYXIuYmluZCh2b2lkIDAsMCksYXIuYmluZCh2b2lkIDAsMSksb3IuYmluZCh2b2lkIDAsMCksb3IuYmluZCh2b2lkIDAsMSksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCksaT10LnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNQVkZTW11cIixyLGkpLGUucHY9ZS5kcHY9WnQoaSxyKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCksaT10LnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNQVkZTW11cIixyLGkpLGUuZnY9WnQoaSxyKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPWUucHY7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiR1BWW11cIiksdC5wdXNoKDE2Mzg0KnIueCksdC5wdXNoKDE2Mzg0KnIueSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj1lLmZ2O1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIkdGVltdXCIpLHQucHVzaCgxNjM4NCpyLngpLHQucHVzaCgxNjM4NCpyLnkpfSxmdW5jdGlvbihlKXtlLmZ2PWUucHYsVC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU0ZWVFBWW11cIil9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9dC5wb3AoKSxuPXQucG9wKCksYT10LnBvcCgpLG89dC5wb3AoKSxzPWUuejAsbD1lLnoxLHU9c1tyXSxoPXNbaV0sYz1sW25dLGY9bFthXSxkPWUuejJbb107VC5ERUJVRyYmY29uc29sZS5sb2coXCJJU0VDVFtdLCBcIixyLGksbixhLG8pO3ZhciBwPXUueCxtPXUueSx2PWgueCx5PWgueSxnPWMueCxiPWMueSxfPWYueCx4PWYueSx3PShwLXYpKihiLXgpLShtLXkpKihnLV8pLFM9cCp5LW0qdixNPWcqeC1iKl87ZC54PShTKihnLV8pLU0qKHAtdikpL3csZC55PShTKihiLXgpLU0qKG0teSkpL3d9LGZ1bmN0aW9uKGUpe2UucnAwPWUuc3RhY2sucG9wKCksVC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU1JQMFtdXCIsZS5ycDApfSxmdW5jdGlvbihlKXtlLnJwMT1lLnN0YWNrLnBvcCgpLFQuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNSUDFbXVwiLGUucnAxKX0sZnVuY3Rpb24oZSl7ZS5ycDI9ZS5zdGFjay5wb3AoKSxULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJTUlAyW11cIixlLnJwMil9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sucG9wKCk7c3dpdGNoKFQuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNaUDBbXVwiLHQpLGUuenAwPXQpe2Nhc2UgMDplLnRab25lfHxlcihlKSxlLnowPWUudFpvbmU7YnJlYWs7Y2FzZSAxOmUuejA9ZS5nWm9uZTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcIkludmFsaWQgem9uZSBwb2ludGVyXCIpfX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjay5wb3AoKTtzd2l0Y2goVC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU1pQMVtdXCIsdCksZS56cDE9dCl7Y2FzZSAwOmUudFpvbmV8fGVyKGUpLGUuejE9ZS50Wm9uZTticmVhaztjYXNlIDE6ZS56MT1lLmdab25lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB6b25lIHBvaW50ZXJcIil9fSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLnBvcCgpO3N3aXRjaChULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJTWlAyW11cIix0KSxlLnpwMj10KXtjYXNlIDA6ZS50Wm9uZXx8ZXIoZSksZS56Mj1lLnRab25lO2JyZWFrO2Nhc2UgMTplLnoyPWUuZ1pvbmU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHpvbmUgcG9pbnRlclwiKX19LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sucG9wKCk7c3dpdGNoKFQuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNaUFNbXVwiLHQpLGUuenAwPWUuenAxPWUuenAyPXQsdCl7Y2FzZSAwOmUudFpvbmV8fGVyKGUpLGUuejA9ZS56MT1lLnoyPWUudFpvbmU7YnJlYWs7Y2FzZSAxOmUuejA9ZS56MT1lLnoyPWUuZ1pvbmU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHpvbmUgcG9pbnRlclwiKX19LGZ1bmN0aW9uKGUpe2UubG9vcD1lLnN0YWNrLnBvcCgpLFQuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNMT09QW11cIixlLmxvb3ApfSxmdW5jdGlvbihlKXtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJSVEdbXVwiKSxlLnJvdW5kPUd0fSxmdW5jdGlvbihlKXtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJSVEhHW11cIiksZS5yb3VuZD1WdH0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjay5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJTTURbXVwiLHQpLGUubWluRGlzPXQvNjR9LGZ1bmN0aW9uKGUpe1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIkVMU0VbXVwiKSx0cihlLCExKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjay5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJKTVBSW11cIix0KSxlLmlwKz10LTF9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU0NWVENJW11cIix0KSxlLmN2Q3V0SW49dC82NH0sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIkRVUFtdXCIpLHQucHVzaCh0W3QubGVuZ3RoLTFdKX0sc3IsZnVuY3Rpb24oZSl7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiQ0xFQVJbXVwiKSxlLnN0YWNrLmxlbmd0aD0wfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU1dBUFtdXCIpLHQucHVzaChyKSx0LnB1c2goaSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2s7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiREVQVEhbXVwiKSx0LnB1c2godC5sZW5ndGgpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJDSU5ERVhbXVwiLHIpLHQucHVzaCh0W3QubGVuZ3RoLXJdKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiTUlOREVYW11cIixyKSx0LnB1c2godC5zcGxpY2UodC5sZW5ndGgtciwxKVswXSl9LHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJMT09QQ0FMTFtdXCIscixpKTt2YXIgbj1lLmlwLGE9ZS5wcm9nO2UucHJvZz1lLmZ1bmNzW3JdO2Zvcih2YXIgbz0wO288aTtvKyspQXQoZSksVC5ERUJVRyYmY29uc29sZS5sb2coKytlLnN0ZXAsbysxPGk/XCJuZXh0IGxvb3BjYWxsXCI6XCJkb25lIGxvb3BjYWxsXCIsbyk7ZS5pcD1uLGUucHJvZz1hfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIkNBTExbXVwiLHQpO3ZhciByPWUuaXAsaT1lLnByb2c7ZS5wcm9nPWUuZnVuY3NbdF0sQXQoZSksZS5pcD1yLGUucHJvZz1pLFQuREVCVUcmJmNvbnNvbGUubG9nKCsrZS5zdGVwLFwicmV0dXJuaW5nIGZyb21cIix0KX0sZnVuY3Rpb24oZSl7aWYoXCJmcGdtXCIhPT1lLmVudil0aHJvdyBuZXcgRXJyb3IoXCJGREVGIG5vdCBhbGxvd2VkIGhlcmVcIik7dmFyIHQ9ZS5zdGFjayxyPWUucHJvZyxpPWUuaXAsbj10LnBvcCgpLGE9aTtmb3IoVC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiRkRFRltdXCIsbik7NDUhPT1yWysraV07KTtlLmlwPWksZS5mdW5jc1tuXT1yLnNsaWNlKGErMSxpKX0sdm9pZCAwLGxyLmJpbmQodm9pZCAwLDApLGxyLmJpbmQodm9pZCAwLDEpLHVyLmJpbmQodm9pZCAwLFh0KSx1ci5iaW5kKHZvaWQgMCxxdCksaHIuYmluZCh2b2lkIDAsMCksaHIuYmluZCh2b2lkIDAsMSksY3IuYmluZCh2b2lkIDAsMCksY3IuYmluZCh2b2lkIDAsMSksZnIuYmluZCh2b2lkIDAsMCksZnIuYmluZCh2b2lkIDAsMSksZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc3RhY2sscj1lLmxvb3AsaT1lLmZ2LG49dC5wb3AoKS82NCxhPWUuejI7ci0tOyl7dmFyIG89dC5wb3AoKSxzPWFbb107VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLCgxPGUubG9vcD9cImxvb3AgXCIrKGUubG9vcC1yKStcIjogXCI6XCJcIikrXCJTSFBJWFtdXCIsbyxuKSxpLnNldFJlbGF0aXZlKHMscyxuKSxpLnRvdWNoKHMpfWUubG9vcD0xfSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5zdGFjayxyPWUucnAxLGk9ZS5ycDIsbj1lLmxvb3AsYT1lLnowW3JdLG89ZS56MVtpXSxzPWUuZnYsbD1lLmRwdix1PWUuejI7bi0tOyl7dmFyIGg9dC5wb3AoKSxjPXVbaF07VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLCgxPGUubG9vcD9cImxvb3AgXCIrKGUubG9vcC1uKStcIjogXCI6XCJcIikrXCJJUFtdXCIsaCxyLFwiPC0+XCIsaSkscy5pbnRlcnBvbGF0ZShjLGEsbyxsKSxzLnRvdWNoKGMpfWUubG9vcD0xfSxkci5iaW5kKHZvaWQgMCwwKSxkci5iaW5kKHZvaWQgMCwxKSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5zdGFjayxyPWUucnAwLGk9ZS56MFtyXSxuPWUubG9vcCxhPWUuZnYsbz1lLnB2LHM9ZS56MTtuLS07KXt2YXIgbD10LnBvcCgpLHU9c1tsXTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsKDE8ZS5sb29wP1wibG9vcCBcIisoZS5sb29wLW4pK1wiOiBcIjpcIlwiKStcIkFMSUdOUlBbXVwiLGwpLGEuc2V0UmVsYXRpdmUodSxpLDAsbyksYS50b3VjaCh1KX1lLmxvb3A9MX0sZnVuY3Rpb24oZSl7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiUlRER1tdXCIpLGUucm91bmQ9anR9LHByLmJpbmQodm9pZCAwLDApLHByLmJpbmQodm9pZCAwLDEpLGZ1bmN0aW9uKGUpe3ZhciB0PWUucHJvZyxyPWUuaXAsaT1lLnN0YWNrLG49dFsrK3JdO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIk5QVVNIQltdXCIsbik7Zm9yKHZhciBhPTA7YTxuO2ErKylpLnB1c2godFsrK3JdKTtlLmlwPXJ9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuaXAscj1lLnByb2csaT1lLnN0YWNrLG49clsrK3RdO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIk5QVVNIV1tdXCIsbik7Zm9yKHZhciBhPTA7YTxuO2ErKyl7dmFyIG89clsrK3RdPDw4fHJbKyt0XTszMjc2OCZvJiYobz0tKDErKDY1NTM1Xm8pKSksaS5wdXNoKG8pfWUuaXA9dH0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPWUuc3RvcmU7cj1yfHwoZS5zdG9yZT1bXSk7dmFyIGk9dC5wb3AoKSxuPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiV1NcIixpLG4pLHJbbl09aX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPWUuc3RvcmUsaT10LnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlJTXCIsaSk7dmFyIG49ciYmcltpXXx8MDt0LnB1c2gobil9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJXQ1ZUUFwiLHIsaSksZS5jdnRbaV09ci82NH0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiUkNWVFwiLHIpLHQucHVzaCg2NCplLmN2dFtyXSl9LG1yLmJpbmQodm9pZCAwLDApLG1yLmJpbmQodm9pZCAwLDEpLHZvaWQgMCx2ci5iaW5kKHZvaWQgMCwwKSx2ci5iaW5kKHZvaWQgMCwxKSxmdW5jdGlvbihlKXtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJNUFBFTVtdXCIpLGUuc3RhY2sucHVzaChlLnBwZW0pfSx2b2lkIDAsZnVuY3Rpb24oZSl7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiRkxJUE9OW11cIiksZS5hdXRvRmxpcD0hMH0sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiTFRbXVwiLHIsaSksdC5wdXNoKGk8cj8xOjApfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiTFRFUVtdXCIscixpKSx0LnB1c2goaTw9cj8xOjApfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiR1RbXVwiLHIsaSksdC5wdXNoKHI8aT8xOjApfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiR1RFUVtdXCIscixpKSx0LnB1c2gocjw9aT8xOjApfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiRVFbXVwiLHIsaSksdC5wdXNoKHI9PT1pPzE6MCl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJORVFbXVwiLHIsaSksdC5wdXNoKHIhPT1pPzE6MCl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIk9ERFtdXCIsciksdC5wdXNoKE1hdGgudHJ1bmMociklMj8xOjApfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJFVkVOW11cIixyKSx0LnB1c2goTWF0aC50cnVuYyhyKSUyPzA6MSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiSUZbXVwiLHQpLHR8fCh0cihlLCEwKSxULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJFSUZbXVwiKSl9LGZ1bmN0aW9uKGUpe1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIkVJRltdXCIpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiQU5EW11cIixyLGkpLHQucHVzaChyJiZpPzE6MCl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJPUltdXCIscixpKSx0LnB1c2gocnx8aT8xOjApfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJOT1RbXVwiLHIpLHQucHVzaChyPzA6MSl9LHlyLmJpbmQodm9pZCAwLDEpLGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU0RCW11cIix0KSxlLmRlbHRhQmFzZT10fSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIlNEU1tdXCIsdCksZS5kZWx0YVNoaWZ0PU1hdGgucG93KC41LHQpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiQUREW11cIixyLGkpLHQucHVzaChpK3IpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU1VCW11cIixyLGkpLHQucHVzaChpLXIpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiRElWW11cIixyLGkpLHQucHVzaCg2NCppL3IpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiTVVMW11cIixyLGkpLHQucHVzaChpKnIvNjQpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJBQlNbXVwiLHIpLHQucHVzaChNYXRoLmFicyhyKSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpO1QuREVCVUcmJmNvbnNvbGUubG9nKGUuc3RlcCxcIk5FR1tdXCIsciksdC5wdXNoKC1yKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiRkxPT1JbXVwiLHIpLHQucHVzaCg2NCpNYXRoLmZsb29yKHIvNjQpKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiQ0VJTElOR1tdXCIsciksdC5wdXNoKDY0Kk1hdGguY2VpbChyLzY0KSl9LGdyLmJpbmQodm9pZCAwLDApLGdyLmJpbmQodm9pZCAwLDEpLGdyLmJpbmQodm9pZCAwLDIpLGdyLmJpbmQodm9pZCAwLDMpLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiV0NWVEZbXVwiLHIsaSksZS5jdnRbaV09ciplLnBwZW0vZS5mb250LnVuaXRzUGVyRW19LHlyLmJpbmQodm9pZCAwLDIpLHlyLmJpbmQodm9pZCAwLDMpLGJyLmJpbmQodm9pZCAwLDEpLGJyLmJpbmQodm9pZCAwLDIpLGJyLmJpbmQodm9pZCAwLDMpLGZ1bmN0aW9uKGUpe3ZhciB0LHI9ZS5zdGFjay5wb3AoKTtzd2l0Y2goVC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiU1JPVU5EW11cIixyKSxlLnJvdW5kPVd0LDE5MiZyKXtjYXNlIDA6dD0uNTticmVhaztjYXNlIDY0OnQ9MTticmVhaztjYXNlIDEyODp0PTI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIFNST1VORCB2YWx1ZVwiKX1zd2l0Y2goZS5zclBlcmlvZD10LDQ4JnIpe2Nhc2UgMDplLnNyUGhhc2U9MDticmVhaztjYXNlIDE2OmUuc3JQaGFzZT0uMjUqdDticmVhaztjYXNlIDMyOmUuc3JQaGFzZT0uNSp0O2JyZWFrO2Nhc2UgNDg6ZS5zclBoYXNlPS43NSp0O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBTUk9VTkQgdmFsdWVcIil9ciY9MTUsZS5zclRocmVzaG9sZD0wPT09cj8wOihyLzgtLjUpKnR9LGZ1bmN0aW9uKGUpe3ZhciB0LHI9ZS5zdGFjay5wb3AoKTtzd2l0Y2goVC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiUzQ1Uk9VTkRbXVwiLHIpLGUucm91bmQ9V3QsMTkyJnIpe2Nhc2UgMDp0PU1hdGguc3FydCgyKS8yO2JyZWFrO2Nhc2UgNjQ6dD1NYXRoLnNxcnQoMik7YnJlYWs7Y2FzZSAxMjg6dD0yKk1hdGguc3FydCgyKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcImludmFsaWQgUzQ1Uk9VTkQgdmFsdWVcIil9c3dpdGNoKGUuc3JQZXJpb2Q9dCw0OCZyKXtjYXNlIDA6ZS5zclBoYXNlPTA7YnJlYWs7Y2FzZSAxNjplLnNyUGhhc2U9LjI1KnQ7YnJlYWs7Y2FzZSAzMjplLnNyUGhhc2U9LjUqdDticmVhaztjYXNlIDQ4OmUuc3JQaGFzZT0uNzUqdDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcImludmFsaWQgUzQ1Uk9VTkQgdmFsdWVcIil9ciY9MTUsZS5zclRocmVzaG9sZD0wPT09cj8wOihyLzgtLjUpKnR9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oZSl7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiUk9GRltdXCIpLGUucm91bmQ9QnR9LHZvaWQgMCxmdW5jdGlvbihlKXtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJSVVRHW11cIiksZS5yb3VuZD16dH0sZnVuY3Rpb24oZSl7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiUkRUR1tdXCIpLGUucm91bmQ9SHR9LHNyLHNyLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjay5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJTQ0FOQ1RSTFtdXCIsdCl9LF9yLmJpbmQodm9pZCAwLDApLF9yLmJpbmQodm9pZCAwLDEpLGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9MDtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJHRVRJTkZPW11cIixyKSwxJnImJihpPTM1KSwzMiZyJiYoaXw9NDA5NiksdC5wdXNoKGkpfSx2b2lkIDAsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjayxyPXQucG9wKCksaT10LnBvcCgpLG49dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJST0xMW11cIiksdC5wdXNoKGkpLHQucHVzaChyKSx0LnB1c2gobil9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sscj10LnBvcCgpLGk9dC5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJNQVhbXVwiLHIsaSksdC5wdXNoKE1hdGgubWF4KGkscikpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN0YWNrLHI9dC5wb3AoKSxpPXQucG9wKCk7VC5ERUJVRyYmY29uc29sZS5sb2coZS5zdGVwLFwiTUlOW11cIixyLGkpLHQucHVzaChNYXRoLm1pbihpLHIpKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdGFjay5wb3AoKTtULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJTQ0FOVFlQRVtdXCIsdCl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhY2sucG9wKCkscj1lLnN0YWNrLnBvcCgpO3N3aXRjaChULkRFQlVHJiZjb25zb2xlLmxvZyhlLnN0ZXAsXCJJTlNUQ1RSTFtdXCIsdCxyKSx0KXtjYXNlIDE6cmV0dXJuIHZvaWQoZS5pbmhpYml0R3JpZEZpdD0hIXIpO2Nhc2UgMjpyZXR1cm4gdm9pZChlLmlnbm9yZUN2dD0hIXIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBJTlNUQ1RSTFtdIHNlbGVjdG9yXCIpfX0sdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAseHIuYmluZCh2b2lkIDAsMSkseHIuYmluZCh2b2lkIDAsMikseHIuYmluZCh2b2lkIDAsMykseHIuYmluZCh2b2lkIDAsNCkseHIuYmluZCh2b2lkIDAsNSkseHIuYmluZCh2b2lkIDAsNikseHIuYmluZCh2b2lkIDAsNykseHIuYmluZCh2b2lkIDAsOCksd3IuYmluZCh2b2lkIDAsMSksd3IuYmluZCh2b2lkIDAsMiksd3IuYmluZCh2b2lkIDAsMyksd3IuYmluZCh2b2lkIDAsNCksd3IuYmluZCh2b2lkIDAsNSksd3IuYmluZCh2b2lkIDAsNiksd3IuYmluZCh2b2lkIDAsNyksd3IuYmluZCh2b2lkIDAsOCksU3IuYmluZCh2b2lkIDAsMCwwLDAsMCwwKSxTci5iaW5kKHZvaWQgMCwwLDAsMCwwLDEpLFNyLmJpbmQodm9pZCAwLDAsMCwwLDAsMiksU3IuYmluZCh2b2lkIDAsMCwwLDAsMCwzKSxTci5iaW5kKHZvaWQgMCwwLDAsMCwxLDApLFNyLmJpbmQodm9pZCAwLDAsMCwwLDEsMSksU3IuYmluZCh2b2lkIDAsMCwwLDAsMSwyKSxTci5iaW5kKHZvaWQgMCwwLDAsMCwxLDMpLFNyLmJpbmQodm9pZCAwLDAsMCwxLDAsMCksU3IuYmluZCh2b2lkIDAsMCwwLDEsMCwxKSxTci5iaW5kKHZvaWQgMCwwLDAsMSwwLDIpLFNyLmJpbmQodm9pZCAwLDAsMCwxLDAsMyksU3IuYmluZCh2b2lkIDAsMCwwLDEsMSwwKSxTci5iaW5kKHZvaWQgMCwwLDAsMSwxLDEpLFNyLmJpbmQodm9pZCAwLDAsMCwxLDEsMiksU3IuYmluZCh2b2lkIDAsMCwwLDEsMSwzKSxTci5iaW5kKHZvaWQgMCwwLDEsMCwwLDApLFNyLmJpbmQodm9pZCAwLDAsMSwwLDAsMSksU3IuYmluZCh2b2lkIDAsMCwxLDAsMCwyKSxTci5iaW5kKHZvaWQgMCwwLDEsMCwwLDMpLFNyLmJpbmQodm9pZCAwLDAsMSwwLDEsMCksU3IuYmluZCh2b2lkIDAsMCwxLDAsMSwxKSxTci5iaW5kKHZvaWQgMCwwLDEsMCwxLDIpLFNyLmJpbmQodm9pZCAwLDAsMSwwLDEsMyksU3IuYmluZCh2b2lkIDAsMCwxLDEsMCwwKSxTci5iaW5kKHZvaWQgMCwwLDEsMSwwLDEpLFNyLmJpbmQodm9pZCAwLDAsMSwxLDAsMiksU3IuYmluZCh2b2lkIDAsMCwxLDEsMCwzKSxTci5iaW5kKHZvaWQgMCwwLDEsMSwxLDApLFNyLmJpbmQodm9pZCAwLDAsMSwxLDEsMSksU3IuYmluZCh2b2lkIDAsMCwxLDEsMSwyKSxTci5iaW5kKHZvaWQgMCwwLDEsMSwxLDMpLFNyLmJpbmQodm9pZCAwLDEsMCwwLDAsMCksU3IuYmluZCh2b2lkIDAsMSwwLDAsMCwxKSxTci5iaW5kKHZvaWQgMCwxLDAsMCwwLDIpLFNyLmJpbmQodm9pZCAwLDEsMCwwLDAsMyksU3IuYmluZCh2b2lkIDAsMSwwLDAsMSwwKSxTci5iaW5kKHZvaWQgMCwxLDAsMCwxLDEpLFNyLmJpbmQodm9pZCAwLDEsMCwwLDEsMiksU3IuYmluZCh2b2lkIDAsMSwwLDAsMSwzKSxTci5iaW5kKHZvaWQgMCwxLDAsMSwwLDApLFNyLmJpbmQodm9pZCAwLDEsMCwxLDAsMSksU3IuYmluZCh2b2lkIDAsMSwwLDEsMCwyKSxTci5iaW5kKHZvaWQgMCwxLDAsMSwwLDMpLFNyLmJpbmQodm9pZCAwLDEsMCwxLDEsMCksU3IuYmluZCh2b2lkIDAsMSwwLDEsMSwxKSxTci5iaW5kKHZvaWQgMCwxLDAsMSwxLDIpLFNyLmJpbmQodm9pZCAwLDEsMCwxLDEsMyksU3IuYmluZCh2b2lkIDAsMSwxLDAsMCwwKSxTci5iaW5kKHZvaWQgMCwxLDEsMCwwLDEpLFNyLmJpbmQodm9pZCAwLDEsMSwwLDAsMiksU3IuYmluZCh2b2lkIDAsMSwxLDAsMCwzKSxTci5iaW5kKHZvaWQgMCwxLDEsMCwxLDApLFNyLmJpbmQodm9pZCAwLDEsMSwwLDEsMSksU3IuYmluZCh2b2lkIDAsMSwxLDAsMSwyKSxTci5iaW5kKHZvaWQgMCwxLDEsMCwxLDMpLFNyLmJpbmQodm9pZCAwLDEsMSwxLDAsMCksU3IuYmluZCh2b2lkIDAsMSwxLDEsMCwxKSxTci5iaW5kKHZvaWQgMCwxLDEsMSwwLDIpLFNyLmJpbmQodm9pZCAwLDEsMSwxLDAsMyksU3IuYmluZCh2b2lkIDAsMSwxLDEsMSwwKSxTci5iaW5kKHZvaWQgMCwxLDEsMSwxLDEpLFNyLmJpbmQodm9pZCAwLDEsMSwxLDEsMiksU3IuYmluZCh2b2lkIDAsMSwxLDEsMSwzKV07dmFyIE1yPUFycmF5LmZyb218fGZ1bmN0aW9uKGUpe3JldHVybiBlLm1hdGNoKC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdP3xbXlxcdUQ4MDAtXFx1REZGRl18Li9nKXx8W119O2Z1bmN0aW9uIFRyKGUpeyhlPWV8fHt9KS5lbXB0eXx8KEN0KGUuZmFtaWx5TmFtZSxcIldoZW4gY3JlYXRpbmcgYSBuZXcgRm9udCBvYmplY3QsIGZhbWlseU5hbWUgaXMgcmVxdWlyZWQuXCIpLEN0KGUuc3R5bGVOYW1lLFwiV2hlbiBjcmVhdGluZyBhIG5ldyBGb250IG9iamVjdCwgc3R5bGVOYW1lIGlzIHJlcXVpcmVkLlwiKSxDdChlLnVuaXRzUGVyRW0sXCJXaGVuIGNyZWF0aW5nIGEgbmV3IEZvbnQgb2JqZWN0LCB1bml0c1BlckVtIGlzIHJlcXVpcmVkLlwiKSxDdChlLmFzY2VuZGVyLFwiV2hlbiBjcmVhdGluZyBhIG5ldyBGb250IG9iamVjdCwgYXNjZW5kZXIgaXMgcmVxdWlyZWQuXCIpLEN0KGUuZGVzY2VuZGVyLFwiV2hlbiBjcmVhdGluZyBhIG5ldyBGb250IG9iamVjdCwgZGVzY2VuZGVyIGlzIHJlcXVpcmVkLlwiKSxDdChlLmRlc2NlbmRlcjwwLFwiRGVzY2VuZGVyIHNob3VsZCBiZSBuZWdhdGl2ZSAoZS5nLiAtNTEyKS5cIiksdGhpcy5uYW1lcz17Zm9udEZhbWlseTp7ZW46ZS5mYW1pbHlOYW1lfHxcIiBcIn0sZm9udFN1YmZhbWlseTp7ZW46ZS5zdHlsZU5hbWV8fFwiIFwifSxmdWxsTmFtZTp7ZW46ZS5mdWxsTmFtZXx8ZS5mYW1pbHlOYW1lK1wiIFwiK2Uuc3R5bGVOYW1lfSxwb3N0U2NyaXB0TmFtZTp7ZW46ZS5wb3N0U2NyaXB0TmFtZXx8KGUuZmFtaWx5TmFtZStlLnN0eWxlTmFtZSkucmVwbGFjZSgvXFxzL2csXCJcIil9LGRlc2lnbmVyOntlbjplLmRlc2lnbmVyfHxcIiBcIn0sZGVzaWduZXJVUkw6e2VuOmUuZGVzaWduZXJVUkx8fFwiIFwifSxtYW51ZmFjdHVyZXI6e2VuOmUubWFudWZhY3R1cmVyfHxcIiBcIn0sbWFudWZhY3R1cmVyVVJMOntlbjplLm1hbnVmYWN0dXJlclVSTHx8XCIgXCJ9LGxpY2Vuc2U6e2VuOmUubGljZW5zZXx8XCIgXCJ9LGxpY2Vuc2VVUkw6e2VuOmUubGljZW5zZVVSTHx8XCIgXCJ9LHZlcnNpb246e2VuOmUudmVyc2lvbnx8XCJWZXJzaW9uIDAuMVwifSxkZXNjcmlwdGlvbjp7ZW46ZS5kZXNjcmlwdGlvbnx8XCIgXCJ9LGNvcHlyaWdodDp7ZW46ZS5jb3B5cmlnaHR8fFwiIFwifSx0cmFkZW1hcms6e2VuOmUudHJhZGVtYXJrfHxcIiBcIn19LHRoaXMudW5pdHNQZXJFbT1lLnVuaXRzUGVyRW18fDFlMyx0aGlzLmFzY2VuZGVyPWUuYXNjZW5kZXIsdGhpcy5kZXNjZW5kZXI9ZS5kZXNjZW5kZXIsdGhpcy5jcmVhdGVkVGltZXN0YW1wPWUuY3JlYXRlZFRpbWVzdGFtcCx0aGlzLnRhYmxlcz17b3MyOnt1c1dlaWdodENsYXNzOmUud2VpZ2h0Q2xhc3N8fHRoaXMudXNXZWlnaHRDbGFzc2VzLk1FRElVTSx1c1dpZHRoQ2xhc3M6ZS53aWR0aENsYXNzfHx0aGlzLnVzV2lkdGhDbGFzc2VzLk1FRElVTSxmc1NlbGVjdGlvbjplLmZzU2VsZWN0aW9ufHx0aGlzLmZzU2VsZWN0aW9uVmFsdWVzLlJFR1VMQVJ9fSksdGhpcy5zdXBwb3J0ZWQ9ITAsdGhpcy5nbHlwaHM9bmV3IHhlLkdseXBoU2V0KHRoaXMsZS5nbHlwaHN8fFtdKSx0aGlzLmVuY29kaW5nPW5ldyBkZSh0aGlzKSx0aGlzLnBvc2l0aW9uPW5ldyB3dCh0aGlzKSx0aGlzLnN1YnN0aXR1dGlvbj1uZXcgU3QodGhpcyksdGhpcy50YWJsZXM9dGhpcy50YWJsZXN8fHt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiaGludGluZ1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGludGluZz90aGlzLl9oaW50aW5nOlwidHJ1ZXR5cGVcIj09PXRoaXMub3V0bGluZXNGb3JtYXQ/dGhpcy5faGludGluZz1uZXcgRnQodGhpcyk6dm9pZCAwfX0pfWZ1bmN0aW9uIEVyKGUsdCl7dmFyIHI9SlNPTi5zdHJpbmdpZnkoZSksaT0yNTY7Zm9yKHZhciBuIGluIHQpe3ZhciBhPXBhcnNlSW50KG4pO2lmKGEmJiEoYTwyNTYpKXtpZihKU09OLnN0cmluZ2lmeSh0W25dKT09PXIpcmV0dXJuIGE7aTw9YSYmKGk9YSsxKX19cmV0dXJuIHRbaV09ZSxpfWZ1bmN0aW9uIENyKGUsdCxyLGkpe2Zvcih2YXIgbj1be25hbWU6XCJuYW1lSURfXCIrZSx0eXBlOlwiVVNIT1JUXCIsdmFsdWU6RXIodC5uYW1lLGkpfSx7bmFtZTpcImZsYWdzX1wiK2UsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9XSxhPTA7YTxyLmxlbmd0aDsrK2Epe3ZhciBvPXJbYV0udGFnO24ucHVzaCh7bmFtZTpcImF4aXNfXCIrZStcIiBcIitvLHR5cGU6XCJGSVhFRFwiLHZhbHVlOnQuY29vcmRpbmF0ZXNbb108PDE2fSl9cmV0dXJuIG59ZnVuY3Rpb24gTHIoZSx0LHIsaSl7dmFyIG49e30sYT1uZXcgc2UuUGFyc2VyKGUsdCk7bi5uYW1lPWlbYS5wYXJzZVVTaG9ydCgpXXx8e30sYS5za2lwKFwidVNob3J0XCIsMSksbi5jb29yZGluYXRlcz17fTtmb3IodmFyIG89MDtvPHIubGVuZ3RoOysrbyluLmNvb3JkaW5hdGVzW3Jbb10udGFnXT1hLnBhcnNlRml4ZWQoKTtyZXR1cm4gbn1Uci5wcm90b3R5cGUuaGFzQ2hhcj1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PXRoaXMuZW5jb2RpbmcuY2hhclRvR2x5cGhJbmRleChlKX0sVHIucHJvdG90eXBlLmNoYXJUb0dseXBoSW5kZXg9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZW5jb2RpbmcuY2hhclRvR2x5cGhJbmRleChlKX0sVHIucHJvdG90eXBlLmNoYXJUb0dseXBoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY2hhclRvR2x5cGhJbmRleChlKSxyPXRoaXMuZ2x5cGhzLmdldCh0KTtyZXR1cm4gcj1yfHx0aGlzLmdseXBocy5nZXQoMCl9LFRyLnByb3RvdHlwZS5zdHJpbmdUb0dseXBocz1mdW5jdGlvbihlLHQpe3Q9dHx8dGhpcy5kZWZhdWx0UmVuZGVyT3B0aW9ucztmb3IodmFyIHI9TXIoZSksaT1bXSxuPTA7bjxyLmxlbmd0aDtuKz0xKXt2YXIgYT1yW25dO2kucHVzaCh0aGlzLmNoYXJUb0dseXBoSW5kZXgoYSkpfXZhciBvPWkubGVuZ3RoO2lmKHQuZmVhdHVyZXMpe3ZhciBzPXQuc2NyaXB0fHx0aGlzLnN1YnN0aXR1dGlvbi5nZXREZWZhdWx0U2NyaXB0TmFtZSgpLGw9W107dC5mZWF0dXJlcy5saWdhJiYobD1sLmNvbmNhdCh0aGlzLnN1YnN0aXR1dGlvbi5nZXRGZWF0dXJlKFwibGlnYVwiLHMsdC5sYW5ndWFnZSkpKSx0LmZlYXR1cmVzLnJsaWcmJihsPWwuY29uY2F0KHRoaXMuc3Vic3RpdHV0aW9uLmdldEZlYXR1cmUoXCJybGlnXCIscyx0Lmxhbmd1YWdlKSkpO2Zvcih2YXIgdT0wO3U8bzt1Kz0xKWZvcih2YXIgaD0wO2g8bC5sZW5ndGg7aCsrKXtmb3IodmFyIGM9bFtoXSxmPWMuc3ViLGQ9Zi5sZW5ndGgscD0wO3A8ZCYmZltwXT09PWlbdStwXTspcCsrO3A9PT1kJiYoaS5zcGxpY2UodSxkLGMuYnkpLG89by1kKzEpfX1mb3IodmFyIG09bmV3IEFycmF5KG8pLHY9dGhpcy5nbHlwaHMuZ2V0KDApLHk9MDt5PG87eSs9MSltW3ldPXRoaXMuZ2x5cGhzLmdldChpW3ldKXx8djtyZXR1cm4gbX0sVHIucHJvdG90eXBlLm5hbWVUb0dseXBoSW5kZXg9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZ2x5cGhOYW1lcy5uYW1lVG9HbHlwaEluZGV4KGUpfSxUci5wcm90b3R5cGUubmFtZVRvR2x5cGg9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5uYW1lVG9HbHlwaEluZGV4KGUpLHI9dGhpcy5nbHlwaHMuZ2V0KHQpO3JldHVybiByPXJ8fHRoaXMuZ2x5cGhzLmdldCgwKX0sVHIucHJvdG90eXBlLmdseXBoSW5kZXhUb05hbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZ2x5cGhOYW1lcy5nbHlwaEluZGV4VG9OYW1lP3RoaXMuZ2x5cGhOYW1lcy5nbHlwaEluZGV4VG9OYW1lKGUpOlwiXCJ9LFRyLnByb3RvdHlwZS5nZXRLZXJuaW5nVmFsdWU9ZnVuY3Rpb24oZSx0KXtlPWUuaW5kZXh8fGUsdD10LmluZGV4fHx0O3ZhciByPXRoaXMucG9zaXRpb24uZGVmYXVsdEtlcm5pbmdUYWJsZXM7cmV0dXJuIHI/dGhpcy5wb3NpdGlvbi5nZXRLZXJuaW5nVmFsdWUocixlLHQpOnRoaXMua2VybmluZ1BhaXJzW2UrXCIsXCIrdF18fDB9LFRyLnByb3RvdHlwZS5kZWZhdWx0UmVuZGVyT3B0aW9ucz17a2VybmluZzohMCxmZWF0dXJlczp7bGlnYTohMCxybGlnOiEwfX0sVHIucHJvdG90eXBlLmZvckVhY2hHbHlwaD1mdW5jdGlvbihlLHQscixpLG4sYSl7dD12b2lkIDAhPT10P3Q6MCxyPXZvaWQgMCE9PXI/cjowLGk9dm9pZCAwIT09aT9pOjcyLG49bnx8dGhpcy5kZWZhdWx0UmVuZGVyT3B0aW9uczt2YXIgbyxzPTEvdGhpcy51bml0c1BlckVtKmksbD10aGlzLnN0cmluZ1RvR2x5cGhzKGUsbik7aWYobi5rZXJuaW5nKXt2YXIgdT1uLnNjcmlwdHx8dGhpcy5wb3NpdGlvbi5nZXREZWZhdWx0U2NyaXB0TmFtZSgpO289dGhpcy5wb3NpdGlvbi5nZXRLZXJuaW5nVGFibGVzKHUsbi5sYW5ndWFnZSl9Zm9yKHZhciBoPTA7aDxsLmxlbmd0aDtoKz0xKXt2YXIgYz1sW2hdO2lmKGEuY2FsbCh0aGlzLGMsdCxyLGksbiksYy5hZHZhbmNlV2lkdGgmJih0Kz1jLmFkdmFuY2VXaWR0aCpzKSxuLmtlcm5pbmcmJmg8bC5sZW5ndGgtMSl0Kz0obz90aGlzLnBvc2l0aW9uLmdldEtlcm5pbmdWYWx1ZShvLGMuaW5kZXgsbFtoKzFdLmluZGV4KTp0aGlzLmdldEtlcm5pbmdWYWx1ZShjLGxbaCsxXSkpKnM7bi5sZXR0ZXJTcGFjaW5nP3QrPW4ubGV0dGVyU3BhY2luZyppOm4udHJhY2tpbmcmJih0Kz1uLnRyYWNraW5nLzFlMyppKX1yZXR1cm4gdH0sVHIucHJvdG90eXBlLmdldFBhdGg9ZnVuY3Rpb24oZSx0LHIsaSxhKXt2YXIgbz1uZXcgSTtyZXR1cm4gdGhpcy5mb3JFYWNoR2x5cGgoZSx0LHIsaSxhLGZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPWUuZ2V0UGF0aCh0LHIsaSxhLHRoaXMpO28uZXh0ZW5kKG4pfSksb30sVHIucHJvdG90eXBlLmdldFBhdGhzPWZ1bmN0aW9uKGUsdCxyLGksYSl7dmFyIG89W107cmV0dXJuIHRoaXMuZm9yRWFjaEdseXBoKGUsdCxyLGksYSxmdW5jdGlvbihlLHQscixpKXt2YXIgbj1lLmdldFBhdGgodCxyLGksYSx0aGlzKTtvLnB1c2gobil9KSxvfSxUci5wcm90b3R5cGUuZ2V0QWR2YW5jZVdpZHRoPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdGhpcy5mb3JFYWNoR2x5cGgoZSwwLDAsdCxyLGZ1bmN0aW9uKCl7fSl9LFRyLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKGUsdCxyLGksbixhKXt0aGlzLmdldFBhdGgodCxyLGksbixhKS5kcmF3KGUpfSxUci5wcm90b3R5cGUuZHJhd1BvaW50cz1mdW5jdGlvbihuLGUsdCxyLGksYSl7dGhpcy5mb3JFYWNoR2x5cGgoZSx0LHIsaSxhLGZ1bmN0aW9uKGUsdCxyLGkpe2UuZHJhd1BvaW50cyhuLHQscixpKX0pfSxUci5wcm90b3R5cGUuZHJhd01ldHJpY3M9ZnVuY3Rpb24obixlLHQscixpLGEpe3RoaXMuZm9yRWFjaEdseXBoKGUsdCxyLGksYSxmdW5jdGlvbihlLHQscixpKXtlLmRyYXdNZXRyaWNzKG4sdCxyLGkpfSl9LFRyLnByb3RvdHlwZS5nZXRFbmdsaXNoTmFtZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm5hbWVzW2VdO2lmKHQpcmV0dXJuIHQuZW59LFRyLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7ZnVuY3Rpb24gZShlKXt2YXIgdD1yLmdldEVuZ2xpc2hOYW1lKGUpO3QmJnQudHJpbSgpLmxlbmd0aH1lKFwiZm9udEZhbWlseVwiKSxlKFwid2VpZ2h0TmFtZVwiKSxlKFwibWFudWZhY3R1cmVyXCIpLGUoXCJjb3B5cmlnaHRcIiksZShcInZlcnNpb25cIiksdGhpcy51bml0c1BlckVtfSxUci5wcm90b3R5cGUudG9UYWJsZXM9ZnVuY3Rpb24oKXtyZXR1cm4geXQuZm9udFRvVGFibGUodGhpcyl9LFRyLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbigpe3JldHVybiBjb25zb2xlLndhcm4oXCJGb250LnRvQnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBGb250LnRvQXJyYXlCdWZmZXIgaW5zdGVhZC5cIiksdGhpcy50b0FycmF5QnVmZmVyKCl9LFRyLnByb3RvdHlwZS50b0FycmF5QnVmZmVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMudG9UYWJsZXMoKS5lbmNvZGUoKSx0PW5ldyBBcnJheUJ1ZmZlcihlLmxlbmd0aCkscj1uZXcgVWludDhBcnJheSh0KSxpPTA7aTxlLmxlbmd0aDtpKyspcltpXT1lW2ldO3JldHVybiB0fSxUci5wcm90b3R5cGUuZG93bmxvYWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXRFbmdsaXNoTmFtZShcImZvbnRGYW1pbHlcIikscj10aGlzLmdldEVuZ2xpc2hOYW1lKFwiZm9udFN1YmZhbWlseVwiKTt0PXR8fGUucmVwbGFjZSgvXFxzL2csXCJcIikrXCItXCIrcitcIi5vdGZcIjt2YXIgbj10aGlzLnRvQXJyYXlCdWZmZXIoKTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93KXdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbT13aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW18fHdpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSx3aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlRFTVBPUkFSWSxuLmJ5dGVMZW5ndGgsZnVuY3Rpb24oZSl7ZS5yb290LmdldEZpbGUodCx7Y3JlYXRlOiEwfSxmdW5jdGlvbihpKXtpLmNyZWF0ZVdyaXRlcihmdW5jdGlvbihlKXt2YXIgdD1uZXcgRGF0YVZpZXcobikscj1uZXcgQmxvYihbdF0se3R5cGU6XCJmb250L29wZW50eXBlXCJ9KTtlLndyaXRlKHIpLGUuYWRkRXZlbnRMaXN0ZW5lcihcIndyaXRlZW5kXCIsZnVuY3Rpb24oKXtsb2NhdGlvbi5ocmVmPWkudG9VUkwoKX0sITEpfSl9KX0sZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUubmFtZStcIjogXCIrZS5tZXNzYWdlKX0pO2Vsc2V7dmFyIGk9anIoXCJmc1wiKSxhPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgR3IoZS5ieXRlTGVuZ3RoKSxyPW5ldyBVaW50OEFycmF5KGUpLGk9MDtpPHQubGVuZ3RoOysraSl0W2ldPXJbaV07cmV0dXJuIHR9KG4pO2kud3JpdGVGaWxlU3luYyh0LGEpfX0sVHIucHJvdG90eXBlLmZzU2VsZWN0aW9uVmFsdWVzPXtJVEFMSUM6MSxVTkRFUlNDT1JFOjIsTkVHQVRJVkU6NCxPVVRMSU5FRDo4LFNUUklLRU9VVDoxNixCT0xEOjMyLFJFR1VMQVI6NjQsVVNFUl9UWVBPX01FVFJJQ1M6MTI4LFdXUzoyNTYsT0JMSVFVRTo1MTJ9LFRyLnByb3RvdHlwZS51c1dpZHRoQ2xhc3Nlcz17VUxUUkFfQ09OREVOU0VEOjEsRVhUUkFfQ09OREVOU0VEOjIsQ09OREVOU0VEOjMsU0VNSV9DT05ERU5TRUQ6NCxNRURJVU06NSxTRU1JX0VYUEFOREVEOjYsRVhQQU5ERUQ6NyxFWFRSQV9FWFBBTkRFRDo4LFVMVFJBX0VYUEFOREVEOjl9LFRyLnByb3RvdHlwZS51c1dlaWdodENsYXNzZXM9e1RISU46MTAwLEVYVFJBX0xJR0hUOjIwMCxMSUdIVDozMDAsTk9STUFMOjQwMCxNRURJVU06NTAwLFNFTUlfQk9MRDo2MDAsQk9MRDo3MDAsRVhUUkFfQk9MRDo4MDAsQkxBQ0s6OTAwfTt2YXIgT3I9e21ha2U6ZnVuY3Rpb24oZSx0KXt2YXIgcixpLG4sYSxvPW5ldyAkLlRhYmxlKFwiZnZhclwiLFt7bmFtZTpcInZlcnNpb25cIix0eXBlOlwiVUxPTkdcIix2YWx1ZTo2NTUzNn0se25hbWU6XCJvZmZzZXRUb0RhdGFcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6MH0se25hbWU6XCJjb3VudFNpemVQYWlyc1wiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZToyfSx7bmFtZTpcImF4aXNDb3VudFwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTplLmF4ZXMubGVuZ3RofSx7bmFtZTpcImF4aXNTaXplXCIsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjIwfSx7bmFtZTpcImluc3RhbmNlQ291bnRcIix0eXBlOlwiVVNIT1JUXCIsdmFsdWU6ZS5pbnN0YW5jZXMubGVuZ3RofSx7bmFtZTpcImluc3RhbmNlU2l6ZVwiLHR5cGU6XCJVU0hPUlRcIix2YWx1ZTo0KzQqZS5heGVzLmxlbmd0aH1dKTtvLm9mZnNldFRvRGF0YT1vLnNpemVPZigpO2Zvcih2YXIgcz0wO3M8ZS5heGVzLmxlbmd0aDtzKyspby5maWVsZHM9by5maWVsZHMuY29uY2F0KChyPXMsaT1lLmF4ZXNbc10sbj10LGE9RXIoaS5uYW1lLG4pLFt7bmFtZTpcInRhZ19cIityLHR5cGU6XCJUQUdcIix2YWx1ZTppLnRhZ30se25hbWU6XCJtaW5WYWx1ZV9cIityLHR5cGU6XCJGSVhFRFwiLHZhbHVlOmkubWluVmFsdWU8PDE2fSx7bmFtZTpcImRlZmF1bHRWYWx1ZV9cIityLHR5cGU6XCJGSVhFRFwiLHZhbHVlOmkuZGVmYXVsdFZhbHVlPDwxNn0se25hbWU6XCJtYXhWYWx1ZV9cIityLHR5cGU6XCJGSVhFRFwiLHZhbHVlOmkubWF4VmFsdWU8PDE2fSx7bmFtZTpcImZsYWdzX1wiK3IsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOjB9LHtuYW1lOlwibmFtZUlEX1wiK3IsdHlwZTpcIlVTSE9SVFwiLHZhbHVlOmF9XSkpO2Zvcih2YXIgbD0wO2w8ZS5pbnN0YW5jZXMubGVuZ3RoO2wrKylvLmZpZWxkcz1vLmZpZWxkcy5jb25jYXQoQ3IobCxlLmluc3RhbmNlc1tsXSxlLmF4ZXMsdCkpO3JldHVybiBvfSxwYXJzZTpmdW5jdGlvbihlLHQscil7dmFyIGk9bmV3IHNlLlBhcnNlcihlLHQpLG49aS5wYXJzZVVMb25nKCk7UC5hcmd1bWVudCg2NTUzNj09PW4sXCJVbnN1cHBvcnRlZCBmdmFyIHRhYmxlIHZlcnNpb24uXCIpO3ZhciBhPWkucGFyc2VPZmZzZXQxNigpO2kuc2tpcChcInVTaG9ydFwiLDEpO2Zvcih2YXIgbyxzLGwsdSxoLGM9aS5wYXJzZVVTaG9ydCgpLGY9aS5wYXJzZVVTaG9ydCgpLGQ9aS5wYXJzZVVTaG9ydCgpLHA9aS5wYXJzZVVTaG9ydCgpLG09W10sdj0wO3Y8Yzt2KyspbS5wdXNoKChvPWUscz10K2ErdipmLGw9cixoPXU9dm9pZCAwLHU9e30saD1uZXcgc2UuUGFyc2VyKG8scyksdS50YWc9aC5wYXJzZVRhZygpLHUubWluVmFsdWU9aC5wYXJzZUZpeGVkKCksdS5kZWZhdWx0VmFsdWU9aC5wYXJzZUZpeGVkKCksdS5tYXhWYWx1ZT1oLnBhcnNlRml4ZWQoKSxoLnNraXAoXCJ1U2hvcnRcIiwxKSx1Lm5hbWU9bFtoLnBhcnNlVVNob3J0KCldfHx7fSx1KSk7Zm9yKHZhciB5PVtdLGc9dCthK2MqZixiPTA7YjxkO2IrKyl5LnB1c2goTHIoZSxnK2IqcCxtLHIpKTtyZXR1cm57YXhlczptLGluc3RhbmNlczp5fX19LFByPW5ldyBBcnJheSgxMCk7UHJbMV09ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0LHQ9dGhpcy5wYXJzZVVTaG9ydCgpO3JldHVybiAxPT09dD97cG9zRm9ybWF0OjEsY292ZXJhZ2U6dGhpcy5wYXJzZVBvaW50ZXIoYWUuY292ZXJhZ2UpLHZhbHVlOnRoaXMucGFyc2VWYWx1ZVJlY29yZCgpfToyPT09dD97cG9zRm9ybWF0OjIsY292ZXJhZ2U6dGhpcy5wYXJzZVBvaW50ZXIoYWUuY292ZXJhZ2UpLHZhbHVlczp0aGlzLnBhcnNlVmFsdWVSZWNvcmRMaXN0KCl9OnZvaWQgUC5hc3NlcnQoITEsXCIweFwiK2UudG9TdHJpbmcoMTYpK1wiOiBHUE9TIGxvb2t1cCB0eXBlIDEgZm9ybWF0IG11c3QgYmUgMSBvciAyLlwiKX0sUHJbMl09ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldCt0aGlzLnJlbGF0aXZlT2Zmc2V0LHQ9dGhpcy5wYXJzZVVTaG9ydCgpO1AuYXNzZXJ0KDE9PT10fHwyPT09dCxcIjB4XCIrZS50b1N0cmluZygxNikrXCI6IEdQT1MgbG9va3VwIHR5cGUgMiBmb3JtYXQgbXVzdCBiZSAxIG9yIDIuXCIpO3ZhciByPXRoaXMucGFyc2VQb2ludGVyKGFlLmNvdmVyYWdlKSxpPXRoaXMucGFyc2VVU2hvcnQoKSxuPXRoaXMucGFyc2VVU2hvcnQoKTtpZigxPT09dClyZXR1cm57cG9zRm9ybWF0OnQsY292ZXJhZ2U6cix2YWx1ZUZvcm1hdDE6aSx2YWx1ZUZvcm1hdDI6bixwYWlyU2V0czp0aGlzLnBhcnNlTGlzdChhZS5wb2ludGVyKGFlLmxpc3QoZnVuY3Rpb24oKXtyZXR1cm57c2Vjb25kR2x5cGg6dGhpcy5wYXJzZVVTaG9ydCgpLHZhbHVlMTp0aGlzLnBhcnNlVmFsdWVSZWNvcmQoaSksdmFsdWUyOnRoaXMucGFyc2VWYWx1ZVJlY29yZChuKX19KSkpfTtpZigyPT09dCl7dmFyIGE9dGhpcy5wYXJzZVBvaW50ZXIoYWUuY2xhc3NEZWYpLG89dGhpcy5wYXJzZVBvaW50ZXIoYWUuY2xhc3NEZWYpLHM9dGhpcy5wYXJzZVVTaG9ydCgpLGw9dGhpcy5wYXJzZVVTaG9ydCgpO3JldHVybntwb3NGb3JtYXQ6dCxjb3ZlcmFnZTpyLHZhbHVlRm9ybWF0MTppLHZhbHVlRm9ybWF0MjpuLGNsYXNzRGVmMTphLGNsYXNzRGVmMjpvLGNsYXNzMUNvdW50OnMsY2xhc3MyQ291bnQ6bCxjbGFzc1JlY29yZHM6dGhpcy5wYXJzZUxpc3QocyxhZS5saXN0KGwsZnVuY3Rpb24oKXtyZXR1cm57dmFsdWUxOnRoaXMucGFyc2VWYWx1ZVJlY29yZChpKSx2YWx1ZTI6dGhpcy5wYXJzZVZhbHVlUmVjb3JkKG4pfX0pKX19fSxQclszXT1mdW5jdGlvbigpe3JldHVybntlcnJvcjpcIkdQT1MgTG9va3VwIDMgbm90IHN1cHBvcnRlZFwifX0sUHJbNF09ZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6XCJHUE9TIExvb2t1cCA0IG5vdCBzdXBwb3J0ZWRcIn19LFByWzVdPWZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOlwiR1BPUyBMb29rdXAgNSBub3Qgc3VwcG9ydGVkXCJ9fSxQcls2XT1mdW5jdGlvbigpe3JldHVybntlcnJvcjpcIkdQT1MgTG9va3VwIDYgbm90IHN1cHBvcnRlZFwifX0sUHJbN109ZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6XCJHUE9TIExvb2t1cCA3IG5vdCBzdXBwb3J0ZWRcIn19LFByWzhdPWZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOlwiR1BPUyBMb29rdXAgOCBub3Qgc3VwcG9ydGVkXCJ9fSxQcls5XT1mdW5jdGlvbigpe3JldHVybntlcnJvcjpcIkdQT1MgTG9va3VwIDkgbm90IHN1cHBvcnRlZFwifX07dmFyIFJyPW5ldyBBcnJheSgxMCk7dmFyIERyPXtwYXJzZTpmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBhZShlLHQ9dHx8MCksaT1yLnBhcnNlVmVyc2lvbigxKTtyZXR1cm4gUC5hcmd1bWVudCgxPT09aXx8MS4xPT09aSxcIlVuc3VwcG9ydGVkIEdQT1MgdGFibGUgdmVyc2lvbiBcIitpKSwxPT09aT97dmVyc2lvbjppLHNjcmlwdHM6ci5wYXJzZVNjcmlwdExpc3QoKSxmZWF0dXJlczpyLnBhcnNlRmVhdHVyZUxpc3QoKSxsb29rdXBzOnIucGFyc2VMb29rdXBMaXN0KFByKX06e3ZlcnNpb246aSxzY3JpcHRzOnIucGFyc2VTY3JpcHRMaXN0KCksZmVhdHVyZXM6ci5wYXJzZUZlYXR1cmVMaXN0KCksbG9va3VwczpyLnBhcnNlTG9va3VwTGlzdChQciksdmFyaWF0aW9uczpyLnBhcnNlRmVhdHVyZVZhcmlhdGlvbnNMaXN0KCl9fSxtYWtlOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJC5UYWJsZShcIkdQT1NcIixbe25hbWU6XCJ2ZXJzaW9uXCIsdHlwZTpcIlVMT05HXCIsdmFsdWU6NjU1MzZ9LHtuYW1lOlwic2NyaXB0c1wiLHR5cGU6XCJUQUJMRVwiLHZhbHVlOm5ldyAkLlNjcmlwdExpc3QoZS5zY3JpcHRzKX0se25hbWU6XCJmZWF0dXJlc1wiLHR5cGU6XCJUQUJMRVwiLHZhbHVlOm5ldyAkLkZlYXR1cmVMaXN0KGUuZmVhdHVyZXMpfSx7bmFtZTpcImxvb2t1cHNcIix0eXBlOlwiVEFCTEVcIix2YWx1ZTpuZXcgJC5Mb29rdXBMaXN0KGUubG9va3VwcyxScil9XSl9fTt2YXIga3I9e3BhcnNlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IHNlLlBhcnNlcihlLHQpLGk9ci5wYXJzZVVTaG9ydCgpO2lmKDA9PT1pKXJldHVybiBmdW5jdGlvbihlKXt2YXIgdD17fTtlLnNraXAoXCJ1U2hvcnRcIik7dmFyIHI9ZS5wYXJzZVVTaG9ydCgpO1AuYXJndW1lbnQoMD09PXIsXCJVbnN1cHBvcnRlZCBrZXJuIHN1Yi10YWJsZSB2ZXJzaW9uLlwiKSxlLnNraXAoXCJ1U2hvcnRcIiwyKTt2YXIgaT1lLnBhcnNlVVNob3J0KCk7ZS5za2lwKFwidVNob3J0XCIsMyk7Zm9yKHZhciBuPTA7bjxpO24rPTEpe3ZhciBhPWUucGFyc2VVU2hvcnQoKSxvPWUucGFyc2VVU2hvcnQoKSxzPWUucGFyc2VTaG9ydCgpO3RbYStcIixcIitvXT1zfXJldHVybiB0fShyKTtpZigxPT09aSlyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9e307ZS5za2lwKFwidVNob3J0XCIpLDE8ZS5wYXJzZVVMb25nKCkmJmNvbnNvbGUud2FybihcIk9ubHkgdGhlIGZpcnN0IGtlcm4gc3VidGFibGUgaXMgc3VwcG9ydGVkLlwiKSxlLnNraXAoXCJ1TG9uZ1wiKTt2YXIgcj0yNTUmZS5wYXJzZVVTaG9ydCgpO2lmKGUuc2tpcChcInVTaG9ydFwiKSwwPT1yKXt2YXIgaT1lLnBhcnNlVVNob3J0KCk7ZS5za2lwKFwidVNob3J0XCIsMyk7Zm9yKHZhciBuPTA7bjxpO24rPTEpe3ZhciBhPWUucGFyc2VVU2hvcnQoKSxvPWUucGFyc2VVU2hvcnQoKSxzPWUucGFyc2VTaG9ydCgpO3RbYStcIixcIitvXT1zfX1yZXR1cm4gdH0ocik7dGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQga2VybiB0YWJsZSB2ZXJzaW9uIChcIitpK1wiKS5cIil9fTt2YXIgQXI9e3BhcnNlOmZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbj1uZXcgc2UuUGFyc2VyKGUsdCksYT1pP24ucGFyc2VVU2hvcnQ6bi5wYXJzZVVMb25nLG89W10scz0wO3M8cisxO3MrPTEpe3ZhciBsPWEuY2FsbChuKTtpJiYobCo9Miksby5wdXNoKGwpfXJldHVybiBvfX07ZnVuY3Rpb24gSXIoZSxyKXtqcihcImZzXCIpLnJlYWRGaWxlKGUsZnVuY3Rpb24oZSx0KXtpZihlKXJldHVybiByKGUubWVzc2FnZSk7cihudWxsLEV0KHQpKX0pfWZ1bmN0aW9uIFVyKGUsdCl7dmFyIHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3Iub3BlbihcImdldFwiLGUsITApLHIucmVzcG9uc2VUeXBlPVwiYXJyYXlidWZmZXJcIixyLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiByLnJlc3BvbnNlP3QobnVsbCxyLnJlc3BvbnNlKTp0KFwiRm9udCBjb3VsZCBub3QgYmUgbG9hZGVkOiBcIityLnN0YXR1c1RleHQpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KFwiRm9udCBjb3VsZCBub3QgYmUgbG9hZGVkXCIpfSxyLnNlbmQoKX1mdW5jdGlvbiBOcihlLHQpe2Zvcih2YXIgcj1bXSxpPTEyLG49MDtuPHQ7bis9MSl7dmFyIGE9c2UuZ2V0VGFnKGUsaSksbz1zZS5nZXRVTG9uZyhlLGkrNCkscz1zZS5nZXRVTG9uZyhlLGkrOCksbD1zZS5nZXRVTG9uZyhlLGkrMTIpO3IucHVzaCh7dGFnOmEsY2hlY2tzdW06byxvZmZzZXQ6cyxsZW5ndGg6bCxjb21wcmVzc2lvbjohMX0pLGkrPTE2fXJldHVybiByfWZ1bmN0aW9uIEZyKGUsdCl7aWYoXCJXT0ZGXCIhPT10LmNvbXByZXNzaW9uKXJldHVybntkYXRhOmUsb2Zmc2V0OnQub2Zmc2V0fTt2YXIgcj1uZXcgVWludDhBcnJheShlLmJ1ZmZlcix0Lm9mZnNldCsyLHQuY29tcHJlc3NlZExlbmd0aC0yKSxpPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtpZihuKHIsaSksaS5ieXRlTGVuZ3RoIT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRGVjb21wcmVzc2lvbiBlcnJvcjogXCIrdC50YWcrXCIgZGVjb21wcmVzc2VkIGxlbmd0aCBkb2Vzbid0IG1hdGNoIHJlY29yZGVkIGxlbmd0aFwiKTtyZXR1cm57ZGF0YTpuZXcgRGF0YVZpZXcoaS5idWZmZXIsMCksb2Zmc2V0OjB9fWZ1bmN0aW9uIEJyKGUpe3ZhciB0LHIsaSxuLGEsbyxzLGwsdSxoLGMsZixkLHAsbT1uZXcgVHIoe2VtcHR5OiEwfSksdj1uZXcgRGF0YVZpZXcoZSwwKSx5PVtdLGc9c2UuZ2V0VGFnKHYsMCk7aWYoZz09PVN0cmluZy5mcm9tQ2hhckNvZGUoMCwxLDAsMCl8fFwidHJ1ZVwiPT09Z3x8XCJ0eXAxXCI9PT1nKW0ub3V0bGluZXNGb3JtYXQ9XCJ0cnVldHlwZVwiLHk9TnIodixpPXNlLmdldFVTaG9ydCh2LDQpKTtlbHNlIGlmKFwiT1RUT1wiPT09ZyltLm91dGxpbmVzRm9ybWF0PVwiY2ZmXCIseT1Ocih2LGk9c2UuZ2V0VVNob3J0KHYsNCkpO2Vsc2V7aWYoXCJ3T0ZGXCIhPT1nKXRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIE9wZW5UeXBlIHNpZ25hdHVyZSBcIitnKTt2YXIgYj1zZS5nZXRUYWcodiw0KTtpZihiPT09U3RyaW5nLmZyb21DaGFyQ29kZSgwLDEsMCwwKSltLm91dGxpbmVzRm9ybWF0PVwidHJ1ZXR5cGVcIjtlbHNle2lmKFwiT1RUT1wiIT09Yil0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBPcGVuVHlwZSBmbGF2b3IgXCIrZyk7bS5vdXRsaW5lc0Zvcm1hdD1cImNmZlwifXk9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9W10saT00NCxuPTA7bjx0O24rPTEpe3ZhciBhPXNlLmdldFRhZyhlLGkpLG89c2UuZ2V0VUxvbmcoZSxpKzQpLHM9c2UuZ2V0VUxvbmcoZSxpKzgpLGw9c2UuZ2V0VUxvbmcoZSxpKzEyKSx1PXZvaWQgMDt1PXM8bCYmXCJXT0ZGXCIsci5wdXNoKHt0YWc6YSxvZmZzZXQ6byxjb21wcmVzc2lvbjp1LGNvbXByZXNzZWRMZW5ndGg6cyxsZW5ndGg6bH0pLGkrPTIwfXJldHVybiByfSh2LGk9c2UuZ2V0VVNob3J0KHYsMTIpKX1mb3IodmFyIF89MDtfPGk7Xys9MSl7dmFyIHg9eVtfXSx3PXZvaWQgMDtzd2l0Y2goeC50YWcpe2Nhc2VcImNtYXBcIjp3PUZyKHYseCksbS50YWJsZXMuY21hcD1sZS5wYXJzZSh3LmRhdGEsdy5vZmZzZXQpLG0uZW5jb2Rpbmc9bmV3IHBlKG0udGFibGVzLmNtYXApO2JyZWFrO2Nhc2VcImN2dCBcIjp3PUZyKHYseCkscD1uZXcgc2UuUGFyc2VyKHcuZGF0YSx3Lm9mZnNldCksbS50YWJsZXMuY3Z0PXAucGFyc2VTaG9ydExpc3QoeC5sZW5ndGgvMik7YnJlYWs7Y2FzZVwiZnZhclwiOmE9eDticmVhaztjYXNlXCJmcGdtXCI6dz1Gcih2LHgpLHA9bmV3IHNlLlBhcnNlcih3LmRhdGEsdy5vZmZzZXQpLG0udGFibGVzLmZwZ209cC5wYXJzZUJ5dGVMaXN0KHgubGVuZ3RoKTticmVhaztjYXNlXCJoZWFkXCI6dz1Gcih2LHgpLG0udGFibGVzLmhlYWQ9R2UucGFyc2Uody5kYXRhLHcub2Zmc2V0KSxtLnVuaXRzUGVyRW09bS50YWJsZXMuaGVhZC51bml0c1BlckVtLHQ9bS50YWJsZXMuaGVhZC5pbmRleFRvTG9jRm9ybWF0O2JyZWFrO2Nhc2VcImhoZWFcIjp3PUZyKHYseCksbS50YWJsZXMuaGhlYT1qZS5wYXJzZSh3LmRhdGEsdy5vZmZzZXQpLG0uYXNjZW5kZXI9bS50YWJsZXMuaGhlYS5hc2NlbmRlcixtLmRlc2NlbmRlcj1tLnRhYmxlcy5oaGVhLmRlc2NlbmRlcixtLm51bWJlck9mSE1ldHJpY3M9bS50YWJsZXMuaGhlYS5udW1iZXJPZkhNZXRyaWNzO2JyZWFrO2Nhc2VcImhtdHhcIjp1PXg7YnJlYWs7Y2FzZVwibHRhZ1wiOnc9RnIodix4KSxyPXplLnBhcnNlKHcuZGF0YSx3Lm9mZnNldCk7YnJlYWs7Y2FzZVwibWF4cFwiOnc9RnIodix4KSxtLnRhYmxlcy5tYXhwPUhlLnBhcnNlKHcuZGF0YSx3Lm9mZnNldCksbS5udW1HbHlwaHM9bS50YWJsZXMubWF4cC5udW1HbHlwaHM7YnJlYWs7Y2FzZVwibmFtZVwiOmY9eDticmVhaztjYXNlXCJPUy8yXCI6dz1Gcih2LHgpLG0udGFibGVzLm9zMj1hdC5wYXJzZSh3LmRhdGEsdy5vZmZzZXQpO2JyZWFrO2Nhc2VcInBvc3RcIjp3PUZyKHYseCksbS50YWJsZXMucG9zdD1vdC5wYXJzZSh3LmRhdGEsdy5vZmZzZXQpLG0uZ2x5cGhOYW1lcz1uZXcgdmUobS50YWJsZXMucG9zdCk7YnJlYWs7Y2FzZVwicHJlcFwiOnc9RnIodix4KSxwPW5ldyBzZS5QYXJzZXIody5kYXRhLHcub2Zmc2V0KSxtLnRhYmxlcy5wcmVwPXAucGFyc2VCeXRlTGlzdCh4Lmxlbmd0aCk7YnJlYWs7Y2FzZVwiZ2x5ZlwiOm89eDticmVhaztjYXNlXCJsb2NhXCI6Yz14O2JyZWFrO2Nhc2VcIkNGRiBcIjpuPXg7YnJlYWs7Y2FzZVwia2VyblwiOmg9eDticmVhaztjYXNlXCJHUE9TXCI6cz14O2JyZWFrO2Nhc2VcIkdTVUJcIjpsPXg7YnJlYWs7Y2FzZVwibWV0YVwiOmQ9eH19dmFyIFM9RnIodixmKTtpZihtLnRhYmxlcy5uYW1lPWl0LnBhcnNlKFMuZGF0YSxTLm9mZnNldCxyKSxtLm5hbWVzPW0udGFibGVzLm5hbWUsbyYmYyl7dmFyIE09MD09PXQsVD1Gcih2LGMpLEU9QXIucGFyc2UoVC5kYXRhLFQub2Zmc2V0LG0ubnVtR2x5cGhzLE0pLEM9RnIodixvKTttLmdseXBocz1OdC5wYXJzZShDLmRhdGEsQy5vZmZzZXQsRSxtKX1lbHNle2lmKCFuKXRocm93IG5ldyBFcnJvcihcIkZvbnQgZG9lc24ndCBjb250YWluIFRydWVUeXBlIG9yIENGRiBvdXRsaW5lcy5cIik7dmFyIEw9RnIodixuKTtCZS5wYXJzZShMLmRhdGEsTC5vZmZzZXQsbSl9dmFyIE89RnIodix1KTtpZihWZS5wYXJzZShPLmRhdGEsTy5vZmZzZXQsbS5udW1iZXJPZkhNZXRyaWNzLG0ubnVtR2x5cGhzLG0uZ2x5cGhzKSxmdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLnRhYmxlcy5jbWFwLmdseXBoSW5kZXhNYXAsaT1PYmplY3Qua2V5cyhyKSxuPTA7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dLG89clthXTsodD1lLmdseXBocy5nZXQobykpLmFkZFVuaWNvZGUocGFyc2VJbnQoYSkpfWZvcih2YXIgcz0wO3M8ZS5nbHlwaHMubGVuZ3RoO3MrPTEpdD1lLmdseXBocy5nZXQocyksZS5jZmZFbmNvZGluZz9lLmlzQ0lERm9udD90Lm5hbWU9XCJnaWRcIitzOnQubmFtZT1lLmNmZkVuY29kaW5nLmNoYXJzZXRbc106ZS5nbHlwaE5hbWVzLm5hbWVzJiYodC5uYW1lPWUuZ2x5cGhOYW1lcy5nbHlwaEluZGV4VG9OYW1lKHMpKX0obSksaCl7dmFyIFA9RnIodixoKTttLmtlcm5pbmdQYWlycz1rci5wYXJzZShQLmRhdGEsUC5vZmZzZXQpfWVsc2UgbS5rZXJuaW5nUGFpcnM9e307aWYocyl7dmFyIFI9RnIodixzKTttLnRhYmxlcy5ncG9zPURyLnBhcnNlKFIuZGF0YSxSLm9mZnNldCksbS5wb3NpdGlvbi5pbml0KCl9aWYobCl7dmFyIEQ9RnIodixsKTttLnRhYmxlcy5nc3ViPWh0LnBhcnNlKEQuZGF0YSxELm9mZnNldCl9aWYoYSl7dmFyIGs9RnIodixhKTttLnRhYmxlcy5mdmFyPU9yLnBhcnNlKGsuZGF0YSxrLm9mZnNldCxtLm5hbWVzKX1pZihkKXt2YXIgQT1Gcih2LGQpO20udGFibGVzLm1ldGE9Y3QucGFyc2UoQS5kYXRhLEEub2Zmc2V0KSxtLm1ldGFzPW0udGFibGVzLm1ldGF9cmV0dXJuIG19VC5Gb250PVRyLFQuR2x5cGg9Z2UsVC5QYXRoPUksVC5Cb3VuZGluZ0JveD1DLFQuX3BhcnNlPXNlLFQucGFyc2U9QnIsVC5sb2FkPWZ1bmN0aW9uKGUsaSl7KFwidW5kZWZpbmVkXCI9PXR5cGVvZiB3aW5kb3c/SXI6VXIpKGUsZnVuY3Rpb24oZSx0KXtpZihlKXJldHVybiBpKGUpO3ZhciByO3RyeXtyPUJyKHQpfWNhdGNoKGUpe3JldHVybiBpKGUsbnVsbCl9cmV0dXJuIGkobnVsbCxyKX0pfSxULmxvYWRTeW5jPWZ1bmN0aW9uKGUpe3JldHVybiBCcihFdChqcihcImZzXCIpLnJlYWRGaWxlU3luYyhlKSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0oXCJvYmplY3RcIj09dHlwZW9mIHImJnZvaWQgMCE9PXQ/cjplLm9wZW50eXBlPXt9KX0pLmNhbGwodGhpcyxqcihcImJ1ZmZlclwiKS5CdWZmZXIpfSx7YnVmZmVyOjQsZnM6Mn1dLDEzOltmdW5jdGlvbihlLHQsdSl7KGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGEoZSx0KXtmb3IodmFyIHI9MCxpPWUubGVuZ3RoLTE7MDw9aTtpLS0pe3ZhciBuPWVbaV07XCIuXCI9PT1uP2Uuc3BsaWNlKGksMSk6XCIuLlwiPT09bj8oZS5zcGxpY2UoaSwxKSxyKyspOnImJihlLnNwbGljZShpLDEpLHItLSl9aWYodClmb3IoO3ItLTspZS51bnNoaWZ0KFwiLi5cIik7cmV0dXJuIGV9ZnVuY3Rpb24gbyhlLHQpe2lmKGUuZmlsdGVyKXJldHVybiBlLmZpbHRlcih0KTtmb3IodmFyIHI9W10saT0wO2k8ZS5sZW5ndGg7aSsrKXQoZVtpXSxpLGUpJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9dS5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVwiXCIsdD0hMSxyPWFyZ3VtZW50cy5sZW5ndGgtMTstMTw9ciYmIXQ7ci0tKXt2YXIgaT0wPD1yP2FyZ3VtZW50c1tyXTpuLmN3ZCgpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5nc1wiKTtpJiYoZT1pK1wiL1wiK2UsdD1cIi9cIj09PWkuY2hhckF0KDApKX1yZXR1cm4odD9cIi9cIjpcIlwiKSsoZT1hKG8oZS5zcGxpdChcIi9cIiksZnVuY3Rpb24oZSl7cmV0dXJuISFlfSksIXQpLmpvaW4oXCIvXCIpKXx8XCIuXCJ9LHUubm9ybWFsaXplPWZ1bmN0aW9uKGUpe3ZhciB0PXUuaXNBYnNvbHV0ZShlKSxyPVwiL1wiPT09aShlLC0xKTtyZXR1cm4oZT1hKG8oZS5zcGxpdChcIi9cIiksZnVuY3Rpb24oZSl7cmV0dXJuISFlfSksIXQpLmpvaW4oXCIvXCIpKXx8dHx8KGU9XCIuXCIpLGUmJnImJihlKz1cIi9cIiksKHQ/XCIvXCI6XCJcIikrZX0sdS5pc0Fic29sdXRlPWZ1bmN0aW9uKGUpe3JldHVyblwiL1wiPT09ZS5jaGFyQXQoMCl9LHUuam9pbj1mdW5jdGlvbigpe3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gdS5ub3JtYWxpemUobyhlLGZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzXCIpO3JldHVybiBlfSkuam9pbihcIi9cIikpfSx1LnJlbGF0aXZlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoJiZcIlwiPT09ZVt0XTt0KyspO2Zvcih2YXIgcj1lLmxlbmd0aC0xOzA8PXImJlwiXCI9PT1lW3JdO3ItLSk7cmV0dXJuIHI8dD9bXTplLnNsaWNlKHQsci10KzEpfWU9dS5yZXNvbHZlKGUpLnN1YnN0cigxKSx0PXUucmVzb2x2ZSh0KS5zdWJzdHIoMSk7Zm9yKHZhciBpPXIoZS5zcGxpdChcIi9cIikpLG49cih0LnNwbGl0KFwiL1wiKSksYT1NYXRoLm1pbihpLmxlbmd0aCxuLmxlbmd0aCksbz1hLHM9MDtzPGE7cysrKWlmKGlbc10hPT1uW3NdKXtvPXM7YnJlYWt9dmFyIGw9W107Zm9yKHM9bztzPGkubGVuZ3RoO3MrKylsLnB1c2goXCIuLlwiKTtyZXR1cm4obD1sLmNvbmNhdChuLnNsaWNlKG8pKSkuam9pbihcIi9cIil9LHUuc2VwPVwiL1wiLHUuZGVsaW1pdGVyPVwiOlwiLHUuZGlybmFtZT1mdW5jdGlvbihlKXtpZihcInN0cmluZ1wiIT10eXBlb2YgZSYmKGUrPVwiXCIpLDA9PT1lLmxlbmd0aClyZXR1cm5cIi5cIjtmb3IodmFyIHQ9ZS5jaGFyQ29kZUF0KDApLHI9NDc9PT10LGk9LTEsbj0hMCxhPWUubGVuZ3RoLTE7MTw9YTstLWEpaWYoNDc9PT0odD1lLmNoYXJDb2RlQXQoYSkpKXtpZighbil7aT1hO2JyZWFrfX1lbHNlIG49ITE7cmV0dXJuLTE9PT1pP3I/XCIvXCI6XCIuXCI6ciYmMT09PWk/XCIvXCI6ZS5zbGljZSgwLGkpfSx1LmJhc2VuYW1lPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ZnVuY3Rpb24oZSl7XCJzdHJpbmdcIiE9dHlwZW9mIGUmJihlKz1cIlwiKTt2YXIgdCxyPTAsaT0tMSxuPSEwO2Zvcih0PWUubGVuZ3RoLTE7MDw9dDstLXQpaWYoNDc9PT1lLmNoYXJDb2RlQXQodCkpe2lmKCFuKXtyPXQrMTticmVha319ZWxzZS0xPT09aSYmKG49ITEsaT10KzEpO3JldHVybi0xPT09aT9cIlwiOmUuc2xpY2UocixpKX0oZSk7cmV0dXJuIHQmJnIuc3Vic3RyKC0xKnQubGVuZ3RoKT09PXQmJihyPXIuc3Vic3RyKDAsci5sZW5ndGgtdC5sZW5ndGgpKSxyfSx1LmV4dG5hbWU9ZnVuY3Rpb24oZSl7XCJzdHJpbmdcIiE9dHlwZW9mIGUmJihlKz1cIlwiKTtmb3IodmFyIHQ9LTEscj0wLGk9LTEsbj0hMCxhPTAsbz1lLmxlbmd0aC0xOzA8PW87LS1vKXt2YXIgcz1lLmNoYXJDb2RlQXQobyk7aWYoNDc9PT1zKXtpZihuKWNvbnRpbnVlO3I9bysxO2JyZWFrfS0xPT09aSYmKG49ITEsaT1vKzEpLDQ2PT09cz8tMT09PXQ/dD1vOjEhPT1hJiYoYT0xKTotMSE9PXQmJihhPS0xKX1yZXR1cm4tMT09PXR8fC0xPT09aXx8MD09PWF8fDE9PT1hJiZ0PT09aS0xJiZ0PT09cisxP1wiXCI6ZS5zbGljZSh0LGkpfTt2YXIgaT1cImJcIj09PVwiYWJcIi5zdWJzdHIoLTEpP2Z1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS5zdWJzdHIodCxyKX06ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PDAmJih0PWUubGVuZ3RoK3QpLGUuc3Vic3RyKHQscil9fSkuY2FsbCh0aGlzLGUoXCJfcHJvY2Vzc1wiKSl9LHtfcHJvY2VzczoxNH1dLDE0OltmdW5jdGlvbihlLHQscil7dmFyIGksbixhPXQuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKFwic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFwiKX1mdW5jdGlvbiBzKCl7dGhyb3cgbmV3IEVycm9yKFwiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkXCIpfWZ1bmN0aW9uIGwodCl7aWYoaT09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQodCwwKTtpZigoaT09PW98fCFpKSYmc2V0VGltZW91dClyZXR1cm4gaT1zZXRUaW1lb3V0LHNldFRpbWVvdXQodCwwKTt0cnl7cmV0dXJuIGkodCwwKX1jYXRjaChlKXt0cnl7cmV0dXJuIGkuY2FsbChudWxsLHQsMCl9Y2F0Y2goZSl7cmV0dXJuIGkuY2FsbCh0aGlzLHQsMCl9fX0hZnVuY3Rpb24oKXt0cnl7aT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaChlKXtpPW99dHJ5e249XCJmdW5jdGlvblwiPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpzfWNhdGNoKGUpe249c319KCk7dmFyIHUsaD1bXSxjPSExLGY9LTE7ZnVuY3Rpb24gZCgpe2MmJnUmJihjPSExLHUubGVuZ3RoP2g9dS5jb25jYXQoaCk6Zj0tMSxoLmxlbmd0aCYmcCgpKX1mdW5jdGlvbiBwKCl7aWYoIWMpe3ZhciBlPWwoZCk7Yz0hMDtmb3IodmFyIHQ9aC5sZW5ndGg7dDspe2Zvcih1PWgsaD1bXTsrK2Y8dDspdSYmdVtmXS5ydW4oKTtmPS0xLHQ9aC5sZW5ndGh9dT1udWxsLGM9ITEsZnVuY3Rpb24odCl7aWYobj09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KHQpO2lmKChuPT09c3x8IW4pJiZjbGVhclRpbWVvdXQpcmV0dXJuIG49Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dCh0KTt0cnl7bih0KX1jYXRjaChlKXt0cnl7cmV0dXJuIG4uY2FsbChudWxsLHQpfWNhdGNoKGUpe3JldHVybiBuLmNhbGwodGhpcyx0KX19fShlKX19ZnVuY3Rpb24gbShlLHQpe3RoaXMuZnVuPWUsdGhpcy5hcnJheT10fWZ1bmN0aW9uIHYoKXt9YS5uZXh0VGljaz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMV09YXJndW1lbnRzW3JdO2gucHVzaChuZXcgbShlLHQpKSwxIT09aC5sZW5ndGh8fGN8fGwocCl9LG0ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LGEudGl0bGU9XCJicm93c2VyXCIsYS5icm93c2VyPSEwLGEuZW52PXt9LGEuYXJndj1bXSxhLnZlcnNpb249XCJcIixhLnZlcnNpb25zPXt9LGEub249dixhLmFkZExpc3RlbmVyPXYsYS5vbmNlPXYsYS5vZmY9dixhLnJlbW92ZUxpc3RlbmVyPXYsYS5yZW1vdmVBbGxMaXN0ZW5lcnM9dixhLmVtaXQ9dixhLnByZXBlbmRMaXN0ZW5lcj12LGEucHJlcGVuZE9uY2VMaXN0ZW5lcj12LGEubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfSxhLmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWRcIil9LGEuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuXCIvXCJ9LGEuY2hkaXI9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkXCIpfSxhLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSx7fV0sMTU6W2Z1bmN0aW9uKGUsdCxyKXshZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7aWYoIWUuZmV0Y2gpe3ZhciB0PVwiVVJMU2VhcmNoUGFyYW1zXCJpbiBlLHI9XCJTeW1ib2xcImluIGUmJlwiaXRlcmF0b3JcImluIFN5bWJvbCxvPVwiRmlsZVJlYWRlclwiaW4gZSYmXCJCbG9iXCJpbiBlJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEJsb2IsITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGk9XCJGb3JtRGF0YVwiaW4gZSxuPVwiQXJyYXlCdWZmZXJcImluIGU7aWYobil2YXIgYT1bXCJbb2JqZWN0IEludDhBcnJheV1cIixcIltvYmplY3QgVWludDhBcnJheV1cIixcIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldXCIsXCJbb2JqZWN0IEludDE2QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQxNkFycmF5XVwiLFwiW29iamVjdCBJbnQzMkFycmF5XVwiLFwiW29iamVjdCBVaW50MzJBcnJheV1cIixcIltvYmplY3QgRmxvYXQzMkFycmF5XVwiLFwiW29iamVjdCBGbG9hdDY0QXJyYXldXCJdLHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpfSxsPUFycmF5QnVmZmVyLmlzVmlld3x8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJi0xPGEuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpfTtwLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXtlPWMoZSksdD1mKHQpO3ZhciByPXRoaXMubWFwW2VdO3RoaXMubWFwW2VdPXI/citcIixcIit0OnR9LHAucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihlKXtkZWxldGUgdGhpcy5tYXBbYyhlKV19LHAucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtyZXR1cm4gZT1jKGUpLHRoaXMuaGFzKGUpP3RoaXMubWFwW2VdOm51bGx9LHAucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkoYyhlKSl9LHAucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3RoaXMubWFwW2MoZSldPWYodCl9LHAucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gdGhpcy5tYXApdGhpcy5tYXAuaGFzT3duUHJvcGVydHkocikmJmUuY2FsbCh0LHRoaXMubWFwW3JdLHIsdGhpcyl9LHAucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXt2YXIgcj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7ci5wdXNoKHQpfSksZChyKX0scC5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSl9KSxkKHQpfSxwLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIHI9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlLHQpe3IucHVzaChbdCxlXSl9KSxkKHIpfSxyJiYocC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1wLnByb3RvdHlwZS5lbnRyaWVzKTt2YXIgdT1bXCJERUxFVEVcIixcIkdFVFwiLFwiSEVBRFwiLFwiT1BUSU9OU1wiLFwiUE9TVFwiLFwiUFVUXCJdO18ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfKHRoaXMse2JvZHk6dGhpcy5fYm9keUluaXR9KX0sYi5jYWxsKF8ucHJvdG90eXBlKSxiLmNhbGwody5wcm90b3R5cGUpLHcucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB3KHRoaXMuX2JvZHlJbml0LHtzdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHQsaGVhZGVyczpuZXcgcCh0aGlzLmhlYWRlcnMpLHVybDp0aGlzLnVybH0pfSx3LmVycm9yPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHcobnVsbCx7c3RhdHVzOjAsc3RhdHVzVGV4dDpcIlwifSk7cmV0dXJuIGUudHlwZT1cImVycm9yXCIsZX07dmFyIGg9WzMwMSwzMDIsMzAzLDMwNywzMDhdO3cucmVkaXJlY3Q9ZnVuY3Rpb24oZSx0KXtpZigtMT09PWguaW5kZXhPZih0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgc3RhdHVzIGNvZGVcIik7cmV0dXJuIG5ldyB3KG51bGwse3N0YXR1czp0LGhlYWRlcnM6e2xvY2F0aW9uOmV9fSl9LGUuSGVhZGVycz1wLGUuUmVxdWVzdD1fLGUuUmVzcG9uc2U9dyxlLmZldGNoPWZ1bmN0aW9uKHIsbil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksZSl7dmFyIHQ9bmV3IF8ocixuKSxhPW5ldyBYTUxIdHRwUmVxdWVzdDthLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBlLG4sdD17c3RhdHVzOmEuc3RhdHVzLHN0YXR1c1RleHQ6YS5zdGF0dXNUZXh0LGhlYWRlcnM6KGU9YS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8XCJcIixuPW5ldyBwLGUucmVwbGFjZSgvXFxyP1xcbltcXHQgXSsvZyxcIiBcIikuc3BsaXQoL1xccj9cXG4vKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCI6XCIpLHI9dC5zaGlmdCgpLnRyaW0oKTtpZihyKXt2YXIgaT10LmpvaW4oXCI6XCIpLnRyaW0oKTtuLmFwcGVuZChyLGkpfX0pLG4pfTt0LnVybD1cInJlc3BvbnNlVVJMXCJpbiBhP2EucmVzcG9uc2VVUkw6dC5oZWFkZXJzLmdldChcIlgtUmVxdWVzdC1VUkxcIik7dmFyIHI9XCJyZXNwb25zZVwiaW4gYT9hLnJlc3BvbnNlOmEucmVzcG9uc2VUZXh0O2kobmV3IHcocix0KSl9LGEub25lcnJvcj1mdW5jdGlvbigpe2UobmV3IFR5cGVFcnJvcihcIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWRcIikpfSxhLm9udGltZW91dD1mdW5jdGlvbigpe2UobmV3IFR5cGVFcnJvcihcIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWRcIikpfSxhLm9wZW4odC5tZXRob2QsdC51cmwsITApLFwiaW5jbHVkZVwiPT09dC5jcmVkZW50aWFscz9hLndpdGhDcmVkZW50aWFscz0hMDpcIm9taXRcIj09PXQuY3JlZGVudGlhbHMmJihhLndpdGhDcmVkZW50aWFscz0hMSksXCJyZXNwb25zZVR5cGVcImluIGEmJm8mJihhLnJlc3BvbnNlVHlwZT1cImJsb2JcIiksdC5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oZSx0KXthLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pLGEuc2VuZCh2b2lkIDA9PT10Ll9ib2R5SW5pdD9udWxsOnQuX2JvZHlJbml0KX0pfSxlLmZldGNoLnBvbHlmaWxsPSEwfWZ1bmN0aW9uIGMoZSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUmJihlPVN0cmluZyhlKSksL1teYS16MC05XFwtIyQlJicqKy5cXF5fYHx+XS9pLnRlc3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lXCIpO3JldHVybiBlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZihlKXtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgZSYmKGU9U3RyaW5nKGUpKSxlfWZ1bmN0aW9uIGQodCl7dmFyIGU9e25leHQ6ZnVuY3Rpb24oKXt2YXIgZT10LnNoaWZ0KCk7cmV0dXJue2RvbmU6dm9pZCAwPT09ZSx2YWx1ZTplfX19O3JldHVybiByJiYoZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9KSxlfWZ1bmN0aW9uIHAodCl7dGhpcy5tYXA9e30sdCBpbnN0YW5jZW9mIHA/dC5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7dGhpcy5hcHBlbmQodCxlKX0sdGhpcyk6QXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goZnVuY3Rpb24oZSl7dGhpcy5hcHBlbmQoZVswXSxlWzFdKX0sdGhpcyk6dCYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzLmFwcGVuZChlLHRbZV0pfSx0aGlzKX1mdW5jdGlvbiBtKGUpe2lmKGUuYm9keVVzZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoXCJBbHJlYWR5IHJlYWRcIikpO2UuYm9keVVzZWQ9ITB9ZnVuY3Rpb24gdihyKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtyLm9ubG9hZD1mdW5jdGlvbigpe2Uoci5yZXN1bHQpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KHIuZXJyb3IpfX0pfWZ1bmN0aW9uIHkoZSl7dmFyIHQ9bmV3IEZpbGVSZWFkZXIscj12KHQpO3JldHVybiB0LnJlYWRBc0FycmF5QnVmZmVyKGUpLHJ9ZnVuY3Rpb24gZyhlKXtpZihlLnNsaWNlKXJldHVybiBlLnNsaWNlKDApO3ZhciB0PW5ldyBVaW50OEFycmF5KGUuYnl0ZUxlbmd0aCk7cmV0dXJuIHQuc2V0KG5ldyBVaW50OEFycmF5KGUpKSx0LmJ1ZmZlcn1mdW5jdGlvbiBiKCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oZSl7aWYodGhpcy5fYm9keUluaXQ9ZSlpZihcInN0cmluZ1wiPT10eXBlb2YgZSl0aGlzLl9ib2R5VGV4dD1lO2Vsc2UgaWYobyYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKSl0aGlzLl9ib2R5QmxvYj1lO2Vsc2UgaWYoaSYmRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSkpdGhpcy5fYm9keUZvcm1EYXRhPWU7ZWxzZSBpZih0JiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSkpdGhpcy5fYm9keVRleHQ9ZS50b1N0cmluZygpO2Vsc2UgaWYobiYmbyYmcyhlKSl0aGlzLl9ib2R5QXJyYXlCdWZmZXI9ZyhlLmJ1ZmZlciksdGhpcy5fYm9keUluaXQ9bmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pO2Vsc2V7aWYoIW58fCFBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlKSYmIWwoZSkpdGhyb3cgbmV3IEVycm9yKFwidW5zdXBwb3J0ZWQgQm9keUluaXQgdHlwZVwiKTt0aGlzLl9ib2R5QXJyYXlCdWZmZXI9ZyhlKX1lbHNlIHRoaXMuX2JvZHlUZXh0PVwiXCI7dGhpcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKXx8KFwic3RyaW5nXCI9PXR5cGVvZiBlP3RoaXMuaGVhZGVycy5zZXQoXCJjb250ZW50LXR5cGVcIixcInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOFwiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsdGhpcy5fYm9keUJsb2IudHlwZSk6dCYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpJiZ0aGlzLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOFwiKSl9LG8mJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgZT1tKHRoaXMpO2lmKGUpcmV0dXJuIGU7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyBibG9iXCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpfSx0aGlzLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JvZHlBcnJheUJ1ZmZlcj9tKHRoaXMpfHxQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUFycmF5QnVmZmVyKTp0aGlzLmJsb2IoKS50aGVuKHkpfSksdGhpcy50ZXh0PWZ1bmN0aW9uKCl7dmFyIGUsdCxyLGk9bSh0aGlzKTtpZihpKXJldHVybiBpO2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBlPXRoaXMuX2JvZHlCbG9iLHQ9bmV3IEZpbGVSZWFkZXIscj12KHQpLHQucmVhZEFzVGV4dChlKSxyO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlKSxyPW5ldyBBcnJheSh0Lmxlbmd0aCksaT0wO2k8dC5sZW5ndGg7aSsrKXJbaV09U3RyaW5nLmZyb21DaGFyQ29kZSh0W2ldKTtyZXR1cm4gci5qb2luKFwiXCIpfSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0XCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpfSxpJiYodGhpcy5mb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKHgpfSksdGhpcy5qc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSl9LHRoaXN9ZnVuY3Rpb24gXyhlLHQpe3ZhciByLGksbj0odD10fHx7fSkuYm9keTtpZihlIGluc3RhbmNlb2YgXyl7aWYoZS5ib2R5VXNlZCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQWxyZWFkeSByZWFkXCIpO3RoaXMudXJsPWUudXJsLHRoaXMuY3JlZGVudGlhbHM9ZS5jcmVkZW50aWFscyx0LmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IHAoZS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9ZS5tZXRob2QsdGhpcy5tb2RlPWUubW9kZSxufHxudWxsPT1lLl9ib2R5SW5pdHx8KG49ZS5fYm9keUluaXQsZS5ib2R5VXNlZD0hMCl9ZWxzZSB0aGlzLnVybD1TdHJpbmcoZSk7aWYodGhpcy5jcmVkZW50aWFscz10LmNyZWRlbnRpYWxzfHx0aGlzLmNyZWRlbnRpYWxzfHxcIm9taXRcIiwhdC5oZWFkZXJzJiZ0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IHAodC5oZWFkZXJzKSksdGhpcy5tZXRob2Q9KHI9dC5tZXRob2R8fHRoaXMubWV0aG9kfHxcIkdFVFwiLGk9ci50b1VwcGVyQ2FzZSgpLC0xPHUuaW5kZXhPZihpKT9pOnIpLHRoaXMubW9kZT10Lm1vZGV8fHRoaXMubW9kZXx8bnVsbCx0aGlzLnJlZmVycmVyPW51bGwsKFwiR0VUXCI9PT10aGlzLm1ldGhvZHx8XCJIRUFEXCI9PT10aGlzLm1ldGhvZCkmJm4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvZHkgbm90IGFsbG93ZWQgZm9yIEdFVCBvciBIRUFEIHJlcXVlc3RzXCIpO3RoaXMuX2luaXRCb2R5KG4pfWZ1bmN0aW9uIHgoZSl7dmFyIG49bmV3IEZvcm1EYXRhO3JldHVybiBlLnRyaW0oKS5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lLnNwbGl0KFwiPVwiKSxyPXQuc2hpZnQoKS5yZXBsYWNlKC9cXCsvZyxcIiBcIiksaT10LmpvaW4oXCI9XCIpLnJlcGxhY2UoL1xcKy9nLFwiIFwiKTtuLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQociksZGVjb2RlVVJJQ29tcG9uZW50KGkpKX19KSxufWZ1bmN0aW9uIHcoZSx0KXt0PXR8fHt9LHRoaXMudHlwZT1cImRlZmF1bHRcIix0aGlzLnN0YXR1cz12b2lkIDA9PT10LnN0YXR1cz8yMDA6dC5zdGF0dXMsdGhpcy5vaz0yMDA8PXRoaXMuc3RhdHVzJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PVwic3RhdHVzVGV4dFwiaW4gdD90LnN0YXR1c1RleHQ6XCJPS1wiLHRoaXMuaGVhZGVycz1uZXcgcCh0LmhlYWRlcnMpLHRoaXMudXJsPXQudXJsfHxcIlwiLHRoaXMuX2luaXRCb2R5KGUpfX0oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzKX0se31dLDE2OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgbCxpPWEoZShcIi4uL2NvcmUvbWFpblwiKSksbj1hKGUoXCIuLi9jb2xvci9jb2xvcl9jb252ZXJzaW9uXCIpKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgdT1be2g6MCxzOjAsYjouODI3NSxuYW1lOlwiZ3JheVwifSx7aDowLHM6MCxiOi44NjI3LG5hbWU6XCJncmF5XCJ9LHtoOjAsczowLGI6Ljc1MjksbmFtZTpcImdyYXlcIn0se2g6LjAxNjcsczouMTE3NixiOjEsbmFtZTpcImxpZ2h0IHBpbmtcIn1dLGg9W3toOjAsczowLGI6MCxuYW1lOlwiYmxhY2tcIn0se2g6MCxzOjAsYjouNSxuYW1lOlwiZ3JheVwifSx7aDowLHM6MCxiOjEsbmFtZTpcIndoaXRlXCJ9LHtoOjAsczouNSxiOi41LG5hbWU6XCJkYXJrIG1hcm9vblwifSx7aDowLHM6LjUsYjoxLG5hbWU6XCJzYWxtb24gcGlua1wifSx7aDowLHM6MSxiOjAsbmFtZTpcImJsYWNrXCJ9LHtoOjAsczoxLGI6LjUsbmFtZTpcImRhcmsgcmVkXCJ9LHtoOjAsczoxLGI6MSxuYW1lOlwicmVkXCJ9LHtoOjUsczowLGI6MSxuYW1lOlwidmVyeSBsaWdodCBwZWFjaFwifSx7aDo1LHM6LjUsYjouNSxuYW1lOlwiYnJvd25cIn0se2g6NSxzOi41LGI6MSxuYW1lOlwicGVhY2hcIn0se2g6NSxzOjEsYjouNSxuYW1lOlwiYnJpY2sgcmVkXCJ9LHtoOjUsczoxLGI6MSxuYW1lOlwiY3JpbXNvblwifSx7aDoxMCxzOjAsYjoxLG5hbWU6XCJsaWdodCBwZWFjaFwifSx7aDoxMCxzOi41LGI6LjUsbmFtZTpcImJyb3duXCJ9LHtoOjEwLHM6LjUsYjoxLG5hbWU6XCJsaWdodCBvcmFuZ2VcIn0se2g6MTAsczoxLGI6LjUsbmFtZTpcImJyb3duXCJ9LHtoOjEwLHM6MSxiOjEsbmFtZTpcIm9yYW5nZVwifSx7aDoxNSxzOjAsYjoxLG5hbWU6XCJ2ZXJ5IGxpZ2h0IHllbGxvd1wifSx7aDoxNSxzOi41LGI6LjUsbmFtZTpcIm9saXZlIGdyZWVuXCJ9LHtoOjE1LHM6LjUsYjoxLG5hbWU6XCJsaWdodCB5ZWxsb3dcIn0se2g6MTUsczoxLGI6MCxuYW1lOlwiZGFyayBvbGl2ZSBncmVlblwifSx7aDoxNSxzOjEsYjouNSxuYW1lOlwib2xpdmUgZ3JlZW5cIn0se2g6MTUsczoxLGI6MSxuYW1lOlwieWVsbG93XCJ9LHtoOjIwLHM6MCxiOjEsbmFtZTpcInZlcnkgbGlnaHQgeWVsbG93XCJ9LHtoOjIwLHM6LjUsYjouNSxuYW1lOlwib2xpdmUgZ3JlZW5cIn0se2g6MjAsczouNSxiOjEsbmFtZTpcImxpZ2h0IHllbGxvdyBncmVlblwifSx7aDoyMCxzOjEsYjowLG5hbWU6XCJkYXJrIG9saXZlIGdyZWVuXCJ9LHtoOjIwLHM6MSxiOi41LG5hbWU6XCJkYXJrIHllbGxvdyBncmVlblwifSx7aDoyMCxzOjEsYjoxLG5hbWU6XCJ5ZWxsb3cgZ3JlZW5cIn0se2g6MjUsczouNSxiOi41LG5hbWU6XCJkYXJrIHllbGxvdyBncmVlblwifSx7aDoyNSxzOi41LGI6MSxuYW1lOlwibGlnaHQgZ3JlZW5cIn0se2g6MjUsczoxLGI6LjUsbmFtZTpcImRhcmsgZ3JlZW5cIn0se2g6MjUsczoxLGI6MSxuYW1lOlwiZ3JlZW5cIn0se2g6MzAsczouNSxiOjEsbmFtZTpcImxpZ2h0IGdyZWVuXCJ9LHtoOjMwLHM6MSxiOi41LG5hbWU6XCJkYXJrIGdyZWVuXCJ9LHtoOjMwLHM6MSxiOjEsbmFtZTpcImdyZWVuXCJ9LHtoOjM1LHM6MCxiOi41LG5hbWU6XCJsaWdodCBncmVlblwifSx7aDozNSxzOjAsYjoxLG5hbWU6XCJ2ZXJ5IGxpZ2h0IGdyZWVuXCJ9LHtoOjM1LHM6LjUsYjouNSxuYW1lOlwiZGFyayBncmVlblwifSx7aDozNSxzOi41LGI6MSxuYW1lOlwibGlnaHQgZ3JlZW5cIn0se2g6MzUsczoxLGI6MCxuYW1lOlwidmVyeSBkYXJrIGdyZWVuXCJ9LHtoOjM1LHM6MSxiOi41LG5hbWU6XCJkYXJrIGdyZWVuXCJ9LHtoOjM1LHM6MSxiOjEsbmFtZTpcImdyZWVuXCJ9LHtoOjQwLHM6MCxiOjEsbmFtZTpcInZlcnkgbGlnaHQgZ3JlZW5cIn0se2g6NDAsczouNSxiOi41LG5hbWU6XCJkYXJrIGdyZWVuXCJ9LHtoOjQwLHM6LjUsYjoxLG5hbWU6XCJsaWdodCBncmVlblwifSx7aDo0MCxzOjEsYjouNSxuYW1lOlwiZGFyayBncmVlblwifSx7aDo0MCxzOjEsYjoxLG5hbWU6XCJncmVlblwifSx7aDo0NSxzOi41LGI6MSxuYW1lOlwibGlnaHQgdHVycXVvaXNlXCJ9LHtoOjQ1LHM6MSxiOi41LG5hbWU6XCJkYXJrIHR1cnF1b2lzZVwifSx7aDo0NSxzOjEsYjoxLG5hbWU6XCJ0dXJxdW9pc2VcIn0se2g6NTAsczowLGI6MSxuYW1lOlwibGlnaHQgc2t5IGJsdWVcIn0se2g6NTAsczouNSxiOi41LG5hbWU6XCJkYXJrIGN5YW5cIn0se2g6NTAsczouNSxiOjEsbmFtZTpcImxpZ2h0IGN5YW5cIn0se2g6NTAsczoxLGI6LjUsbmFtZTpcImRhcmsgY3lhblwifSx7aDo1MCxzOjEsYjoxLG5hbWU6XCJjeWFuXCJ9LHtoOjU1LHM6MCxiOjEsbmFtZTpcImxpZ2h0IHNreSBibHVlXCJ9LHtoOjU1LHM6LjUsYjoxLG5hbWU6XCJsaWdodCBza3kgYmx1ZVwifSx7aDo1NSxzOjEsYjouNSxuYW1lOlwiZGFyayBibHVlXCJ9LHtoOjU1LHM6MSxiOjEsbmFtZTpcInNreSBibHVlXCJ9LHtoOjYwLHM6MCxiOi41LG5hbWU6XCJncmF5XCJ9LHtoOjYwLHM6MCxiOjEsbmFtZTpcInZlcnkgbGlnaHQgYmx1ZVwifSx7aDo2MCxzOi41LGI6LjUsbmFtZTpcImJsdWVcIn0se2g6NjAsczouNSxiOjEsbmFtZTpcImxpZ2h0IGJsdWVcIn0se2g6NjAsczoxLGI6LjUsbmFtZTpcIm5hdnkgYmx1ZVwifSx7aDo2MCxzOjEsYjoxLG5hbWU6XCJibHVlXCJ9LHtoOjY1LHM6MCxiOjEsbmFtZTpcImxhdmVuZGVyXCJ9LHtoOjY1LHM6LjUsYjouNSxuYW1lOlwibmF2eSBibHVlXCJ9LHtoOjY1LHM6LjUsYjoxLG5hbWU6XCJsaWdodCBwdXJwbGVcIn0se2g6NjUsczoxLGI6LjUsbmFtZTpcImRhcmsgbmF2eSBibHVlXCJ9LHtoOjY1LHM6MSxiOjEsbmFtZTpcImJsdWVcIn0se2g6NzAsczowLGI6MSxuYW1lOlwibGF2ZW5kZXJcIn0se2g6NzAsczouNSxiOi41LG5hbWU6XCJuYXZ5IGJsdWVcIn0se2g6NzAsczouNSxiOjEsbmFtZTpcImxhdmVuZGVyIGJsdWVcIn0se2g6NzAsczoxLGI6LjUsbmFtZTpcImRhcmsgbmF2eSBibHVlXCJ9LHtoOjcwLHM6MSxiOjEsbmFtZTpcImJsdWVcIn0se2g6NzUsczouNSxiOjEsbmFtZTpcImxhdmVuZGVyXCJ9LHtoOjc1LHM6MSxiOi41LG5hbWU6XCJkYXJrIHB1cnBsZVwifSx7aDo3NSxzOjEsYjoxLG5hbWU6XCJwdXJwbGVcIn0se2g6ODAsczouNSxiOjEsbmFtZTpcInBpbmtpc2ggcHVycGxlXCJ9LHtoOjgwLHM6MSxiOi41LG5hbWU6XCJkYXJrIHB1cnBsZVwifSx7aDo4MCxzOjEsYjoxLG5hbWU6XCJwdXJwbGVcIn0se2g6ODUsczowLGI6MSxuYW1lOlwibGlnaHQgcGlua1wifSx7aDo4NSxzOi41LGI6LjUsbmFtZTpcInB1cnBsZVwifSx7aDo4NSxzOi41LGI6MSxuYW1lOlwibGlnaHQgZnVjaHNpYVwifSx7aDo4NSxzOjEsYjouNSxuYW1lOlwiZGFyayBmdWNoc2lhXCJ9LHtoOjg1LHM6MSxiOjEsbmFtZTpcImZ1Y2hzaWFcIn0se2g6OTAsczouNSxiOi41LG5hbWU6XCJkYXJrIGZ1Y2hzaWFcIn0se2g6OTAsczouNSxiOjEsbmFtZTpcImhvdCBwaW5rXCJ9LHtoOjkwLHM6MSxiOi41LG5hbWU6XCJkYXJrIGZ1Y2hzaWFcIn0se2g6OTAsczoxLGI6MSxuYW1lOlwiZnVjaHNpYVwifSx7aDo5NSxzOjAsYjoxLG5hbWU6XCJwaW5rXCJ9LHtoOjk1LHM6LjUsYjoxLG5hbWU6XCJsaWdodCBwaW5rXCJ9LHtoOjk1LHM6MSxiOi41LG5hbWU6XCJkYXJrIG1hZ2VudGFcIn0se2g6OTUsczoxLGI6MSxuYW1lOlwibWFnZW50YVwifV07aS5kZWZhdWx0LnByb3RvdHlwZS5fcmdiQ29sb3JOYW1lPWZ1bmN0aW9uKGUpe3ZhciB0PW4uZGVmYXVsdC5fcmdiYVRvSFNCQShlKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ7aWYoMCE9PWVbMF0pe2VbMF09TWF0aC5yb3VuZCgxMDAqZVswXSk7dmFyIHI9ZVswXS50b1N0cmluZygpLnNwbGl0KFwiXCIpLGk9ci5sZW5ndGgtMTtyW2ldPXBhcnNlSW50KHJbaV0pLHJbaV08Mi41P3JbaV09MDoyLjU8PXJbaV0mJnJbaV08Ny41JiYocltpXT01KSwyPT09ci5sZW5ndGg/KHJbMF09cGFyc2VJbnQoclswXSksNy41PD1yW2ldJiYocltpXT0wLHJbMF09clswXSsxKSxlWzBdPTEwKnJbMF0rclsxXSk6Ny41PD1yW2ldP2VbMF09MTA6ZVswXT1yW2ldfWVbMl09ZVsyXS8yNTU7Zm9yKHZhciBuPWUubGVuZ3RoLTE7MTw9bjtuLS0pZVtuXTw9LjI1P2Vbbl09MDouMjU8ZVtuXSYmZVtuXTwuNzU/ZVtuXT0uNTplW25dPTE7aWYoMD09PWVbMF0mJjA9PT1lWzFdJiYxPT09ZVsyXSl7Zm9yKHZhciBhPTI7MDw9YTthLS0pbFthXT1NYXRoLnJvdW5kKDFlNCpsW2FdKS8xZTQ7Zm9yKHZhciBvPTA7bzx1Lmxlbmd0aDtvKyspe2lmKHVbb10uaD09PWxbMF0mJnVbb10ucz09PWxbMV0mJnVbb10uYj09PWxbMl0pe3Q9dVtvXS5uYW1lO2JyZWFrfXQ9XCJ3aGl0ZVwifX1lbHNlIGZvcih2YXIgcz0wO3M8aC5sZW5ndGg7cysrKWlmKGhbc10uaD09PWVbMF0mJmhbc10ucz09PWVbMV0mJmhbc10uYj09PWVbMl0pe3Q9aFtzXS5uYW1lO2JyZWFrfXJldHVybiB0fShbKGw9dClbMF0sdFsxXSx0WzJdXSl9O3ZhciBvPWkuZGVmYXVsdDtyLmRlZmF1bHQ9b30se1wiLi4vY29sb3IvY29sb3JfY29udmVyc2lvblwiOjIyLFwiLi4vY29yZS9tYWluXCI6MzZ9XSwxNzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbz0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07dmFyIGw9XCJfRGVzY3JpcHRpb25cIix1PVwiX2ZhbGxiYWNrRGVzY1wiLGg9XCJfZmFsbGJhY2tUYWJsZVwiLGM9XCJfTGFiZWxcIixmPVwiX2xhYmVsRGVzY1wiLGQ9XCJfbGFiZWxUYWJsZVwiO2Z1bmN0aW9uIHMoZSl7aWYoXCJsYWJlbFwiPT09ZXx8XCJmYWxsYmFja1wiPT09ZSl0aHJvdyBuZXcgRXJyb3IoXCJkZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIExBQkVMIG9yIEZBTExCQUNLXCIpO3JldHVybiBlLmVuZHNXaXRoKFwiLlwiKXx8ZS5lbmRzV2l0aChcIjtcIil8fGUuZW5kc1dpdGgoXCIsXCIpfHxlLmVuZHNXaXRoKFwiP1wiKXx8ZS5lbmRzV2l0aChcIiFcIil8fChlKz1cIi5cIiksZX1vLmRlZmF1bHQucHJvdG90eXBlLmRlc2NyaWJlPWZ1bmN0aW9uKGUsdCl7aWYoby5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJkZXNjcmliZVwiLGFyZ3VtZW50cyksXCJzdHJpbmdcIj09dHlwZW9mIGUpe3ZhciByPXRoaXMuY2FudmFzLmlkO2U9cyhlKSx0aGlzLmR1bW15RE9NfHwodGhpcy5kdW1teURPTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChyKS5wYXJlbnROb2RlKSx0aGlzLmRlc2NyaXB0aW9uc3x8KHRoaXMuZGVzY3JpcHRpb25zPXt9KSx0aGlzLmRlc2NyaXB0aW9ucy5mYWxsYmFjaz90aGlzLmRlc2NyaXB0aW9ucy5mYWxsYmFjay5pbm5lckhUTUwhPT1lJiYodGhpcy5kZXNjcmlwdGlvbnMuZmFsbGJhY2suaW5uZXJIVE1MPWUpOnRoaXMuX2Rlc2NyaWJlSFRNTChcImZhbGxiYWNrXCIsZSksdD09PXRoaXMuTEFCRUwmJih0aGlzLmRlc2NyaXB0aW9ucy5sYWJlbD90aGlzLmRlc2NyaXB0aW9ucy5sYWJlbC5pbm5lckhUTUwhPT1lJiYodGhpcy5kZXNjcmlwdGlvbnMubGFiZWwuaW5uZXJIVE1MPWUpOnRoaXMuX2Rlc2NyaWJlSFRNTChcImxhYmVsXCIsZSkpfX0sby5kZWZhdWx0LnByb3RvdHlwZS5kZXNjcmliZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LHIpe2lmKG8uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiZGVzY3JpYmVFbGVtZW50XCIsYXJndW1lbnRzKSxcInN0cmluZ1wiPT10eXBlb2YgdCYmXCJzdHJpbmdcIj09dHlwZW9mIGUpe3ZhciBpPXRoaXMuY2FudmFzLmlkO3Q9cyh0KTt2YXIgbj1mdW5jdGlvbihlKXtpZihcImxhYmVsXCI9PT1lfHxcImZhbGxiYWNrXCI9PT1lKXRocm93IG5ldyBFcnJvcihcImVsZW1lbnQgbmFtZSBzaG91bGQgbm90IGJlIExBQkVMIG9yIEZBTExCQUNLXCIpO2UuZW5kc1dpdGgoXCIuXCIpfHxlLmVuZHNXaXRoKFwiO1wiKXx8ZS5lbmRzV2l0aChcIixcIik/ZT1lLnJlcGxhY2UoLy4kLyxcIjpcIik6ZS5lbmRzV2l0aChcIjpcIil8fChlKz1cIjpcIik7cmV0dXJuIGV9KGUpO2U9ZS5yZXBsYWNlKC9bXmEtekEtWjAtOSBdL2csXCJcIik7dmFyIGE9Jzx0aCBzY29wZT1cInJvd1wiPicuY29uY2F0KG4sXCI8L3RoPjx0ZD5cIikuY29uY2F0KHQsXCI8L3RkPlwiKTt0aGlzLmR1bW15RE9NfHwodGhpcy5kdW1teURPTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpKS5wYXJlbnROb2RlKSx0aGlzLmRlc2NyaXB0aW9ucz90aGlzLmRlc2NyaXB0aW9ucy5mYWxsYmFja0VsZW1lbnRzfHwodGhpcy5kZXNjcmlwdGlvbnMuZmFsbGJhY2tFbGVtZW50cz17fSk6dGhpcy5kZXNjcmlwdGlvbnM9e2ZhbGxiYWNrRWxlbWVudHM6e319LHRoaXMuZGVzY3JpcHRpb25zLmZhbGxiYWNrRWxlbWVudHNbZV0/dGhpcy5kZXNjcmlwdGlvbnMuZmFsbGJhY2tFbGVtZW50c1tlXS5pbm5lckhUTUwhPT1hJiYodGhpcy5kZXNjcmlwdGlvbnMuZmFsbGJhY2tFbGVtZW50c1tlXS5pbm5lckhUTUw9YSk6dGhpcy5fZGVzY3JpYmVFbGVtZW50SFRNTChcImZhbGxiYWNrXCIsZSxhKSxyPT09dGhpcy5MQUJFTCYmKHRoaXMuZGVzY3JpcHRpb25zLmxhYmVsRWxlbWVudHN8fCh0aGlzLmRlc2NyaXB0aW9ucy5sYWJlbEVsZW1lbnRzPXt9KSx0aGlzLmRlc2NyaXB0aW9ucy5sYWJlbEVsZW1lbnRzW2VdP3RoaXMuZGVzY3JpcHRpb25zLmxhYmVsRWxlbWVudHNbZV0uaW5uZXJIVE1MIT09YSYmKHRoaXMuZGVzY3JpcHRpb25zLmxhYmVsRWxlbWVudHNbZV0uaW5uZXJIVE1MPWEpOnRoaXMuX2Rlc2NyaWJlRWxlbWVudEhUTUwoXCJsYWJlbFwiLGUsYSkpfX0sby5kZWZhdWx0LnByb3RvdHlwZS5fZGVzY3JpYmVIVE1MPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5jYW52YXMuaWQ7aWYoXCJmYWxsYmFja1wiPT09ZSl7aWYodGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChyK2wpKSl0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIrcitoKS5pbnNlcnRBZGphY2VudEhUTUwoXCJiZWZvcmViZWdpblwiLCc8cCBpZD1cIicuY29uY2F0KHIrdSwnXCI+PC9wPicpKTtlbHNle3ZhciBpPSc8ZGl2IGlkPVwiJy5jb25jYXQocikuY29uY2F0KGwsJ1wiIHJvbGU9XCJyZWdpb25cIiBhcmlhLWxhYmVsPVwiQ2FudmFzIERlc2NyaXB0aW9uXCI+PHAgaWQ9XCInKS5jb25jYXQocikuY29uY2F0KHUsJ1wiPjwvcD48L2Rpdj4nKTt0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHIsXCJhY2Nlc3NpYmxlT3V0cHV0XCIpKT90aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHIsXCJhY2Nlc3NpYmxlT3V0cHV0XCIpKS5pbnNlcnRBZGphY2VudEhUTUwoXCJiZWZvcmViZWdpblwiLGkpOnRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQocikpLmlubmVySFRNTD1pfXJldHVybiB0aGlzLmRlc2NyaXB0aW9ucy5mYWxsYmFjaz10aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHIpLmNvbmNhdCh1KSksdm9pZCh0aGlzLmRlc2NyaXB0aW9ucy5mYWxsYmFjay5pbm5lckhUTUw9dCl9aWYoXCJsYWJlbFwiPT09ZSl7aWYodGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChyK2MpKSl0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHIrZCkpJiZ0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHIrZCkpLmluc2VydEFkamFjZW50SFRNTChcImJlZm9yZWJlZ2luXCIsJzxwIGlkPVwiJy5jb25jYXQocikuY29uY2F0KGYsJ1wiPjwvcD4nKSk7ZWxzZXt2YXIgbj0nPGRpdiBpZD1cIicuY29uY2F0KHIpLmNvbmNhdChjLCdcIiBjbGFzcz1cInA1TGFiZWxcIj48cCBpZD1cIicpLmNvbmNhdChyKS5jb25jYXQoZiwnXCI+PC9wPjwvZGl2PicpO3RoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQocixcImFjY2Vzc2libGVPdXRwdXRMYWJlbFwiKSk/dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChyLFwiYWNjZXNzaWJsZU91dHB1dExhYmVsXCIpKS5pbnNlcnRBZGphY2VudEhUTUwoXCJiZWZvcmViZWdpblwiLG4pOnRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIityKS5pbnNlcnRBZGphY2VudEhUTUwoXCJhZnRlcmVuZFwiLG4pfXJldHVybiB0aGlzLmRlc2NyaXB0aW9ucy5sYWJlbD10aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIrcitmKSx2b2lkKHRoaXMuZGVzY3JpcHRpb25zLmxhYmVsLmlubmVySFRNTD10KX19LG8uZGVmYXVsdC5wcm90b3R5cGUuX2Rlc2NyaWJlRWxlbWVudEhUTUw9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMuY2FudmFzLmlkO2lmKFwiZmFsbGJhY2tcIj09PWUpe2lmKHRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQoaStsKSkpdGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiK2kraCl8fHRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIitpK3UpLmluc2VydEFkamFjZW50SFRNTChcImFmdGVyZW5kXCIsJzx0YWJsZSBpZD1cIicuY29uY2F0KGkpLmNvbmNhdChoLCdcIj48Y2FwdGlvbj5DYW52YXMgZWxlbWVudHMgYW5kIHRoZWlyIGRlc2NyaXB0aW9uczwvY2FwdGlvbj48L3RhYmxlPicpKTtlbHNle3ZhciBuPSc8ZGl2IGlkPVwiJy5jb25jYXQoaSkuY29uY2F0KGwsJ1wiIHJvbGU9XCJyZWdpb25cIiBhcmlhLWxhYmVsPVwiQ2FudmFzIERlc2NyaXB0aW9uXCI+PHRhYmxlIGlkPVwiJykuY29uY2F0KGkpLmNvbmNhdChoLCdcIj48Y2FwdGlvbj5DYW52YXMgZWxlbWVudHMgYW5kIHRoZWlyIGRlc2NyaXB0aW9uczwvY2FwdGlvbj48L3RhYmxlPjwvZGl2PicpO3RoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQoaSxcImFjY2Vzc2libGVPdXRwdXRcIikpP3RoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQoaSxcImFjY2Vzc2libGVPdXRwdXRcIikpLmluc2VydEFkamFjZW50SFRNTChcImJlZm9yZWJlZ2luXCIsbik6dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiK2kpLmlubmVySFRNTD1ufXZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0clwiKTtyZXR1cm4gYS5pZD1pK1wiX2Z0ZV9cIit0LHRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIitpK2gpLmFwcGVuZENoaWxkKGEpLHRoaXMuZGVzY3JpcHRpb25zLmZhbGxiYWNrRWxlbWVudHNbdF09dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChpKS5jb25jYXQoXCJfZnRlX1wiKS5jb25jYXQodCkpLHZvaWQodGhpcy5kZXNjcmlwdGlvbnMuZmFsbGJhY2tFbGVtZW50c1t0XS5pbm5lckhUTUw9cil9aWYoXCJsYWJlbFwiPT09ZSl7aWYodGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChpK2MpKSl0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGkrZCkpfHx0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIraStmKS5pbnNlcnRBZGphY2VudEhUTUwoXCJhZnRlcmVuZFwiLCc8dGFibGUgaWQ9XCInLmNvbmNhdChpK2QsJ1wiPjwvdGFibGU+JykpO2Vsc2V7dmFyIG89JzxkaXYgaWQ9XCInLmNvbmNhdChpKS5jb25jYXQoYywnXCIgY2xhc3M9XCJwNUxhYmVsXCI+PHRhYmxlIGlkPVwiJykuY29uY2F0KGkpLmNvbmNhdChkLCdcIj48L3RhYmxlPjwvZGl2PicpO3RoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQoaSxcImFjY2Vzc2libGVPdXRwdXRMYWJlbFwiKSk/dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChpLFwiYWNjZXNzaWJsZU91dHB1dExhYmVsXCIpKS5pbnNlcnRBZGphY2VudEhUTUwoXCJiZWZvcmViZWdpblwiLG8pOnRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIitpKS5pbnNlcnRBZGphY2VudEhUTUwoXCJhZnRlcmVuZFwiLG8pfXZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0clwiKTtzLmlkPWkrXCJfbHRlX1wiK3QsdGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiK2krZCkuYXBwZW5kQ2hpbGQocyksdGhpcy5kZXNjcmlwdGlvbnMubGFiZWxFbGVtZW50c1t0XT10aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGkpLmNvbmNhdChcIl9sdGVfXCIpLmNvbmNhdCh0KSksdGhpcy5kZXNjcmlwdGlvbnMubGFiZWxFbGVtZW50c1t0XS5pbm5lckhUTUw9cn19O3ZhciBuPW8uZGVmYXVsdDtyLmRlZmF1bHQ9bn0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSwxODpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LnByb3RvdHlwZS5fdXBkYXRlR3JpZE91dHB1dD1mdW5jdGlvbihlKXtpZih0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGUsXCJfc3VtbWFyeVwiKSkpe3ZhciB0PXRoaXMuX2FjY2Vzc2libGVPdXRwdXRzW2VdLHI9ZnVuY3Rpb24oZSx0KXt2YXIgcj1cIlwiLGk9XCJcIixuPTA7Zm9yKHZhciBhIGluIHQpe3ZhciBvPTA7Zm9yKHZhciBzIGluIHRbYV0pe3ZhciBsPSc8bGkgaWQ9XCInLmNvbmNhdChlLFwic2hhcGVcIikuY29uY2F0KG4sJ1wiPicpLmNvbmNhdCh0W2FdW3NdLmNvbG9yLFwiIFwiKS5jb25jYXQoYSxcIixcIik7XCJsaW5lXCI9PT1hP2wrPVwiIGxvY2F0aW9uID0gXCIuY29uY2F0KHRbYV1bc10ucG9zLFwiLCBsZW5ndGggPSBcIikuY29uY2F0KHRbYV1bc10ubGVuZ3RoLFwiIHBpeGVsc1wiKToobCs9XCIgbG9jYXRpb24gPSBcIi5jb25jYXQodFthXVtzXS5wb3MpLFwicG9pbnRcIiE9PWEmJihsKz1cIiwgYXJlYSA9IFwiLmNvbmNhdCh0W2FdW3NdLmFyZWEsXCIgJVwiKSksbCs9XCI8L2xpPlwiKSxyKz1sLG8rKyxuKyt9aT0xPG8/XCJcIi5jb25jYXQoaSxcIiBcIikuY29uY2F0KG8sXCIgXCIpLmNvbmNhdChhLFwic1wiKTpcIlwiLmNvbmNhdChpLFwiIFwiKS5jb25jYXQobyxcIiBcIikuY29uY2F0KGEpfXJldHVybntudW1TaGFwZXM6W24saV0sZGV0YWlsczpyfX0oZSx0aGlzLmluZ3JlZGllbnRzLnNoYXBlcyksaT1mdW5jdGlvbihlLHQscixpKXt2YXIgbj1cIlwiLmNvbmNhdCh0LFwiIGNhbnZhcywgXCIpLmNvbmNhdChyLFwiIGJ5IFwiKS5jb25jYXQoaSxcIiBwaXhlbHMsIGNvbnRhaW5zIFwiKS5jb25jYXQoZVswXSk7bj0xPT09ZVswXT9cIlwiLmNvbmNhdChuLFwiIHNoYXBlOiBcIikuY29uY2F0KGVbMV0pOlwiXCIuY29uY2F0KG4sXCIgc2hhcGVzOiBcIikuY29uY2F0KGVbMV0pO3JldHVybiBufShyLm51bVNoYXBlcyx0aGlzLmluZ3JlZGllbnRzLmNvbG9ycy5iYWNrZ3JvdW5kLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLG49ZnVuY3Rpb24oZSx0KXt2YXIgcj0wLGk9XCJcIixuPUFycmF5LmFwcGx5KG51bGwsQXJyYXkoMTApKS5tYXAoZnVuY3Rpb24oKXt9KTtmb3IodmFyIGEgaW4gbiluW2FdPUFycmF5LmFwcGx5KG51bGwsQXJyYXkoMTApKS5tYXAoZnVuY3Rpb24oKXt9KTtmb3IodmFyIG8gaW4gdClmb3IodmFyIHMgaW4gdFtvXSl7dmFyIGw9dm9pZCAwO2w9XCJsaW5lXCIhPT1vPyc8YSBocmVmPVwiIycuY29uY2F0KGUsXCJzaGFwZVwiKS5jb25jYXQociwnXCI+JykuY29uY2F0KHRbb11bc10uY29sb3IsXCIgXCIpLmNvbmNhdChvLFwiPC9hPlwiKTonPGEgaHJlZj1cIiMnLmNvbmNhdChlLFwic2hhcGVcIikuY29uY2F0KHIsJ1wiPicpLmNvbmNhdCh0W29dW3NdLmNvbG9yLFwiIFwiKS5jb25jYXQobyxcIiBtaWRwb2ludDwvYT5cIiksblt0W29dW3NdLmxvYy5sb2NZXVt0W29dW3NdLmxvYy5sb2NYXT9uW3Rbb11bc10ubG9jLmxvY1ldW3Rbb11bc10ubG9jLmxvY1hdPW5bdFtvXVtzXS5sb2MubG9jWV1bdFtvXVtzXS5sb2MubG9jWF0rXCIgIFwiK2w6blt0W29dW3NdLmxvYy5sb2NZXVt0W29dW3NdLmxvYy5sb2NYXT1sLHIrK31mb3IodmFyIHUgaW4gbil7dmFyIGg9XCI8dHI+XCI7Zm9yKHZhciBjIGluIG5bdV0paCs9XCI8dGQ+XCIsdm9pZCAwIT09blt1XVtjXSYmKGgrPW5bdV1bY10pLGgrPVwiPC90ZD5cIjtpPWkraCtcIjwvdHI+XCJ9cmV0dXJuIGl9KGUsdGhpcy5pbmdyZWRpZW50cy5zaGFwZXMpO2khPT10LnN1bW1hcnkuaW5uZXJIVE1MJiYodC5zdW1tYXJ5LmlubmVySFRNTD1pKSxuIT09dC5tYXAuaW5uZXJIVE1MJiYodC5tYXAuaW5uZXJIVE1MPW4pLHIuZGV0YWlscyE9PXQuc2hhcGVEZXRhaWxzLmlubmVySFRNTCYmKHQuc2hhcGVEZXRhaWxzLmlubmVySFRNTD1yLmRldGFpbHMpLHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzW2VdPXR9fTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sMTk6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2Z1bmN0aW9uIGwoZSx0LHIpe3JldHVybiBlWzBdPC40KnQ/ZVsxXTwuNCpyP1widG9wIGxlZnRcIjplWzFdPi42KnI/XCJib3R0b20gbGVmdFwiOlwibWlkIGxlZnRcIjplWzBdPi42KnQ/ZVsxXTwuNCpyP1widG9wIHJpZ2h0XCI6ZVsxXT4uNipyP1wiYm90dG9tIHJpZ2h0XCI6XCJtaWQgcmlnaHRcIjplWzFdPC40KnI/XCJ0b3AgbWlkZGxlXCI6ZVsxXT4uNipyP1wiYm90dG9tIG1pZGRsZVwiOlwibWlkZGxlXCJ9ZnVuY3Rpb24gdShlLHQscil7dmFyIGk9TWF0aC5mbG9vcihlWzBdL3QqMTApLG49TWF0aC5mbG9vcihlWzFdL3IqMTApO3JldHVybiAxMD09PWkmJi0taSwxMD09PW4mJi0tbix7bG9jWDppLGxvY1k6bn19bi5kZWZhdWx0LnByb3RvdHlwZS50ZXh0T3V0cHV0PWZ1bmN0aW9uKGUpe24uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwidGV4dE91dHB1dFwiLGFyZ3VtZW50cyksdGhpcy5fYWNjZXNzaWJsZU91dHB1dHMudGV4dHx8KHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLnRleHQ9ITAsdGhpcy5fY3JlYXRlT3V0cHV0KFwidGV4dE91dHB1dFwiLFwiRmFsbGJhY2tcIiksZT09PXRoaXMuTEFCRUwmJih0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy50ZXh0TGFiZWw9ITAsdGhpcy5fY3JlYXRlT3V0cHV0KFwidGV4dE91dHB1dFwiLFwiTGFiZWxcIikpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5ncmlkT3V0cHV0PWZ1bmN0aW9uKGUpe24uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiZ3JpZE91dHB1dFwiLGFyZ3VtZW50cyksdGhpcy5fYWNjZXNzaWJsZU91dHB1dHMuZ3JpZHx8KHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLmdyaWQ9ITAsdGhpcy5fY3JlYXRlT3V0cHV0KFwiZ3JpZE91dHB1dFwiLFwiRmFsbGJhY2tcIiksZT09PXRoaXMuTEFCRUwmJih0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy5ncmlkTGFiZWw9ITAsdGhpcy5fY3JlYXRlT3V0cHV0KFwiZ3JpZE91dHB1dFwiLFwiTGFiZWxcIikpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fYWRkQWNjc091dHB1dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0c3x8KHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzPXt0ZXh0OiExLGdyaWQ6ITEsdGV4dExhYmVsOiExLGdyaWRMYWJlbDohMX0pLHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLmdyaWR8fHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLnRleHR9LG4uZGVmYXVsdC5wcm90b3R5cGUuX2NyZWF0ZU91dHB1dD1mdW5jdGlvbihlLHQpe3ZhciByLGksbixhPXRoaXMuY2FudmFzLmlkO3RoaXMuaW5ncmVkaWVudHN8fCh0aGlzLmluZ3JlZGllbnRzPXtzaGFwZXM6e30sY29sb3JzOntiYWNrZ3JvdW5kOlwid2hpdGVcIixmaWxsOlwid2hpdGVcIixzdHJva2U6XCJibGFja1wifSxwU2hhcGVzOlwiXCJ9KSx0aGlzLmR1bW15RE9NfHwodGhpcy5kdW1teURPTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKS5wYXJlbnROb2RlKTt2YXIgbz1cIlwiO1wiRmFsbGJhY2tcIj09PXQ/KHI9YStlLGk9YStcImFjY2Vzc2libGVPdXRwdXRcIix0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGkpKXx8KHRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQoYSxcIl9EZXNjcmlwdGlvblwiKSk/dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChhLFwiX0Rlc2NyaXB0aW9uXCIpKS5pbnNlcnRBZGphY2VudEhUTUwoXCJhZnRlcmVuZFwiLCc8ZGl2IGlkPVwiJy5jb25jYXQoaSwnXCIgcm9sZT1cInJlZ2lvblwiIGFyaWEtbGFiZWw9XCJDYW52YXMgT3V0cHV0c1wiPjwvZGl2PicpKTp0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGEpKS5pbm5lckhUTUw9JzxkaXYgaWQ9XCInLmNvbmNhdChpLCdcIiByb2xlPVwicmVnaW9uXCIgYXJpYS1sYWJlbD1cIkNhbnZhcyBPdXRwdXRzXCI+PC9kaXY+JykpKTpcIkxhYmVsXCI9PT10JiYocj1hK2UrKG89dCksaT1hK1wiYWNjZXNzaWJsZU91dHB1dFwiK3QsdGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChpKSl8fCh0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGEsXCJfTGFiZWxcIikpP3RoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQoYSxcIl9MYWJlbFwiKSkuaW5zZXJ0QWRqYWNlbnRIVE1MKFwiYWZ0ZXJlbmRcIiwnPGRpdiBpZD1cIicuY29uY2F0KGksJ1wiPjwvZGl2PicpKTp0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGEpKS5pbnNlcnRBZGphY2VudEhUTUwoXCJhZnRlcmVuZFwiLCc8ZGl2IGlkPVwiJy5jb25jYXQoaSwnXCI+PC9kaXY+JykpKSksdGhpcy5fYWNjZXNzaWJsZU91dHB1dHNbcl09e30sXCJ0ZXh0T3V0cHV0XCI9PT1lPyhvPVwiI1wiLmNvbmNhdChhLFwiZ3JpZE91dHB1dFwiKS5jb25jYXQobyksbj0nPGRpdiBpZD1cIicuY29uY2F0KHIsJ1wiPlRleHQgT3V0cHV0PGRpdiBpZD1cIicpLmNvbmNhdChyLCdTdW1tYXJ5XCIgYXJpYS1sYWJlbD1cInRleHQgb3V0cHV0IHN1bW1hcnlcIj48cCBpZD1cIicpLmNvbmNhdChyLCdfc3VtbWFyeVwiPjwvcD48dWwgaWQ9XCInKS5jb25jYXQociwnX2xpc3RcIj48L3VsPjwvZGl2Pjx0YWJsZSBpZD1cIicpLmNvbmNhdChyLCdfc2hhcGVEZXRhaWxzXCIgc3VtbWFyeT1cInRleHQgb3V0cHV0IHNoYXBlIGRldGFpbHNcIj48L3RhYmxlPjwvZGl2PicpLHRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihvKT90aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IobykuaW5zZXJ0QWRqYWNlbnRIVE1MKFwiYmVmb3JlYmVnaW5cIixuKTp0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KGkpKS5pbm5lckhUTUw9bix0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0c1tyXS5saXN0PXRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQocixcIl9saXN0XCIpKSk6XCJncmlkT3V0cHV0XCI9PT1lJiYobz1cIiNcIi5jb25jYXQoYSxcInRleHRPdXRwdXRcIikuY29uY2F0KG8pLG49JzxkaXYgaWQ9XCInLmNvbmNhdChyLCdcIj5HcmlkIE91dHB1dDxwIGlkPVwiJykuY29uY2F0KHIsJ19zdW1tYXJ5XCIgYXJpYS1sYWJlbD1cImdyaWQgb3V0cHV0IHN1bW1hcnlcIj48dGFibGUgaWQ9XCInKS5jb25jYXQociwnX21hcFwiIHN1bW1hcnk9XCJncmlkIG91dHB1dCBjb250ZW50XCI+PC90YWJsZT48dWwgaWQ9XCInKS5jb25jYXQociwnX3NoYXBlRGV0YWlsc1wiIGFyaWEtbGFiZWw9XCJncmlkIG91dHB1dCBzaGFwZSBkZXRhaWxzXCI+PC91bD48L2Rpdj4nKSx0aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3Iobyk/dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKG8pLmluc2VydEFkamFjZW50SFRNTChcImFmdGVyZW5kXCIsbik6dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChpKSkuaW5uZXJIVE1MPW4sdGhpcy5fYWNjZXNzaWJsZU91dHB1dHNbcl0ubWFwPXRoaXMuZHVtbXlET00ucXVlcnlTZWxlY3RvcihcIiNcIi5jb25jYXQocixcIl9tYXBcIikpKSx0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0c1tyXS5zaGFwZURldGFpbHM9dGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChyLFwiX3NoYXBlRGV0YWlsc1wiKSksdGhpcy5fYWNjZXNzaWJsZU91dHB1dHNbcl0uc3VtbWFyeT10aGlzLmR1bW15RE9NLnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHIsXCJfc3VtbWFyeVwiKSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX3VwZGF0ZUFjY3NPdXRwdXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNhbnZhcy5pZDtKU09OLnN0cmluZ2lmeSh0aGlzLmluZ3JlZGllbnRzLnNoYXBlcykhPT10aGlzLmluZ3JlZGllbnRzLnBTaGFwZXMmJih0aGlzLmluZ3JlZGllbnRzLnBTaGFwZXM9SlNPTi5zdHJpbmdpZnkodGhpcy5pbmdyZWRpZW50cy5zaGFwZXMpLHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLnRleHQmJnRoaXMuX3VwZGF0ZVRleHRPdXRwdXQoZStcInRleHRPdXRwdXRcIiksdGhpcy5fYWNjZXNzaWJsZU91dHB1dHMuZ3JpZCYmdGhpcy5fdXBkYXRlR3JpZE91dHB1dChlK1wiZ3JpZE91dHB1dFwiKSx0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy50ZXh0TGFiZWwmJnRoaXMuX3VwZGF0ZVRleHRPdXRwdXQoZStcInRleHRPdXRwdXRMYWJlbFwiKSx0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy5ncmlkTGFiZWwmJnRoaXMuX3VwZGF0ZUdyaWRPdXRwdXQoZStcImdyaWRPdXRwdXRMYWJlbFwiKSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX2FjY3NCYWNrZ3JvdW5kPWZ1bmN0aW9uKGUpe3RoaXMuaW5ncmVkaWVudHMucFNoYXBlcz1KU09OLnN0cmluZ2lmeSh0aGlzLmluZ3JlZGllbnRzLnNoYXBlcyksdGhpcy5pbmdyZWRpZW50cy5zaGFwZXM9e30sdGhpcy5pbmdyZWRpZW50cy5jb2xvcnMuYmFja2dyb3VuZFJHQkEhPT1lJiYodGhpcy5pbmdyZWRpZW50cy5jb2xvcnMuYmFja2dyb3VuZFJHQkE9ZSx0aGlzLmluZ3JlZGllbnRzLmNvbG9ycy5iYWNrZ3JvdW5kPXRoaXMuX3JnYkNvbG9yTmFtZShlKSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX2FjY3NDYW52YXNDb2xvcnM9ZnVuY3Rpb24oZSx0KXtcImZpbGxcIj09PWU/dGhpcy5pbmdyZWRpZW50cy5jb2xvcnMuZmlsbFJHQkEhPT10JiYodGhpcy5pbmdyZWRpZW50cy5jb2xvcnMuZmlsbFJHQkE9dCx0aGlzLmluZ3JlZGllbnRzLmNvbG9ycy5maWxsPXRoaXMuX3JnYkNvbG9yTmFtZSh0KSk6XCJzdHJva2VcIj09PWUmJnRoaXMuaW5ncmVkaWVudHMuY29sb3JzLnN0cm9rZVJHQkEhPT10JiYodGhpcy5pbmdyZWRpZW50cy5jb2xvcnMuc3Ryb2tlUkdCQT10LHRoaXMuaW5ncmVkaWVudHMuY29sb3JzLnN0cm9rZT10aGlzLl9yZ2JDb2xvck5hbWUodCkpfSxuLmRlZmF1bHQucHJvdG90eXBlLl9hY2NzT3V0cHV0PWZ1bmN0aW9uKGUsdCl7XCJlbGxpcHNlXCI9PT1lJiZ0WzJdPT09dFszXT9lPVwiY2lyY2xlXCI6XCJyZWN0YW5nbGVcIj09PWUmJnRbMl09PT10WzNdJiYoZT1cInNxdWFyZVwiKTt2YXIgcj17fSxpPSEwLG49ZnVuY3Rpb24oZSx0KXt2YXIgcixpO2k9XCJyZWN0YW5nbGVcIj09PWV8fFwiZWxsaXBzZVwiPT09ZXx8XCJhcmNcIj09PWV8fFwiY2lyY2xlXCI9PT1lfHxcInNxdWFyZVwiPT09ZT8ocj1NYXRoLnJvdW5kKHRbMF0rdFsyXS8yKSxNYXRoLnJvdW5kKHRbMV0rdFszXS8yKSk6XCJ0cmlhbmdsZVwiPT09ZT8ocj0odFswXSt0WzJdK3RbNF0pLzMsKHRbMV0rdFszXSt0WzVdKS8zKTpcInF1YWRyaWxhdGVyYWxcIj09PWU/KHI9KHRbMF0rdFsyXSt0WzRdK3RbNl0pLzQsKHRbMV0rdFszXSt0WzVdK3RbN10pLzQpOlwibGluZVwiPT09ZT8ocj0odFswXSt0WzJdKS8yLCh0WzFdK3RbM10pLzIpOihyPXRbMF0sdFsxXSk7cmV0dXJuW3IsaV19KGUsdCk7aWYoXCJsaW5lXCI9PT1lKXtyLmNvbG9yPXRoaXMuaW5ncmVkaWVudHMuY29sb3JzLnN0cm9rZSxyLmxlbmd0aD1NYXRoLnJvdW5kKHRoaXMuZGlzdCh0WzBdLHRbMV0sdFsyXSx0WzNdKSk7dmFyIGE9bChbdFswXSxbMV1dLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLG89bChbdFsyXSxbM11dLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO3IubG9jPXUobix0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSxyLnBvcz1hPT09bz9cImF0IFwiLmNvbmNhdChhKTpcImZyb20gXCIuY29uY2F0KGEsXCIgdG8gXCIpLmNvbmNhdChvKX1lbHNlXCJwb2ludFwiPT09ZT9yLmNvbG9yPXRoaXMuaW5ncmVkaWVudHMuY29sb3JzLnN0cm9rZTooci5jb2xvcj10aGlzLmluZ3JlZGllbnRzLmNvbG9ycy5maWxsLHIuYXJlYT1mdW5jdGlvbihlLHQscixpKXt2YXIgbj0wO2lmKFwiYXJjXCI9PT1lKXt2YXIgYT0oKHRbNV0tdFs0XSklKDIqTWF0aC5QSSkrMipNYXRoLlBJKSUoMipNYXRoLlBJKTtpZihuPWEqdFsyXSp0WzNdLzgsXCJvcGVuXCI9PT10WzZdfHxcImNob3JkXCI9PT10WzZdKXt2YXIgbz10WzBdLHM9dFsxXSxsPXRbMF0rdFsyXS8yKk1hdGguY29zKHRbNF0pLnRvRml4ZWQoMiksdT10WzFdK3RbM10vMipNYXRoLnNpbih0WzRdKS50b0ZpeGVkKDIpLGg9dFswXSt0WzJdLzIqTWF0aC5jb3ModFs1XSkudG9GaXhlZCgyKSxjPXRbMV0rdFszXS8yKk1hdGguc2luKHRbNV0pLnRvRml4ZWQoMiksZj1NYXRoLmFicyhvKih1LWMpK2wqKGMtcykraCoocy11KSkvMjthPk1hdGguUEk/bis9ZjpuLT1mfX1lbHNlXCJlbGxpcHNlXCI9PT1lfHxcImNpcmNsZVwiPT09ZT9uPTMuMTQqdFsyXS8yKnRbM10vMjpcImxpbmVcIj09PWU/bj0wOlwicG9pbnRcIj09PWU/bj0wOlwicXVhZHJpbGF0ZXJhbFwiPT09ZT9uPU1hdGguYWJzKCh0WzZdK3RbMF0pKih0WzddLXRbMV0pKyh0WzBdK3RbMl0pKih0WzFdLXRbM10pKyh0WzJdK3RbNF0pKih0WzNdLXRbNV0pKyh0WzRdK3RbNl0pKih0WzVdLXRbN10pKS8yOlwicmVjdGFuZ2xlXCI9PT1lfHxcInNxdWFyZVwiPT09ZT9uPXRbMl0qdFszXTpcInRyaWFuZ2xlXCI9PT1lJiYobj1NYXRoLmFicyh0WzBdKih0WzNdLXRbNV0pK3RbMl0qKHRbNV0tdFsxXSkrdFs0XSoodFsxXS10WzNdKSkvMik7cmV0dXJuIE1hdGgucm91bmQoMTAwKm4vKHIqaSkpfShlLHQsdGhpcy53aWR0aCx0aGlzLmhlaWdodCkpLHIucG9zPWwobix0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSxyLmxvYz11KG4sdGhpcy53aWR0aCx0aGlzLmhlaWdodCk7aWYodGhpcy5pbmdyZWRpZW50cy5zaGFwZXNbZV0pe2lmKHRoaXMuaW5ncmVkaWVudHMuc2hhcGVzW2VdIT09W3JdKXtmb3IodmFyIHMgaW4gdGhpcy5pbmdyZWRpZW50cy5zaGFwZXNbZV0pSlNPTi5zdHJpbmdpZnkodGhpcy5pbmdyZWRpZW50cy5zaGFwZXNbZV1bc10pPT09SlNPTi5zdHJpbmdpZnkocikmJihpPSExKTshMD09PWkmJnRoaXMuaW5ncmVkaWVudHMuc2hhcGVzW2VdLnB1c2gocil9fWVsc2UgdGhpcy5pbmdyZWRpZW50cy5zaGFwZXNbZV09W3JdfTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sMjA6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O24uZGVmYXVsdC5wcm90b3R5cGUuX3VwZGF0ZVRleHRPdXRwdXQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5kdW1teURPTS5xdWVyeVNlbGVjdG9yKFwiI1wiLmNvbmNhdChlLFwiX3N1bW1hcnlcIikpKXt2YXIgdD10aGlzLl9hY2Nlc3NpYmxlT3V0cHV0c1tlXSxyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9XCJcIixpPTA7Zm9yKHZhciBuIGluIHQpZm9yKHZhciBhIGluIHRbbl0pe3ZhciBvPSc8bGk+PGEgaHJlZj1cIiMnLmNvbmNhdChlLFwic2hhcGVcIikuY29uY2F0KGksJ1wiPicpLmNvbmNhdCh0W25dW2FdLmNvbG9yLFwiIFwiKS5jb25jYXQobixcIjwvYT5cIik7XCJsaW5lXCI9PT1uP28rPVwiLCBcIi5jb25jYXQodFtuXVthXS5wb3MsXCIsIFwiKS5jb25jYXQodFtuXVthXS5sZW5ndGgsXCIgcGl4ZWxzIGxvbmcuPC9saT5cIik6KG8rPVwiLCBhdCBcIi5jb25jYXQodFtuXVthXS5wb3MpLFwicG9pbnRcIiE9PW4mJihvKz1cIiwgY292ZXJpbmcgXCIuY29uY2F0KHRbbl1bYV0uYXJlYSxcIiUgb2YgdGhlIGNhbnZhc1wiKSksbys9XCIuPC9saT5cIikscis9byxpKyt9cmV0dXJue251bVNoYXBlczppLGxpc3RTaGFwZXM6cn19KGUsdGhpcy5pbmdyZWRpZW50cy5zaGFwZXMpLGk9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG49XCJZb3VyIG91dHB1dCBpcyBhLCBcIi5jb25jYXQocixcIiBieSBcIikuY29uY2F0KGksXCIgcGl4ZWxzLCBcIikuY29uY2F0KHQsXCIgY2FudmFzIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZ1wiKTtuPTE9PT1lP1wiXCIuY29uY2F0KG4sXCIgc2hhcGU6XCIpOlwiXCIuY29uY2F0KG4sXCIgXCIpLmNvbmNhdChlLFwiIHNoYXBlczpcIik7cmV0dXJuIG59KHIubnVtU2hhcGVzLHRoaXMuaW5ncmVkaWVudHMuY29sb3JzLmJhY2tncm91bmQsdGhpcy53aWR0aCx0aGlzLmhlaWdodCksbj1mdW5jdGlvbihlLHQpe3ZhciByPVwiXCIsaT0wO2Zvcih2YXIgbiBpbiB0KWZvcih2YXIgYSBpbiB0W25dKXt2YXIgbz0nPHRyIGlkPVwiJy5jb25jYXQoZSxcInNoYXBlXCIpLmNvbmNhdChpLCdcIj48dGg+JykuY29uY2F0KHRbbl1bYV0uY29sb3IsXCIgXCIpLmNvbmNhdChuLFwiPC90aD5cIik7XCJsaW5lXCI9PT1uP28rPVwiPHRkPmxvY2F0aW9uID0gXCIuY29uY2F0KHRbbl1bYV0ucG9zLFwiPC90ZD48dGQ+bGVuZ3RoID0gXCIpLmNvbmNhdCh0W25dW2FdLmxlbmd0aCxcIiBwaXhlbHM8L3RkPjwvdHI+XCIpOihvKz1cIjx0ZD5sb2NhdGlvbiA9IFwiLmNvbmNhdCh0W25dW2FdLnBvcyxcIjwvdGQ+XCIpLFwicG9pbnRcIiE9PW4mJihvKz1cIjx0ZD4gYXJlYSA9IFwiLmNvbmNhdCh0W25dW2FdLmFyZWEsXCIlPC90ZD5cIikpLG8rPVwiPC90cj5cIikscis9byxpKyt9cmV0dXJuIHJ9KGUsdGhpcy5pbmdyZWRpZW50cy5zaGFwZXMpO2khPT10LnN1bW1hcnkuaW5uZXJIVE1MJiYodC5zdW1tYXJ5LmlubmVySFRNTD1pKSxyLmxpc3RTaGFwZXMhPT10Lmxpc3QuaW5uZXJIVE1MJiYodC5saXN0LmlubmVySFRNTD1yLmxpc3RTaGFwZXMpLG4hPT10LnNoYXBlRGV0YWlscy5pbm5lckhUTUwmJih0LnNoYXBlRGV0YWlscy5pbm5lckhUTUw9biksdGhpcy5fYWNjZXNzaWJsZU91dHB1dHNbZV09dH19O3ZhciBhPW4uZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSwyMTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpLG49KGk9ZShcIi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07ZShcIi4vY29yZS9jb25zdGFudHNcIiksZShcIi4vY29yZS9lbnZpcm9ubWVudFwiKSxlKFwiLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9zdGFja3RyYWNlXCIpLGUoXCIuL2NvcmUvZnJpZW5kbHlfZXJyb3JzL3ZhbGlkYXRlX3BhcmFtc1wiKSxlKFwiLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiKSxlKFwiLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9mZXNfY29yZVwiKSxlKFwiLi9jb3JlL2hlbHBlcnNcIiksZShcIi4vY29yZS9sZWdhY3lcIiksZShcIi4vY29yZS9wcmVsb2FkXCIpLGUoXCIuL2NvcmUvcDUuRWxlbWVudFwiKSxlKFwiLi9jb3JlL3A1LkdyYXBoaWNzXCIpLGUoXCIuL2NvcmUvcDUuUmVuZGVyZXJcIiksZShcIi4vY29yZS9wNS5SZW5kZXJlcjJEXCIpLGUoXCIuL2NvcmUvcmVuZGVyaW5nXCIpLGUoXCIuL2NvcmUvc2hpbVwiKSxlKFwiLi9jb3JlL3N0cnVjdHVyZVwiKSxlKFwiLi9jb3JlL3RyYW5zZm9ybVwiKSxlKFwiLi9jb3JlL3NoYXBlLzJkX3ByaW1pdGl2ZXNcIiksZShcIi4vY29yZS9zaGFwZS9hdHRyaWJ1dGVzXCIpLGUoXCIuL2NvcmUvc2hhcGUvY3VydmVzXCIpLGUoXCIuL2NvcmUvc2hhcGUvdmVydGV4XCIpLGUoXCIuL2FjY2Vzc2liaWxpdHkvb3V0cHV0c1wiKSxlKFwiLi9hY2Nlc3NpYmlsaXR5L3RleHRPdXRwdXRcIiksZShcIi4vYWNjZXNzaWJpbGl0eS9ncmlkT3V0cHV0XCIpLGUoXCIuL2FjY2Vzc2liaWxpdHkvY29sb3JfbmFtZXJcIiksZShcIi4vY29sb3IvY29sb3JfY29udmVyc2lvblwiKSxlKFwiLi9jb2xvci9jcmVhdGluZ19yZWFkaW5nXCIpLGUoXCIuL2NvbG9yL3A1LkNvbG9yXCIpLGUoXCIuL2NvbG9yL3NldHRpbmdcIiksZShcIi4vZGF0YS9wNS5UeXBlZERpY3RcIiksZShcIi4vZGF0YS9sb2NhbF9zdG9yYWdlLmpzXCIpLGUoXCIuL2RvbS9kb21cIiksZShcIi4vYWNjZXNzaWJpbGl0eS9kZXNjcmliZVwiKSxlKFwiLi9ldmVudHMvYWNjZWxlcmF0aW9uXCIpLGUoXCIuL2V2ZW50cy9rZXlib2FyZFwiKSxlKFwiLi9ldmVudHMvbW91c2VcIiksZShcIi4vZXZlbnRzL3RvdWNoXCIpLGUoXCIuL2ltYWdlL2ZpbHRlcnNcIiksZShcIi4vaW1hZ2UvaW1hZ2VcIiksZShcIi4vaW1hZ2UvbG9hZGluZ19kaXNwbGF5aW5nXCIpLGUoXCIuL2ltYWdlL3A1LkltYWdlXCIpLGUoXCIuL2ltYWdlL3BpeGVsc1wiKSxlKFwiLi9pby9maWxlc1wiKSxlKFwiLi9pby9wNS5UYWJsZVwiKSxlKFwiLi9pby9wNS5UYWJsZVJvd1wiKSxlKFwiLi9pby9wNS5YTUxcIiksZShcIi4vbWF0aC9jYWxjdWxhdGlvblwiKSxlKFwiLi9tYXRoL21hdGhcIiksZShcIi4vbWF0aC9ub2lzZVwiKSxlKFwiLi9tYXRoL3A1LlZlY3RvclwiKSxlKFwiLi9tYXRoL3JhbmRvbVwiKSxlKFwiLi9tYXRoL3RyaWdvbm9tZXRyeVwiKSxlKFwiLi90eXBvZ3JhcGh5L2F0dHJpYnV0ZXNcIiksZShcIi4vdHlwb2dyYXBoeS9sb2FkaW5nX2Rpc3BsYXlpbmdcIiksZShcIi4vdHlwb2dyYXBoeS9wNS5Gb250XCIpLGUoXCIuL3V0aWxpdGllcy9hcnJheV9mdW5jdGlvbnNcIiksZShcIi4vdXRpbGl0aWVzL2NvbnZlcnNpb25cIiksZShcIi4vdXRpbGl0aWVzL3N0cmluZ19mdW5jdGlvbnNcIiksZShcIi4vdXRpbGl0aWVzL3RpbWVfZGF0ZVwiKSxlKFwiLi93ZWJnbC8zZF9wcmltaXRpdmVzXCIpLGUoXCIuL3dlYmdsL2ludGVyYWN0aW9uXCIpLGUoXCIuL3dlYmdsL2xpZ2h0XCIpLGUoXCIuL3dlYmdsL2xvYWRpbmdcIiksZShcIi4vd2ViZ2wvbWF0ZXJpYWxcIiksZShcIi4vd2ViZ2wvcDUuQ2FtZXJhXCIpLGUoXCIuL3dlYmdsL3A1Lkdlb21ldHJ5XCIpLGUoXCIuL3dlYmdsL3A1Lk1hdHJpeFwiKSxlKFwiLi93ZWJnbC9wNS5SZW5kZXJlckdMLkltbWVkaWF0ZVwiKSxlKFwiLi93ZWJnbC9wNS5SZW5kZXJlckdMXCIpLGUoXCIuL3dlYmdsL3A1LlJlbmRlcmVyR0wuUmV0YWluZWRcIiksZShcIi4vd2ViZ2wvcDUuU2hhZGVyXCIpLGUoXCIuL3dlYmdsL3A1LlJlbmRlckJ1ZmZlclwiKSxlKFwiLi93ZWJnbC9wNS5UZXh0dXJlXCIpLGUoXCIuL3dlYmdsL3RleHRcIiksZShcIi4vY29yZS9pbml0XCIpLHQuZXhwb3J0cz1uLmRlZmF1bHR9LHtcIi4vYWNjZXNzaWJpbGl0eS9jb2xvcl9uYW1lclwiOjE2LFwiLi9hY2Nlc3NpYmlsaXR5L2Rlc2NyaWJlXCI6MTcsXCIuL2FjY2Vzc2liaWxpdHkvZ3JpZE91dHB1dFwiOjE4LFwiLi9hY2Nlc3NpYmlsaXR5L291dHB1dHNcIjoxOSxcIi4vYWNjZXNzaWJpbGl0eS90ZXh0T3V0cHV0XCI6MjAsXCIuL2NvbG9yL2NvbG9yX2NvbnZlcnNpb25cIjoyMixcIi4vY29sb3IvY3JlYXRpbmdfcmVhZGluZ1wiOjIzLFwiLi9jb2xvci9wNS5Db2xvclwiOjI0LFwiLi9jb2xvci9zZXR0aW5nXCI6MjUsXCIuL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuL2NvcmUvZW52aXJvbm1lbnRcIjoyNyxcIi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIjoyOCxcIi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmlsZV9lcnJvcnNcIjoyOSxcIi4vY29yZS9mcmllbmRseV9lcnJvcnMvc3RhY2t0cmFjZVwiOjMwLFwiLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy92YWxpZGF0ZV9wYXJhbXNcIjozMSxcIi4vY29yZS9oZWxwZXJzXCI6MzIsXCIuL2NvcmUvaW5pdFwiOjMzLFwiLi9jb3JlL2xlZ2FjeVwiOjM1LFwiLi9jb3JlL21haW5cIjozNixcIi4vY29yZS9wNS5FbGVtZW50XCI6MzcsXCIuL2NvcmUvcDUuR3JhcGhpY3NcIjozOCxcIi4vY29yZS9wNS5SZW5kZXJlclwiOjM5LFwiLi9jb3JlL3A1LlJlbmRlcmVyMkRcIjo0MCxcIi4vY29yZS9wcmVsb2FkXCI6NDEsXCIuL2NvcmUvcmVuZGVyaW5nXCI6NDIsXCIuL2NvcmUvc2hhcGUvMmRfcHJpbWl0aXZlc1wiOjQzLFwiLi9jb3JlL3NoYXBlL2F0dHJpYnV0ZXNcIjo0NCxcIi4vY29yZS9zaGFwZS9jdXJ2ZXNcIjo0NSxcIi4vY29yZS9zaGFwZS92ZXJ0ZXhcIjo0NixcIi4vY29yZS9zaGltXCI6NDcsXCIuL2NvcmUvc3RydWN0dXJlXCI6NDgsXCIuL2NvcmUvdHJhbnNmb3JtXCI6NDksXCIuL2RhdGEvbG9jYWxfc3RvcmFnZS5qc1wiOjUwLFwiLi9kYXRhL3A1LlR5cGVkRGljdFwiOjUxLFwiLi9kb20vZG9tXCI6NTIsXCIuL2V2ZW50cy9hY2NlbGVyYXRpb25cIjo1MyxcIi4vZXZlbnRzL2tleWJvYXJkXCI6NTQsXCIuL2V2ZW50cy9tb3VzZVwiOjU1LFwiLi9ldmVudHMvdG91Y2hcIjo1NixcIi4vaW1hZ2UvZmlsdGVyc1wiOjU3LFwiLi9pbWFnZS9pbWFnZVwiOjU4LFwiLi9pbWFnZS9sb2FkaW5nX2Rpc3BsYXlpbmdcIjo1OSxcIi4vaW1hZ2UvcDUuSW1hZ2VcIjo2MCxcIi4vaW1hZ2UvcGl4ZWxzXCI6NjEsXCIuL2lvL2ZpbGVzXCI6NjIsXCIuL2lvL3A1LlRhYmxlXCI6NjMsXCIuL2lvL3A1LlRhYmxlUm93XCI6NjQsXCIuL2lvL3A1LlhNTFwiOjY1LFwiLi9tYXRoL2NhbGN1bGF0aW9uXCI6NjYsXCIuL21hdGgvbWF0aFwiOjY3LFwiLi9tYXRoL25vaXNlXCI6NjgsXCIuL21hdGgvcDUuVmVjdG9yXCI6NjksXCIuL21hdGgvcmFuZG9tXCI6NzAsXCIuL21hdGgvdHJpZ29ub21ldHJ5XCI6NzEsXCIuL3R5cG9ncmFwaHkvYXR0cmlidXRlc1wiOjcyLFwiLi90eXBvZ3JhcGh5L2xvYWRpbmdfZGlzcGxheWluZ1wiOjczLFwiLi90eXBvZ3JhcGh5L3A1LkZvbnRcIjo3NCxcIi4vdXRpbGl0aWVzL2FycmF5X2Z1bmN0aW9uc1wiOjc1LFwiLi91dGlsaXRpZXMvY29udmVyc2lvblwiOjc2LFwiLi91dGlsaXRpZXMvc3RyaW5nX2Z1bmN0aW9uc1wiOjc3LFwiLi91dGlsaXRpZXMvdGltZV9kYXRlXCI6NzgsXCIuL3dlYmdsLzNkX3ByaW1pdGl2ZXNcIjo3OSxcIi4vd2ViZ2wvaW50ZXJhY3Rpb25cIjo4MCxcIi4vd2ViZ2wvbGlnaHRcIjo4MSxcIi4vd2ViZ2wvbG9hZGluZ1wiOjgyLFwiLi93ZWJnbC9tYXRlcmlhbFwiOjgzLFwiLi93ZWJnbC9wNS5DYW1lcmFcIjo4NCxcIi4vd2ViZ2wvcDUuR2VvbWV0cnlcIjo4NSxcIi4vd2ViZ2wvcDUuTWF0cml4XCI6ODYsXCIuL3dlYmdsL3A1LlJlbmRlckJ1ZmZlclwiOjg3LFwiLi93ZWJnbC9wNS5SZW5kZXJlckdMXCI6OTAsXCIuL3dlYmdsL3A1LlJlbmRlcmVyR0wuSW1tZWRpYXRlXCI6ODgsXCIuL3dlYmdsL3A1LlJlbmRlcmVyR0wuUmV0YWluZWRcIjo4OSxcIi4vd2ViZ2wvcDUuU2hhZGVyXCI6OTEsXCIuL3dlYmdsL3A1LlRleHR1cmVcIjo5MixcIi4vd2ViZ2wvdGV4dFwiOjkzfV0sMjI6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O24uZGVmYXVsdC5Db2xvckNvbnZlcnNpb249e30sbi5kZWZhdWx0LkNvbG9yQ29udmVyc2lvbi5faHNiYVRvSFNMQT1mdW5jdGlvbihlKXt2YXIgdD1lWzBdLHI9ZVsxXSxpPWVbMl0sbj0oMi1yKSppLzI7cmV0dXJuIDAhPW4mJigxPT1uP3I9MDpuPC41P3IvPTItcjpyPXIqaS8oMi0yKm4pKSxbdCxyLG4sZVszXV19LG4uZGVmYXVsdC5Db2xvckNvbnZlcnNpb24uX2hzYmFUb1JHQkE9ZnVuY3Rpb24oZSl7dmFyIHQ9NiplWzBdLHI9ZVsxXSxpPWVbMl0sbj1bXTtpZigwPT09ciluPVtpLGksaSxlWzNdXTtlbHNle3ZhciBhLG8scyxsPU1hdGguZmxvb3IodCksdT1pKigxLXIpLGg9aSooMS1yKih0LWwpKSxjPWkqKDEtciooMStsLXQpKTtzPTE9PT1sPyhhPWgsbz1pLHUpOjI9PT1sPyhhPXUsbz1pLGMpOjM9PT1sPyhhPXUsbz1oLGkpOjQ9PT1sPyhhPWMsbz11LGkpOjU9PT1sPyhhPWksbz11LGgpOihhPWksbz1jLHUpLG49W2EsbyxzLGVbM11dfXJldHVybiBufSxuLmRlZmF1bHQuQ29sb3JDb252ZXJzaW9uLl9oc2xhVG9IU0JBPWZ1bmN0aW9uKGUpe3ZhciB0LHI9ZVswXSxpPWVbMV0sbj1lWzJdO3JldHVybltyLGk9MiooKHQ9bjwuNT8oMStpKSpuOm4raS1uKmkpLW4pL3QsdCxlWzNdXX0sbi5kZWZhdWx0LkNvbG9yQ29udmVyc2lvbi5faHNsYVRvUkdCQT1mdW5jdGlvbihlKXt2YXIgdD02KmVbMF0scj1lWzFdLGk9ZVsyXSxuPVtdO2lmKDA9PT1yKW49W2ksaSxpLGVbM11dO2Vsc2V7dmFyIGEsbz0yKmktKGE9aTwuNT8oMStyKSppOmkrci1pKnIpLHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPDA/ZSs9Njo2PD1lJiYoZS09NiksZTwxP3QrKHItdCkqZTplPDM/cjplPDQ/dCsoci10KSooNC1lKTp0fTtuPVtzKDIrdCxvLGEpLHModCxvLGEpLHModC0yLG8sYSksZVszXV19cmV0dXJuIG59LG4uZGVmYXVsdC5Db2xvckNvbnZlcnNpb24uX3JnYmFUb0hTQkE9ZnVuY3Rpb24oZSl7dmFyIHQscixpPWVbMF0sbj1lWzFdLGE9ZVsyXSxvPU1hdGgubWF4KGksbixhKSxzPW8tTWF0aC5taW4oaSxuLGEpO3JldHVybiAwPT1zP3I9dD0wOihyPXMvbyxpPT09bz90PShuLWEpL3M6bj09PW8/dD0yKyhhLWkpL3M6YT09PW8mJih0PTQrKGktbikvcyksdDwwP3QrPTY6Njw9dCYmKHQtPTYpKSxbdC82LHIsbyxlWzNdXX0sbi5kZWZhdWx0LkNvbG9yQ29udmVyc2lvbi5fcmdiYVRvSFNMQT1mdW5jdGlvbihlKXt2YXIgdCxyLGk9ZVswXSxuPWVbMV0sYT1lWzJdLG89TWF0aC5tYXgoaSxuLGEpLHM9TWF0aC5taW4oaSxuLGEpLGw9bytzLHU9by1zO3JldHVybiAwPT11P3I9dD0wOihyPWw8MT91L2w6dS8oMi1sKSxpPT09bz90PShuLWEpL3U6bj09PW8/dD0yKyhhLWkpL3U6YT09PW8mJih0PTQrKGktbikvdSksdDwwP3QrPTY6Njw9dCYmKHQtPTYpKSxbdC82LHIsbC8yLGVbM11dfTt2YXIgYT1uLmRlZmF1bHQuQ29sb3JDb252ZXJzaW9uO3IuZGVmYXVsdD1hfSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDIzOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxjPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxmPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29yZS9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHMoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9ZShcIi4vcDUuQ29sb3JcIiksZShcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL3ZhbGlkYXRlX3BhcmFtc1wiKSxlKFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmlsZV9lcnJvcnNcIiksZShcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2Zlc19jb3JlXCIpLGMuZGVmYXVsdC5wcm90b3R5cGUuYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiYWxwaGFcIixhcmd1bWVudHMpLHRoaXMuY29sb3IoZSkuX2dldEFscGhhKCl9LGMuZGVmYXVsdC5wcm90b3R5cGUuYmx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJibHVlXCIsYXJndW1lbnRzKSx0aGlzLmNvbG9yKGUpLl9nZXRCbHVlKCl9LGMuZGVmYXVsdC5wcm90b3R5cGUuYnJpZ2h0bmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gYy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJicmlnaHRuZXNzXCIsYXJndW1lbnRzKSx0aGlzLmNvbG9yKGUpLl9nZXRCcmlnaHRuZXNzKCl9LGMuZGVmYXVsdC5wcm90b3R5cGUuY29sb3I9ZnVuY3Rpb24oKXtpZihjLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImNvbG9yXCIsYXJndW1lbnRzKSxhcmd1bWVudHNbMF1pbnN0YW5jZW9mIGMuZGVmYXVsdC5Db2xvcilyZXR1cm4gYXJndW1lbnRzWzBdO3ZhciBlPWFyZ3VtZW50c1swXWluc3RhbmNlb2YgQXJyYXk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gbmV3IGMuZGVmYXVsdC5Db2xvcih0aGlzLGUpfSxjLmRlZmF1bHQucHJvdG90eXBlLmdyZWVuPWZ1bmN0aW9uKGUpe3JldHVybiBjLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImdyZWVuXCIsYXJndW1lbnRzKSx0aGlzLmNvbG9yKGUpLl9nZXRHcmVlbigpfSxjLmRlZmF1bHQucHJvdG90eXBlLmh1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJodWVcIixhcmd1bWVudHMpLHRoaXMuY29sb3IoZSkuX2dldEh1ZSgpfSxjLmRlZmF1bHQucHJvdG90eXBlLmxlcnBDb2xvcj1mdW5jdGlvbihlLHQscil7Yy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJsZXJwQ29sb3JcIixhcmd1bWVudHMpO3ZhciBpLG4sYSxvLHMsbCx1PXRoaXMuX2NvbG9yTW9kZSxoPXRoaXMuX2NvbG9yTWF4ZXM7aWYodT09PWYuUkdCKXM9ZS5sZXZlbHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLzI1NX0pLGw9dC5sZXZlbHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLzI1NX0pO2Vsc2UgaWYodT09PWYuSFNCKWUuX2dldEJyaWdodG5lc3MoKSx0Ll9nZXRCcmlnaHRuZXNzKCkscz1lLmhzYmEsbD10LmhzYmE7ZWxzZXtpZih1IT09Zi5IU0wpdGhyb3cgbmV3IEVycm9yKFwiXCIuY29uY2F0KHUsXCJjYW5ub3QgYmUgdXNlZCBmb3IgaW50ZXJwb2xhdGlvbi5cIikpO2UuX2dldExpZ2h0bmVzcygpLHQuX2dldExpZ2h0bmVzcygpLHM9ZS5oc2xhLGw9dC5oc2xhfXJldHVybiByPU1hdGgubWF4KE1hdGgubWluKHIsMSksMCksdm9pZCAwPT09dGhpcy5sZXJwJiYodGhpcy5sZXJwPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gcioodC1lKStlfSksaT10aGlzLmxlcnAoc1swXSxsWzBdLHIpLG49dGhpcy5sZXJwKHNbMV0sbFsxXSxyKSxhPXRoaXMubGVycChzWzJdLGxbMl0sciksbz10aGlzLmxlcnAoc1szXSxsWzNdLHIpLGkqPWhbdV1bMF0sbio9aFt1XVsxXSxhKj1oW3VdWzJdLG8qPWhbdV1bM10sdGhpcy5jb2xvcihpLG4sYSxvKX0sYy5kZWZhdWx0LnByb3RvdHlwZS5saWdodG5lc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibGlnaHRuZXNzXCIsYXJndW1lbnRzKSx0aGlzLmNvbG9yKGUpLl9nZXRMaWdodG5lc3MoKX0sYy5kZWZhdWx0LnByb3RvdHlwZS5yZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwicmVkXCIsYXJndW1lbnRzKSx0aGlzLmNvbG9yKGUpLl9nZXRSZWQoKX0sYy5kZWZhdWx0LnByb3RvdHlwZS5zYXR1cmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBjLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInNhdHVyYXRpb25cIixhcmd1bWVudHMpLHRoaXMuY29sb3IoZSkuX2dldFNhdHVyYXRpb24oKX07dmFyIG49Yy5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi9jb3JlL2NvbnN0YW50c1wiOjI2LFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIjoyOCxcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2ZpbGVfZXJyb3JzXCI6MjksXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy92YWxpZGF0ZV9wYXJhbXNcIjozMSxcIi4uL2NvcmUvbWFpblwiOjM2LFwiLi9wNS5Db2xvclwiOjI0fV0sMjQ6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBjPWkoZShcIi4uL2NvcmUvbWFpblwiKSksZj1mdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1vKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXMoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBuIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikpe3ZhciBhPWk/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbixhKTpyW25dPWVbbl19ci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKTtyZXR1cm4gcn0oZShcIi4uL2NvcmUvY29uc3RhbnRzXCIpKSxkPWkoZShcIi4vY29sb3JfY29udmVyc2lvblwiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1jLmRlZmF1bHQuQ29sb3I9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLl9zdG9yZU1vZGVBbmRNYXhlcyhlLl9jb2xvck1vZGUsZS5fY29sb3JNYXhlcyksdGhpcy5tb2RlIT09Zi5SR0ImJnRoaXMubW9kZSE9PWYuSFNMJiZ0aGlzLm1vZGUhPT1mLkhTQil0aHJvdyBuZXcgRXJyb3IoXCJcIi5jb25jYXQodGhpcy5tb2RlLFwiIGlzIGFuIGludmFsaWQgY29sb3JNb2RlLlwiKSk7cmV0dXJuIHRoaXMuX2FycmF5PWMuZGVmYXVsdC5Db2xvci5fcGFyc2VJbnB1dHMuYXBwbHkodGhpcyx0KSx0aGlzLl9jYWxjdWxhdGVMZXZlbHMoKSx0aGlzfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubGV2ZWxzLHI9dGhpcy5fYXJyYXksaT1yWzNdO3N3aXRjaChlKXtjYXNlXCIjcnJnZ2JiXCI6cmV0dXJuXCIjXCIuY29uY2F0KHRbMF08MTY/XCIwXCIuY29uY2F0KHRbMF0udG9TdHJpbmcoMTYpKTp0WzBdLnRvU3RyaW5nKDE2KSx0WzFdPDE2P1wiMFwiLmNvbmNhdCh0WzFdLnRvU3RyaW5nKDE2KSk6dFsxXS50b1N0cmluZygxNiksdFsyXTwxNj9cIjBcIi5jb25jYXQodFsyXS50b1N0cmluZygxNikpOnRbMl0udG9TdHJpbmcoMTYpKTtjYXNlXCIjcnJnZ2JiYWFcIjpyZXR1cm5cIiNcIi5jb25jYXQodFswXTwxNj9cIjBcIi5jb25jYXQodFswXS50b1N0cmluZygxNikpOnRbMF0udG9TdHJpbmcoMTYpLHRbMV08MTY/XCIwXCIuY29uY2F0KHRbMV0udG9TdHJpbmcoMTYpKTp0WzFdLnRvU3RyaW5nKDE2KSx0WzJdPDE2P1wiMFwiLmNvbmNhdCh0WzJdLnRvU3RyaW5nKDE2KSk6dFsyXS50b1N0cmluZygxNiksdFszXTwxNj9cIjBcIi5jb25jYXQodFsyXS50b1N0cmluZygxNikpOnRbM10udG9TdHJpbmcoMTYpKTtjYXNlXCIjcmdiXCI6cmV0dXJuXCIjXCIuY29uY2F0KE1hdGgucm91bmQoMTUqclswXSkudG9TdHJpbmcoMTYpLE1hdGgucm91bmQoMTUqclsxXSkudG9TdHJpbmcoMTYpLE1hdGgucm91bmQoMTUqclsyXSkudG9TdHJpbmcoMTYpKTtjYXNlXCIjcmdiYVwiOnJldHVyblwiI1wiLmNvbmNhdChNYXRoLnJvdW5kKDE1KnJbMF0pLnRvU3RyaW5nKDE2KSxNYXRoLnJvdW5kKDE1KnJbMV0pLnRvU3RyaW5nKDE2KSxNYXRoLnJvdW5kKDE1KnJbMl0pLnRvU3RyaW5nKDE2KSxNYXRoLnJvdW5kKDE1KnJbM10pLnRvU3RyaW5nKDE2KSk7Y2FzZVwicmdiXCI6cmV0dXJuXCJyZ2IoXCIuY29uY2F0KHRbMF0sXCIsIFwiLHRbMV0sXCIsIFwiLHRbMl0sXCIpXCIpO2Nhc2VcInJnYiVcIjpyZXR1cm5cInJnYihcIi5jb25jYXQoKDEwMCpyWzBdKS50b1ByZWNpc2lvbigzKSxcIiUsIFwiLCgxMDAqclsxXSkudG9QcmVjaXNpb24oMyksXCIlLCBcIiwoMTAwKnJbMl0pLnRvUHJlY2lzaW9uKDMpLFwiJSlcIik7Y2FzZVwicmdiYSVcIjpyZXR1cm5cInJnYmEoXCIuY29uY2F0KCgxMDAqclswXSkudG9QcmVjaXNpb24oMyksXCIlLCBcIiwoMTAwKnJbMV0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCpyWzJdKS50b1ByZWNpc2lvbigzKSxcIiUsIFwiLCgxMDAqclszXSkudG9QcmVjaXNpb24oMyksXCIlKVwiKTtjYXNlXCJoc2JcIjpjYXNlXCJoc3ZcIjpyZXR1cm4gdGhpcy5oc2JhfHwodGhpcy5oc2JhPWQuZGVmYXVsdC5fcmdiYVRvSFNCQSh0aGlzLl9hcnJheSkpLFwiaHNiKFwiLmNvbmNhdCh0aGlzLmhzYmFbMF0qdGhpcy5tYXhlc1tmLkhTQl1bMF0sXCIsIFwiLHRoaXMuaHNiYVsxXSp0aGlzLm1heGVzW2YuSFNCXVsxXSxcIiwgXCIsdGhpcy5oc2JhWzJdKnRoaXMubWF4ZXNbZi5IU0JdWzJdLFwiKVwiKTtjYXNlXCJoc2IlXCI6Y2FzZVwiaHN2JVwiOnJldHVybiB0aGlzLmhzYmF8fCh0aGlzLmhzYmE9ZC5kZWZhdWx0Ll9yZ2JhVG9IU0JBKHRoaXMuX2FycmF5KSksXCJoc2IoXCIuY29uY2F0KCgxMDAqdGhpcy5oc2JhWzBdKS50b1ByZWNpc2lvbigzKSxcIiUsIFwiLCgxMDAqdGhpcy5oc2JhWzFdKS50b1ByZWNpc2lvbigzKSxcIiUsIFwiLCgxMDAqdGhpcy5oc2JhWzJdKS50b1ByZWNpc2lvbigzKSxcIiUpXCIpO2Nhc2VcImhzYmFcIjpjYXNlXCJoc3ZhXCI6cmV0dXJuIHRoaXMuaHNiYXx8KHRoaXMuaHNiYT1kLmRlZmF1bHQuX3JnYmFUb0hTQkEodGhpcy5fYXJyYXkpKSxcImhzYmEoXCIuY29uY2F0KHRoaXMuaHNiYVswXSp0aGlzLm1heGVzW2YuSFNCXVswXSxcIiwgXCIsdGhpcy5oc2JhWzFdKnRoaXMubWF4ZXNbZi5IU0JdWzFdLFwiLCBcIix0aGlzLmhzYmFbMl0qdGhpcy5tYXhlc1tmLkhTQl1bMl0sXCIsIFwiLGksXCIpXCIpO2Nhc2VcImhzYmElXCI6Y2FzZVwiaHN2YSVcIjpyZXR1cm4gdGhpcy5oc2JhfHwodGhpcy5oc2JhPWQuZGVmYXVsdC5fcmdiYVRvSFNCQSh0aGlzLl9hcnJheSkpLFwiaHNiYShcIi5jb25jYXQoKDEwMCp0aGlzLmhzYmFbMF0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCp0aGlzLmhzYmFbMV0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCp0aGlzLmhzYmFbMl0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCppKS50b1ByZWNpc2lvbigzKSxcIiUpXCIpO2Nhc2VcImhzbFwiOnJldHVybiB0aGlzLmhzbGF8fCh0aGlzLmhzbGE9ZC5kZWZhdWx0Ll9yZ2JhVG9IU0xBKHRoaXMuX2FycmF5KSksXCJoc2woXCIuY29uY2F0KHRoaXMuaHNsYVswXSp0aGlzLm1heGVzW2YuSFNMXVswXSxcIiwgXCIsdGhpcy5oc2xhWzFdKnRoaXMubWF4ZXNbZi5IU0xdWzFdLFwiLCBcIix0aGlzLmhzbGFbMl0qdGhpcy5tYXhlc1tmLkhTTF1bMl0sXCIpXCIpO2Nhc2VcImhzbCVcIjpyZXR1cm4gdGhpcy5oc2xhfHwodGhpcy5oc2xhPWQuZGVmYXVsdC5fcmdiYVRvSFNMQSh0aGlzLl9hcnJheSkpLFwiaHNsKFwiLmNvbmNhdCgoMTAwKnRoaXMuaHNsYVswXSkudG9QcmVjaXNpb24oMyksXCIlLCBcIiwoMTAwKnRoaXMuaHNsYVsxXSkudG9QcmVjaXNpb24oMyksXCIlLCBcIiwoMTAwKnRoaXMuaHNsYVsyXSkudG9QcmVjaXNpb24oMyksXCIlKVwiKTtjYXNlXCJoc2xhXCI6cmV0dXJuIHRoaXMuaHNsYXx8KHRoaXMuaHNsYT1kLmRlZmF1bHQuX3JnYmFUb0hTTEEodGhpcy5fYXJyYXkpKSxcImhzbGEoXCIuY29uY2F0KHRoaXMuaHNsYVswXSp0aGlzLm1heGVzW2YuSFNMXVswXSxcIiwgXCIsdGhpcy5oc2xhWzFdKnRoaXMubWF4ZXNbZi5IU0xdWzFdLFwiLCBcIix0aGlzLmhzbGFbMl0qdGhpcy5tYXhlc1tmLkhTTF1bMl0sXCIsIFwiLGksXCIpXCIpO2Nhc2VcImhzbGElXCI6cmV0dXJuIHRoaXMuaHNsYXx8KHRoaXMuaHNsYT1kLmRlZmF1bHQuX3JnYmFUb0hTTEEodGhpcy5fYXJyYXkpKSxcImhzbChcIi5jb25jYXQoKDEwMCp0aGlzLmhzbGFbMF0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCp0aGlzLmhzbGFbMV0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCp0aGlzLmhzbGFbMl0pLnRvUHJlY2lzaW9uKDMpLFwiJSwgXCIsKDEwMCppKS50b1ByZWNpc2lvbigzKSxcIiUpXCIpO2Nhc2VcInJnYmFcIjpkZWZhdWx0OnJldHVyblwicmdiYShcIi5jb25jYXQodFswXSxcIixcIix0WzFdLFwiLFwiLHRbMl0sXCIsXCIsaSxcIilcIil9fSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLnNldFJlZD1mdW5jdGlvbihlKXt0aGlzLl9hcnJheVswXT1lL3RoaXMubWF4ZXNbZi5SR0JdWzBdLHRoaXMuX2NhbGN1bGF0ZUxldmVscygpfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLnNldEdyZWVuPWZ1bmN0aW9uKGUpe3RoaXMuX2FycmF5WzFdPWUvdGhpcy5tYXhlc1tmLlJHQl1bMV0sdGhpcy5fY2FsY3VsYXRlTGV2ZWxzKCl9LGMuZGVmYXVsdC5Db2xvci5wcm90b3R5cGUuc2V0Qmx1ZT1mdW5jdGlvbihlKXt0aGlzLl9hcnJheVsyXT1lL3RoaXMubWF4ZXNbZi5SR0JdWzJdLHRoaXMuX2NhbGN1bGF0ZUxldmVscygpfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLnNldEFscGhhPWZ1bmN0aW9uKGUpe3RoaXMuX2FycmF5WzNdPWUvdGhpcy5tYXhlc1t0aGlzLm1vZGVdWzNdLHRoaXMuX2NhbGN1bGF0ZUxldmVscygpfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLl9jYWxjdWxhdGVMZXZlbHM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5fYXJyYXksdD10aGlzLmxldmVscz1uZXcgQXJyYXkoZS5sZW5ndGgpLHI9ZS5sZW5ndGgtMTswPD1yOy0tcil0W3JdPU1hdGgucm91bmQoMjU1KmVbcl0pfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLl9nZXRBbHBoYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnJheVszXSp0aGlzLm1heGVzW3RoaXMubW9kZV1bM119LGMuZGVmYXVsdC5Db2xvci5wcm90b3R5cGUuX3N0b3JlTW9kZUFuZE1heGVzPWZ1bmN0aW9uKGUsdCl7dGhpcy5tb2RlPWUsdGhpcy5tYXhlcz10fSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLl9nZXRNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZX0sYy5kZWZhdWx0LkNvbG9yLnByb3RvdHlwZS5fZ2V0TWF4ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhlc30sYy5kZWZhdWx0LkNvbG9yLnByb3RvdHlwZS5fZ2V0Qmx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnJheVsyXSp0aGlzLm1heGVzW2YuUkdCXVsyXX0sYy5kZWZhdWx0LkNvbG9yLnByb3RvdHlwZS5fZ2V0QnJpZ2h0bmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhzYmF8fCh0aGlzLmhzYmE9ZC5kZWZhdWx0Ll9yZ2JhVG9IU0JBKHRoaXMuX2FycmF5KSksdGhpcy5oc2JhWzJdKnRoaXMubWF4ZXNbZi5IU0JdWzJdfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLl9nZXRHcmVlbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnJheVsxXSp0aGlzLm1heGVzW2YuUkdCXVsxXX0sYy5kZWZhdWx0LkNvbG9yLnByb3RvdHlwZS5fZ2V0SHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZT09PWYuSFNCPyh0aGlzLmhzYmF8fCh0aGlzLmhzYmE9ZC5kZWZhdWx0Ll9yZ2JhVG9IU0JBKHRoaXMuX2FycmF5KSksdGhpcy5oc2JhWzBdKnRoaXMubWF4ZXNbZi5IU0JdWzBdKToodGhpcy5oc2xhfHwodGhpcy5oc2xhPWQuZGVmYXVsdC5fcmdiYVRvSFNMQSh0aGlzLl9hcnJheSkpLHRoaXMuaHNsYVswXSp0aGlzLm1heGVzW2YuSFNMXVswXSl9LGMuZGVmYXVsdC5Db2xvci5wcm90b3R5cGUuX2dldExpZ2h0bmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhzbGF8fCh0aGlzLmhzbGE9ZC5kZWZhdWx0Ll9yZ2JhVG9IU0xBKHRoaXMuX2FycmF5KSksdGhpcy5oc2xhWzJdKnRoaXMubWF4ZXNbZi5IU0xdWzJdfSxjLmRlZmF1bHQuQ29sb3IucHJvdG90eXBlLl9nZXRSZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXJyYXlbMF0qdGhpcy5tYXhlc1tmLlJHQl1bMF19LGMuZGVmYXVsdC5Db2xvci5wcm90b3R5cGUuX2dldFNhdHVyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlPT09Zi5IU0I/KHRoaXMuaHNiYXx8KHRoaXMuaHNiYT1kLmRlZmF1bHQuX3JnYmFUb0hTQkEodGhpcy5fYXJyYXkpKSx0aGlzLmhzYmFbMV0qdGhpcy5tYXhlc1tmLkhTQl1bMV0pOih0aGlzLmhzbGF8fCh0aGlzLmhzbGE9ZC5kZWZhdWx0Ll9yZ2JhVG9IU0xBKHRoaXMuX2FycmF5KSksdGhpcy5oc2xhWzFdKnRoaXMubWF4ZXNbZi5IU0xdWzFdKX07dmFyIHA9e2FsaWNlYmx1ZTpcIiNmMGY4ZmZcIixhbnRpcXVld2hpdGU6XCIjZmFlYmQ3XCIsYXF1YTpcIiMwMGZmZmZcIixhcXVhbWFyaW5lOlwiIzdmZmZkNFwiLGF6dXJlOlwiI2YwZmZmZlwiLGJlaWdlOlwiI2Y1ZjVkY1wiLGJpc3F1ZTpcIiNmZmU0YzRcIixibGFjazpcIiMwMDAwMDBcIixibGFuY2hlZGFsbW9uZDpcIiNmZmViY2RcIixibHVlOlwiIzAwMDBmZlwiLGJsdWV2aW9sZXQ6XCIjOGEyYmUyXCIsYnJvd246XCIjYTUyYTJhXCIsYnVybHl3b29kOlwiI2RlYjg4N1wiLGNhZGV0Ymx1ZTpcIiM1ZjllYTBcIixjaGFydHJldXNlOlwiIzdmZmYwMFwiLGNob2NvbGF0ZTpcIiNkMjY5MWVcIixjb3JhbDpcIiNmZjdmNTBcIixjb3JuZmxvd2VyYmx1ZTpcIiM2NDk1ZWRcIixjb3Juc2lsazpcIiNmZmY4ZGNcIixjcmltc29uOlwiI2RjMTQzY1wiLGN5YW46XCIjMDBmZmZmXCIsZGFya2JsdWU6XCIjMDAwMDhiXCIsZGFya2N5YW46XCIjMDA4YjhiXCIsZGFya2dvbGRlbnJvZDpcIiNiODg2MGJcIixkYXJrZ3JheTpcIiNhOWE5YTlcIixkYXJrZ3JlZW46XCIjMDA2NDAwXCIsZGFya2dyZXk6XCIjYTlhOWE5XCIsZGFya2toYWtpOlwiI2JkYjc2YlwiLGRhcmttYWdlbnRhOlwiIzhiMDA4YlwiLGRhcmtvbGl2ZWdyZWVuOlwiIzU1NmIyZlwiLGRhcmtvcmFuZ2U6XCIjZmY4YzAwXCIsZGFya29yY2hpZDpcIiM5OTMyY2NcIixkYXJrcmVkOlwiIzhiMDAwMFwiLGRhcmtzYWxtb246XCIjZTk5NjdhXCIsZGFya3NlYWdyZWVuOlwiIzhmYmM4ZlwiLGRhcmtzbGF0ZWJsdWU6XCIjNDgzZDhiXCIsZGFya3NsYXRlZ3JheTpcIiMyZjRmNGZcIixkYXJrc2xhdGVncmV5OlwiIzJmNGY0ZlwiLGRhcmt0dXJxdW9pc2U6XCIjMDBjZWQxXCIsZGFya3Zpb2xldDpcIiM5NDAwZDNcIixkZWVwcGluazpcIiNmZjE0OTNcIixkZWVwc2t5Ymx1ZTpcIiMwMGJmZmZcIixkaW1ncmF5OlwiIzY5Njk2OVwiLGRpbWdyZXk6XCIjNjk2OTY5XCIsZG9kZ2VyYmx1ZTpcIiMxZTkwZmZcIixmaXJlYnJpY2s6XCIjYjIyMjIyXCIsZmxvcmFsd2hpdGU6XCIjZmZmYWYwXCIsZm9yZXN0Z3JlZW46XCIjMjI4YjIyXCIsZnVjaHNpYTpcIiNmZjAwZmZcIixnYWluc2Jvcm86XCIjZGNkY2RjXCIsZ2hvc3R3aGl0ZTpcIiNmOGY4ZmZcIixnb2xkOlwiI2ZmZDcwMFwiLGdvbGRlbnJvZDpcIiNkYWE1MjBcIixncmF5OlwiIzgwODA4MFwiLGdyZWVuOlwiIzAwODAwMFwiLGdyZWVueWVsbG93OlwiI2FkZmYyZlwiLGdyZXk6XCIjODA4MDgwXCIsaG9uZXlkZXc6XCIjZjBmZmYwXCIsaG90cGluazpcIiNmZjY5YjRcIixpbmRpYW5yZWQ6XCIjY2Q1YzVjXCIsaW5kaWdvOlwiIzRiMDA4MlwiLGl2b3J5OlwiI2ZmZmZmMFwiLGtoYWtpOlwiI2YwZTY4Y1wiLGxhdmVuZGVyOlwiI2U2ZTZmYVwiLGxhdmVuZGVyYmx1c2g6XCIjZmZmMGY1XCIsbGF3bmdyZWVuOlwiIzdjZmMwMFwiLGxlbW9uY2hpZmZvbjpcIiNmZmZhY2RcIixsaWdodGJsdWU6XCIjYWRkOGU2XCIsbGlnaHRjb3JhbDpcIiNmMDgwODBcIixsaWdodGN5YW46XCIjZTBmZmZmXCIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6XCIjZmFmYWQyXCIsbGlnaHRncmF5OlwiI2QzZDNkM1wiLGxpZ2h0Z3JlZW46XCIjOTBlZTkwXCIsbGlnaHRncmV5OlwiI2QzZDNkM1wiLGxpZ2h0cGluazpcIiNmZmI2YzFcIixsaWdodHNhbG1vbjpcIiNmZmEwN2FcIixsaWdodHNlYWdyZWVuOlwiIzIwYjJhYVwiLGxpZ2h0c2t5Ymx1ZTpcIiM4N2NlZmFcIixsaWdodHNsYXRlZ3JheTpcIiM3Nzg4OTlcIixsaWdodHNsYXRlZ3JleTpcIiM3Nzg4OTlcIixsaWdodHN0ZWVsYmx1ZTpcIiNiMGM0ZGVcIixsaWdodHllbGxvdzpcIiNmZmZmZTBcIixsaW1lOlwiIzAwZmYwMFwiLGxpbWVncmVlbjpcIiMzMmNkMzJcIixsaW5lbjpcIiNmYWYwZTZcIixtYWdlbnRhOlwiI2ZmMDBmZlwiLG1hcm9vbjpcIiM4MDAwMDBcIixtZWRpdW1hcXVhbWFyaW5lOlwiIzY2Y2RhYVwiLG1lZGl1bWJsdWU6XCIjMDAwMGNkXCIsbWVkaXVtb3JjaGlkOlwiI2JhNTVkM1wiLG1lZGl1bXB1cnBsZTpcIiM5MzcwZGJcIixtZWRpdW1zZWFncmVlbjpcIiMzY2IzNzFcIixtZWRpdW1zbGF0ZWJsdWU6XCIjN2I2OGVlXCIsbWVkaXVtc3ByaW5nZ3JlZW46XCIjMDBmYTlhXCIsbWVkaXVtdHVycXVvaXNlOlwiIzQ4ZDFjY1wiLG1lZGl1bXZpb2xldHJlZDpcIiNjNzE1ODVcIixtaWRuaWdodGJsdWU6XCIjMTkxOTcwXCIsbWludGNyZWFtOlwiI2Y1ZmZmYVwiLG1pc3R5cm9zZTpcIiNmZmU0ZTFcIixtb2NjYXNpbjpcIiNmZmU0YjVcIixuYXZham93aGl0ZTpcIiNmZmRlYWRcIixuYXZ5OlwiIzAwMDA4MFwiLG9sZGxhY2U6XCIjZmRmNWU2XCIsb2xpdmU6XCIjODA4MDAwXCIsb2xpdmVkcmFiOlwiIzZiOGUyM1wiLG9yYW5nZTpcIiNmZmE1MDBcIixvcmFuZ2VyZWQ6XCIjZmY0NTAwXCIsb3JjaGlkOlwiI2RhNzBkNlwiLHBhbGVnb2xkZW5yb2Q6XCIjZWVlOGFhXCIscGFsZWdyZWVuOlwiIzk4ZmI5OFwiLHBhbGV0dXJxdW9pc2U6XCIjYWZlZWVlXCIscGFsZXZpb2xldHJlZDpcIiNkYjcwOTNcIixwYXBheWF3aGlwOlwiI2ZmZWZkNVwiLHBlYWNocHVmZjpcIiNmZmRhYjlcIixwZXJ1OlwiI2NkODUzZlwiLHBpbms6XCIjZmZjMGNiXCIscGx1bTpcIiNkZGEwZGRcIixwb3dkZXJibHVlOlwiI2IwZTBlNlwiLHB1cnBsZTpcIiM4MDAwODBcIixyZWJlY2NhcHVycGxlOlwiIzY2MzM5OVwiLHJlZDpcIiNmZjAwMDBcIixyb3N5YnJvd246XCIjYmM4ZjhmXCIscm95YWxibHVlOlwiIzQxNjllMVwiLHNhZGRsZWJyb3duOlwiIzhiNDUxM1wiLHNhbG1vbjpcIiNmYTgwNzJcIixzYW5keWJyb3duOlwiI2Y0YTQ2MFwiLHNlYWdyZWVuOlwiIzJlOGI1N1wiLHNlYXNoZWxsOlwiI2ZmZjVlZVwiLHNpZW5uYTpcIiNhMDUyMmRcIixzaWx2ZXI6XCIjYzBjMGMwXCIsc2t5Ymx1ZTpcIiM4N2NlZWJcIixzbGF0ZWJsdWU6XCIjNmE1YWNkXCIsc2xhdGVncmF5OlwiIzcwODA5MFwiLHNsYXRlZ3JleTpcIiM3MDgwOTBcIixzbm93OlwiI2ZmZmFmYVwiLHNwcmluZ2dyZWVuOlwiIzAwZmY3ZlwiLHN0ZWVsYmx1ZTpcIiM0NjgyYjRcIix0YW46XCIjZDJiNDhjXCIsdGVhbDpcIiMwMDgwODBcIix0aGlzdGxlOlwiI2Q4YmZkOFwiLHRvbWF0bzpcIiNmZjYzNDdcIix0dXJxdW9pc2U6XCIjNDBlMGQwXCIsdmlvbGV0OlwiI2VlODJlZVwiLHdoZWF0OlwiI2Y1ZGViM1wiLHdoaXRlOlwiI2ZmZmZmZlwiLHdoaXRlc21va2U6XCIjZjVmNWY1XCIseWVsbG93OlwiI2ZmZmYwMFwiLHllbGxvd2dyZWVuOlwiIzlhY2QzMlwifSxuPS9cXHMqLyxhPS8oXFxkezEsM30pLyxsPS8oKD86XFxkKyg/OlxcLlxcZCspPyl8KD86XFwuXFxkKykpLyx1PW5ldyBSZWdFeHAoXCJcIi5jb25jYXQobC5zb3VyY2UsXCIlXCIpKSxtPXtIRVgzOi9eIyhbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKSQvaSxIRVg0Oi9eIyhbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkkL2ksSEVYNjovXiMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkkL2ksSEVYODovXiMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pJC9pLFJHQjpuZXcgUmVnRXhwKFtcIl5yZ2JcXFxcKFwiLGEuc291cmNlLFwiLFwiLGEuc291cmNlLFwiLFwiLGEuc291cmNlLFwiXFxcXCkkXCJdLmpvaW4obi5zb3VyY2UpLFwiaVwiKSxSR0JfUEVSQ0VOVDpuZXcgUmVnRXhwKFtcIl5yZ2JcXFxcKFwiLHUuc291cmNlLFwiLFwiLHUuc291cmNlLFwiLFwiLHUuc291cmNlLFwiXFxcXCkkXCJdLmpvaW4obi5zb3VyY2UpLFwiaVwiKSxSR0JBOm5ldyBSZWdFeHAoW1wiXnJnYmFcXFxcKFwiLGEuc291cmNlLFwiLFwiLGEuc291cmNlLFwiLFwiLGEuc291cmNlLFwiLFwiLGwuc291cmNlLFwiXFxcXCkkXCJdLmpvaW4obi5zb3VyY2UpLFwiaVwiKSxSR0JBX1BFUkNFTlQ6bmV3IFJlZ0V4cChbXCJecmdiYVxcXFwoXCIsdS5zb3VyY2UsXCIsXCIsdS5zb3VyY2UsXCIsXCIsdS5zb3VyY2UsXCIsXCIsbC5zb3VyY2UsXCJcXFxcKSRcIl0uam9pbihuLnNvdXJjZSksXCJpXCIpLEhTTDpuZXcgUmVnRXhwKFtcIl5oc2xcXFxcKFwiLGEuc291cmNlLFwiLFwiLHUuc291cmNlLFwiLFwiLHUuc291cmNlLFwiXFxcXCkkXCJdLmpvaW4obi5zb3VyY2UpLFwiaVwiKSxIU0xBOm5ldyBSZWdFeHAoW1wiXmhzbGFcXFxcKFwiLGEuc291cmNlLFwiLFwiLHUuc291cmNlLFwiLFwiLHUuc291cmNlLFwiLFwiLGwuc291cmNlLFwiXFxcXCkkXCJdLmpvaW4obi5zb3VyY2UpLFwiaVwiKSxIU0I6bmV3IFJlZ0V4cChbXCJeaHNiXFxcXChcIixhLnNvdXJjZSxcIixcIix1LnNvdXJjZSxcIixcIix1LnNvdXJjZSxcIlxcXFwpJFwiXS5qb2luKG4uc291cmNlKSxcImlcIiksSFNCQTpuZXcgUmVnRXhwKFtcIl5oc2JhXFxcXChcIixhLnNvdXJjZSxcIixcIix1LnNvdXJjZSxcIixcIix1LnNvdXJjZSxcIixcIixsLnNvdXJjZSxcIlxcXFwpJFwiXS5qb2luKG4uc291cmNlKSxcImlcIil9O2MuZGVmYXVsdC5Db2xvci5fcGFyc2VJbnB1dHM9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG4sYT1hcmd1bWVudHMubGVuZ3RoLG89dGhpcy5tb2RlLHM9dGhpcy5tYXhlc1tvXSxsPVtdO2lmKDM8PWEpe2ZvcihsWzBdPWUvc1swXSxsWzFdPXQvc1sxXSxsWzJdPXIvc1syXSxsWzNdPVwibnVtYmVyXCI9PXR5cGVvZiBpP2kvc1szXToxLG49bC5sZW5ndGgtMTswPD1uOy0tbil7dmFyIHU9bFtuXTt1PDA/bFtuXT0wOjE8dSYmKGxbbl09MSl9cmV0dXJuIG89PT1mLkhTTD9kLmRlZmF1bHQuX2hzbGFUb1JHQkEobCk6bz09PWYuSFNCP2QuZGVmYXVsdC5faHNiYVRvUkdCQShsKTpsfWlmKDE9PT1hJiZcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIGg9ZS50cmltKCkudG9Mb3dlckNhc2UoKTtpZihwW2hdKXJldHVybiBjLmRlZmF1bHQuQ29sb3IuX3BhcnNlSW5wdXRzLmNhbGwodGhpcyxwW2hdKTtpZihtLkhFWDMudGVzdChoKSlyZXR1cm4obD1tLkhFWDMuZXhlYyhoKS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUrZSwxNikvMjU1fSkpWzNdPTEsbDtpZihtLkhFWDYudGVzdChoKSlyZXR1cm4obD1tLkhFWDYuZXhlYyhoKS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpLzI1NX0pKVszXT0xLGw7aWYobS5IRVg0LnRlc3QoaCkpcmV0dXJuIGw9bS5IRVg0LmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlK2UsMTYpLzI1NX0pO2lmKG0uSEVYOC50ZXN0KGgpKXJldHVybiBsPW0uSEVYOC5leGVjKGgpLnNsaWNlKDEpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxNikvMjU1fSk7aWYobS5SR0IudGVzdChoKSlyZXR1cm4obD1tLlJHQi5leGVjKGgpLnNsaWNlKDEpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS8yNTV9KSlbM109MSxsO2lmKG0uUkdCX1BFUkNFTlQudGVzdChoKSlyZXR1cm4obD1tLlJHQl9QRVJDRU5ULmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUZsb2F0KGUpLzEwMH0pKVszXT0xLGw7aWYobS5SR0JBLnRlc3QoaCkpcmV0dXJuIGw9bS5SR0JBLmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIDM9PT10P3BhcnNlRmxvYXQoZSk6ZS8yNTV9KTtpZihtLlJHQkFfUEVSQ0VOVC50ZXN0KGgpKXJldHVybiBsPW0uUkdCQV9QRVJDRU5ULmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIDM9PT10P3BhcnNlRmxvYXQoZSk6cGFyc2VGbG9hdChlKS8xMDB9KTtpZihtLkhTTC50ZXN0KGgpPyhsPW0uSFNMLmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT10P3BhcnNlSW50KGUsMTApLzM2MDpwYXJzZUludChlLDEwKS8xMDB9KSlbM109MTptLkhTTEEudGVzdChoKSYmKGw9bS5IU0xBLmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT10P3BhcnNlSW50KGUsMTApLzM2MDozPT09dD9wYXJzZUZsb2F0KGUpOnBhcnNlSW50KGUsMTApLzEwMH0pKSwobD1sLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4oZSwxKSwwKX0pKS5sZW5ndGgpcmV0dXJuIGQuZGVmYXVsdC5faHNsYVRvUkdCQShsKTtpZihtLkhTQi50ZXN0KGgpPyhsPW0uSFNCLmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT10P3BhcnNlSW50KGUsMTApLzM2MDpwYXJzZUludChlLDEwKS8xMDB9KSlbM109MTptLkhTQkEudGVzdChoKSYmKGw9bS5IU0JBLmV4ZWMoaCkuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT10P3BhcnNlSW50KGUsMTApLzM2MDozPT09dD9wYXJzZUZsb2F0KGUpOnBhcnNlSW50KGUsMTApLzEwMH0pKSxsLmxlbmd0aCl7Zm9yKG49bC5sZW5ndGgtMTswPD1uOy0tbilsW25dPU1hdGgubWF4KE1hdGgubWluKGxbbl0sMSksMCk7cmV0dXJuIGQuZGVmYXVsdC5faHNiYVRvUkdCQShsKX1sPVsxLDEsMSwxXX1lbHNle2lmKDEhPT1hJiYyIT09YXx8XCJudW1iZXJcIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKFwiXCIuY29uY2F0KGFyZ3VtZW50cyxcImlzIG5vdCBhIHZhbGlkIGNvbG9yIHJlcHJlc2VudGF0aW9uLlwiKSk7bFswXT1lL3NbMl0sbFsxXT1lL3NbMl0sbFsyXT1lL3NbMl0sbFszXT1cIm51bWJlclwiPT10eXBlb2YgdD90L3NbM106MSxsPWwubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLm1pbihlLDEpLDApfSl9cmV0dXJuIGx9O3ZhciBoPWMuZGVmYXVsdC5Db2xvcjtyLmRlZmF1bHQ9aH0se1wiLi4vY29yZS9jb25zdGFudHNcIjoyNixcIi4uL2NvcmUvbWFpblwiOjM2LFwiLi9jb2xvcl9jb252ZXJzaW9uXCI6MjJ9XSwyNTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGkscz0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX0sbD1mdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1vKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXUoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBuIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikpe3ZhciBhPWk/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbixhKTpyW25dPWVbbl19ci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKTtyZXR1cm4gcn0oZShcIi4uL2NvcmUvY29uc3RhbnRzXCIpKTtmdW5jdGlvbiB1KCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gdT1mdW5jdGlvbigpe3JldHVybiBlfSxlfWUoXCIuL3A1LkNvbG9yXCIpLHMuZGVmYXVsdC5wcm90b3R5cGUuYmFja2dyb3VuZD1mdW5jdGlvbigpe3ZhciBlO3JldHVybihlPXRoaXMuX3JlbmRlcmVyKS5iYWNrZ3JvdW5kLmFwcGx5KGUsYXJndW1lbnRzKSx0aGlzfSxzLmRlZmF1bHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmNsZWFyKCksdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5jb2xvck1vZGU9ZnVuY3Rpb24oZSx0LHIsaSxuKXtpZihzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImNvbG9yTW9kZVwiLGFyZ3VtZW50cyksZT09PWwuUkdCfHxlPT09bC5IU0J8fGU9PT1sLkhTTCl7dGhpcy5fY29sb3JNb2RlPWU7dmFyIGE9dGhpcy5fY29sb3JNYXhlc1tlXTsyPT09YXJndW1lbnRzLmxlbmd0aD8oYVswXT10LGFbMV09dCxhWzJdPXQsYVszXT10KTo0PT09YXJndW1lbnRzLmxlbmd0aD8oYVswXT10LGFbMV09cixhWzJdPWkpOjU9PT1hcmd1bWVudHMubGVuZ3RoJiYoYVswXT10LGFbMV09cixhWzJdPWksYVszXT1uKX1yZXR1cm4gdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLl9zZXRQcm9wZXJ0eShcIl9maWxsU2V0XCIsITApLHRoaXMuX3JlbmRlcmVyLl9zZXRQcm9wZXJ0eShcIl9kb0ZpbGxcIiwhMCksKGU9dGhpcy5fcmVuZGVyZXIpLmZpbGwuYXBwbHkoZSxhcmd1bWVudHMpLHRoaXN9LHMuZGVmYXVsdC5wcm90b3R5cGUubm9GaWxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLl9zZXRQcm9wZXJ0eShcIl9kb0ZpbGxcIiwhMSksdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5ub1N0cm9rZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW5kZXJlci5fc2V0UHJvcGVydHkoXCJfZG9TdHJva2VcIiwhMSksdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5zdHJva2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuX3NldFByb3BlcnR5KFwiX3N0cm9rZVNldFwiLCEwKSx0aGlzLl9yZW5kZXJlci5fc2V0UHJvcGVydHkoXCJfZG9TdHJva2VcIiwhMCksKGU9dGhpcy5fcmVuZGVyZXIpLnN0cm9rZS5hcHBseShlLGFyZ3VtZW50cyksdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5lcmFzZT1mdW5jdGlvbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToyNTUsdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjU1O3JldHVybiB0aGlzLl9yZW5kZXJlci5lcmFzZShlLHQpLHRoaXN9LHMuZGVmYXVsdC5wcm90b3R5cGUubm9FcmFzZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW5kZXJlci5ub0VyYXNlKCksdGhpc307dmFyIG49cy5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi9jb3JlL2NvbnN0YW50c1wiOjI2LFwiLi4vY29yZS9tYWluXCI6MzYsXCIuL3A1LkNvbG9yXCI6MjR9XSwyNjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuRklMTD1yLlNUUk9LRT1yLkNVUlZFPXIuQkVaSUVSPXIuUVVBRFJBVElDPXIuTElORUFSPXIuX0NUWF9NSURETEU9ci5fREVGQVVMVF9MRUFETVVMVD1yLl9ERUZBVUxUX1RFWFRfRklMTD1yLkJPTERJVEFMSUM9ci5CT0xEPXIuSVRBTElDPXIuTk9STUFMPXIuQkxVUj1yLkVST0RFPXIuRElMQVRFPXIuUE9TVEVSSVpFPXIuSU5WRVJUPXIuT1BBUVVFPXIuR1JBWT1yLlRIUkVTSE9MRD1yLkJVUk49ci5ET0RHRT1yLlNPRlRfTElHSFQ9ci5IQVJEX0xJR0hUPXIuT1ZFUkxBWT1yLlJFUExBQ0U9ci5TQ1JFRU49ci5NVUxUSVBMWT1yLkVYQ0xVU0lPTj1yLlNVQlRSQUNUPXIuRElGRkVSRU5DRT1yLkxJR0hURVNUPXIuREFSS0VTVD1yLkFERD1yLlJFTU9WRT1yLkJMRU5EPXIuVVBfQVJST1c9ci5UQUI9ci5TSElGVD1yLlJJR0hUX0FSUk9XPXIuUkVUVVJOPXIuT1BUSU9OPXIuTEVGVF9BUlJPVz1yLkVTQ0FQRT1yLkVOVEVSPXIuRE9XTl9BUlJPVz1yLkRFTEVURT1yLkNPTlRST0w9ci5CQUNLU1BBQ0U9ci5BTFQ9ci5BVVRPPXIuSFNMPXIuSFNCPXIuUkdCPXIuTUlURVI9ci5CRVZFTD1yLlJPVU5EPXIuU1FVQVJFPXIuUFJPSkVDVD1yLlBJRT1yLkNIT1JEPXIuT1BFTj1yLkNMT1NFPXIuVEVTUz1yLlFVQURfU1RSSVA9ci5RVUFEUz1yLlRSSUFOR0xFX1NUUklQPXIuVFJJQU5HTEVfRkFOPXIuVFJJQU5HTEVTPXIuTElORV9MT09QPXIuTElORV9TVFJJUD1yLkxJTkVTPXIuUE9JTlRTPXIuQkFTRUxJTkU9ci5CT1RUT009ci5UT1A9ci5DRU5URVI9ci5MRUZUPXIuUklHSFQ9ci5SQURJVVM9ci5DT1JORVJTPXIuQ09STkVSPXIuUkFEX1RPX0RFRz1yLkRFR19UT19SQUQ9ci5SQURJQU5TPXIuREVHUkVFUz1yLlRXT19QST1yLlRBVT1yLlFVQVJURVJfUEk9ci5QST1yLkhBTEZfUEk9ci5XQUlUPXIuVEVYVD1yLk1PVkU9ci5IQU5EPXIuQ1JPU1M9ci5BUlJPVz1yLldFQkdMPXIuUDJEPXZvaWQgMCxyLkZBTExCQUNLPXIuTEFCRUw9ci5BWEVTPXIuR1JJRD1yLl9ERUZBVUxUX0ZJTEw9ci5fREVGQVVMVF9TVFJPS0U9ci5QT1JUUkFJVD1yLkxBTkRTQ0FQRT1yLk1JUlJPUj1yLkNMQU1QPXIuUkVQRUFUPXIuTkVBUkVTVD1yLklNQUdFPXIuSU1NRURJQVRFPXIuVEVYVFVSRT12b2lkIDA7dmFyIGk9TWF0aC5QSTtyLlAyRD1cInAyZFwiO3IuV0VCR0w9XCJ3ZWJnbFwiO3IuQVJST1c9XCJkZWZhdWx0XCI7ci5DUk9TUz1cImNyb3NzaGFpclwiO3IuSEFORD1cInBvaW50ZXJcIjtyLk1PVkU9XCJtb3ZlXCI7ci5URVhUPVwidGV4dFwiO3IuV0FJVD1cIndhaXRcIjt2YXIgbj1pLzI7ci5IQUxGX1BJPW47dmFyIGE9aTtyLlBJPWE7dmFyIG89aS80O3IuUVVBUlRFUl9QST1vO3ZhciBzPTIqaTtyLlRBVT1zO3ZhciBsPTIqaTtyLlRXT19QST1sO3IuREVHUkVFUz1cImRlZ3JlZXNcIjtyLlJBRElBTlM9XCJyYWRpYW5zXCI7dmFyIHU9aS8xODA7ci5ERUdfVE9fUkFEPXU7dmFyIGg9MTgwL2k7ci5SQURfVE9fREVHPWg7ci5DT1JORVI9XCJjb3JuZXJcIjtyLkNPUk5FUlM9XCJjb3JuZXJzXCI7ci5SQURJVVM9XCJyYWRpdXNcIjtyLlJJR0hUPVwicmlnaHRcIjtyLkxFRlQ9XCJsZWZ0XCI7ci5DRU5URVI9XCJjZW50ZXJcIjtyLlRPUD1cInRvcFwiO3IuQk9UVE9NPVwiYm90dG9tXCI7ci5CQVNFTElORT1cImFscGhhYmV0aWNcIjtyLlBPSU5UUz0wO3IuTElORVM9MTtyLkxJTkVfU1RSSVA9MztyLkxJTkVfTE9PUD0yO3IuVFJJQU5HTEVTPTQ7ci5UUklBTkdMRV9GQU49NjtyLlRSSUFOR0xFX1NUUklQPTU7ci5RVUFEUz1cInF1YWRzXCI7ci5RVUFEX1NUUklQPVwicXVhZF9zdHJpcFwiO3IuVEVTUz1cInRlc3NcIjtyLkNMT1NFPVwiY2xvc2VcIjtyLk9QRU49XCJvcGVuXCI7ci5DSE9SRD1cImNob3JkXCI7ci5QSUU9XCJwaWVcIjtyLlBST0pFQ1Q9XCJzcXVhcmVcIjtyLlNRVUFSRT1cImJ1dHRcIjtyLlJPVU5EPVwicm91bmRcIjtyLkJFVkVMPVwiYmV2ZWxcIjtyLk1JVEVSPVwibWl0ZXJcIjtyLlJHQj1cInJnYlwiO3IuSFNCPVwiaHNiXCI7ci5IU0w9XCJoc2xcIjtyLkFVVE89XCJhdXRvXCI7ci5BTFQ9MTg7ci5CQUNLU1BBQ0U9ODtyLkNPTlRST0w9MTc7ci5ERUxFVEU9NDY7ci5ET1dOX0FSUk9XPTQwO3IuRU5URVI9MTM7ci5FU0NBUEU9Mjc7ci5MRUZUX0FSUk9XPTM3O3IuT1BUSU9OPTE4O3IuUkVUVVJOPTEzO3IuUklHSFRfQVJST1c9Mzk7ci5TSElGVD0xNjtyLlRBQj05O3IuVVBfQVJST1c9Mzg7ci5CTEVORD1cInNvdXJjZS1vdmVyXCI7ci5SRU1PVkU9XCJkZXN0aW5hdGlvbi1vdXRcIjtyLkFERD1cImxpZ2h0ZXJcIjtyLkRBUktFU1Q9XCJkYXJrZW5cIjtyLkxJR0hURVNUPVwibGlnaHRlblwiO3IuRElGRkVSRU5DRT1cImRpZmZlcmVuY2VcIjtyLlNVQlRSQUNUPVwic3VidHJhY3RcIjtyLkVYQ0xVU0lPTj1cImV4Y2x1c2lvblwiO3IuTVVMVElQTFk9XCJtdWx0aXBseVwiO3IuU0NSRUVOPVwic2NyZWVuXCI7ci5SRVBMQUNFPVwiY29weVwiO3IuT1ZFUkxBWT1cIm92ZXJsYXlcIjtyLkhBUkRfTElHSFQ9XCJoYXJkLWxpZ2h0XCI7ci5TT0ZUX0xJR0hUPVwic29mdC1saWdodFwiO3IuRE9ER0U9XCJjb2xvci1kb2RnZVwiO3IuQlVSTj1cImNvbG9yLWJ1cm5cIjtyLlRIUkVTSE9MRD1cInRocmVzaG9sZFwiO3IuR1JBWT1cImdyYXlcIjtyLk9QQVFVRT1cIm9wYXF1ZVwiO3IuSU5WRVJUPVwiaW52ZXJ0XCI7ci5QT1NURVJJWkU9XCJwb3N0ZXJpemVcIjtyLkRJTEFURT1cImRpbGF0ZVwiO3IuRVJPREU9XCJlcm9kZVwiO3IuQkxVUj1cImJsdXJcIjtyLk5PUk1BTD1cIm5vcm1hbFwiO3IuSVRBTElDPVwiaXRhbGljXCI7ci5CT0xEPVwiYm9sZFwiO3IuQk9MRElUQUxJQz1cImJvbGQgaXRhbGljXCI7ci5fREVGQVVMVF9URVhUX0ZJTEw9XCIjMDAwMDAwXCI7ci5fREVGQVVMVF9MRUFETVVMVD0xLjI1O3IuX0NUWF9NSURETEU9XCJtaWRkbGVcIjtyLkxJTkVBUj1cImxpbmVhclwiO3IuUVVBRFJBVElDPVwicXVhZHJhdGljXCI7ci5CRVpJRVI9XCJiZXppZXJcIjtyLkNVUlZFPVwiY3VydmVcIjtyLlNUUk9LRT1cInN0cm9rZVwiO3IuRklMTD1cImZpbGxcIjtyLlRFWFRVUkU9XCJ0ZXh0dXJlXCI7ci5JTU1FRElBVEU9XCJpbW1lZGlhdGVcIjtyLklNQUdFPVwiaW1hZ2VcIjtyLk5FQVJFU1Q9XCJuZWFyZXN0XCI7ci5SRVBFQVQ9XCJyZXBlYXRcIjtyLkNMQU1QPVwiY2xhbXBcIjtyLk1JUlJPUj1cIm1pcnJvclwiO3IuTEFORFNDQVBFPVwibGFuZHNjYXBlXCI7ci5QT1JUUkFJVD1cInBvcnRyYWl0XCI7ci5fREVGQVVMVF9TVFJPS0U9XCIjMDAwMDAwXCI7ci5fREVGQVVMVF9GSUxMPVwiI0ZGRkZGRlwiO3IuR1JJRD1cImdyaWRcIjtyLkFYRVM9XCJheGVzXCI7ci5MQUJFTD1cImxhYmVsXCI7ci5GQUxMQkFDSz1cImZhbGxiYWNrXCJ9LHt9XSwyNzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX0sYT1mdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1vKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXMoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBuIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikpe3ZhciBhPWk/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbixhKTpyW25dPWVbbl19ci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKTtyZXR1cm4gcn0oZShcIi4vY29uc3RhbnRzXCIpKTtmdW5jdGlvbiBzKCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfXZhciBsPVthLkFSUk9XLGEuQ1JPU1MsYS5IQU5ELGEuTU9WRSxhLlRFWFQsYS5XQUlUXTtuLmRlZmF1bHQucHJvdG90eXBlLl9mcmFtZVJhdGU9MCxuLmRlZmF1bHQucHJvdG90eXBlLl9sYXN0RnJhbWVUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSxuLmRlZmF1bHQucHJvdG90eXBlLl90YXJnZXRGcmFtZVJhdGU9NjA7dmFyIHU9d2luZG93LnByaW50O2Z1bmN0aW9uIGgoKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRofHxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRofHwwfWZ1bmN0aW9uIGMoKXtyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0fHwwfW4uZGVmYXVsdC5wcm90b3R5cGUucHJpbnQ9ZnVuY3Rpb24oKXt2YXIgZTthcmd1bWVudHMubGVuZ3RoPyhlPWNvbnNvbGUpLmxvZy5hcHBseShlLGFyZ3VtZW50cyk6dSgpfSxuLmRlZmF1bHQucHJvdG90eXBlLmZyYW1lQ291bnQ9MCxuLmRlZmF1bHQucHJvdG90eXBlLmRlbHRhVGltZT0wLG4uZGVmYXVsdC5wcm90b3R5cGUuZm9jdXNlZD1kb2N1bWVudC5oYXNGb2N1cygpLG4uZGVmYXVsdC5wcm90b3R5cGUuY3Vyc29yPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1cImF1dG9cIixuPXRoaXMuX2N1ckVsZW1lbnQuZWx0O2lmKGwuaW5jbHVkZXMoZSkpaT1lO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpe3ZhciBhPVwiXCI7dCYmciYmXCJudW1iZXJcIj09dHlwZW9mIHQmJlwibnVtYmVyXCI9PXR5cGVvZiByJiYoYT1cIlwiLmNvbmNhdCh0LFwiIFwiKS5jb25jYXQocikpLGk9XCJodHRwOi8vXCI9PT1lLnN1YnN0cmluZygwLDcpfHxcImh0dHBzOi8vXCI9PT1lLnN1YnN0cmluZygwLDgpP1widXJsKFwiLmNvbmNhdChlLFwiKSBcIikuY29uY2F0KGEsXCIsIGF1dG9cIik6L1xcLihjdXJ8anBnfGpwZWd8Z2lmfHBuZ3xDVVJ8SlBHfEpQRUd8R0lGfFBORykkLy50ZXN0KGUpP1widXJsKFwiLmNvbmNhdChlLFwiKSBcIikuY29uY2F0KGEsXCIsIGF1dG9cIik6ZX1uLnN0eWxlLmN1cnNvcj1pfSxuLmRlZmF1bHQucHJvdG90eXBlLmZyYW1lUmF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJmcmFtZVJhdGVcIixhcmd1bWVudHMpLFwibnVtYmVyXCIhPXR5cGVvZiBlfHxlPDA/dGhpcy5fZnJhbWVSYXRlOih0aGlzLl9zZXRQcm9wZXJ0eShcIl90YXJnZXRGcmFtZVJhdGVcIixlKSwwPT09ZSYmdGhpcy5fc2V0UHJvcGVydHkoXCJfZnJhbWVSYXRlXCIsZSksdGhpcyl9LG4uZGVmYXVsdC5wcm90b3R5cGUuZ2V0RnJhbWVSYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnJhbWVSYXRlKCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuc2V0RnJhbWVSYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZyYW1lUmF0ZShlKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5ub0N1cnNvcj1mdW5jdGlvbigpe3RoaXMuX2N1ckVsZW1lbnQuZWx0LnN0eWxlLmN1cnNvcj1cIm5vbmVcIn0sbi5kZWZhdWx0LnByb3RvdHlwZS5kaXNwbGF5V2lkdGg9c2NyZWVuLndpZHRoLG4uZGVmYXVsdC5wcm90b3R5cGUuZGlzcGxheUhlaWdodD1zY3JlZW4uaGVpZ2h0LG4uZGVmYXVsdC5wcm90b3R5cGUud2luZG93V2lkdGg9aCgpLG4uZGVmYXVsdC5wcm90b3R5cGUud2luZG93SGVpZ2h0PWMoKSxuLmRlZmF1bHQucHJvdG90eXBlLl9vbnJlc2l6ZT1mdW5jdGlvbihlKXt0aGlzLl9zZXRQcm9wZXJ0eShcIndpbmRvd1dpZHRoXCIsaCgpKSx0aGlzLl9zZXRQcm9wZXJ0eShcIndpbmRvd0hlaWdodFwiLGMoKSk7dmFyIHQscj10aGlzLl9pc0dsb2JhbD93aW5kb3c6dGhpcztcImZ1bmN0aW9uXCI9PXR5cGVvZiByLndpbmRvd1Jlc2l6ZWQmJih2b2lkIDA9PT0odD1yLndpbmRvd1Jlc2l6ZWQoZSkpfHx0fHxlLnByZXZlbnREZWZhdWx0KCkpfSxuLmRlZmF1bHQucHJvdG90eXBlLndpZHRoPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5oZWlnaHQ9MCxuLmRlZmF1bHQucHJvdG90eXBlLmZ1bGxzY3JlZW49ZnVuY3Rpb24oZSl7aWYobi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJmdWxsc2NyZWVuXCIsYXJndW1lbnRzKSx2b2lkIDA9PT1lKXJldHVybiBkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50fHxkb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50O2U/ZnVuY3Rpb24oZSl7aWYoIShkb2N1bWVudC5mdWxsc2NyZWVuRW5hYmxlZHx8ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWR8fGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbmFibGVkfHxkb2N1bWVudC5tc0Z1bGxzY3JlZW5FbmFibGVkKSl0aHJvdyBuZXcgRXJyb3IoXCJGdWxsc2NyZWVuIG5vdCBlbmFibGVkIGluIHRoaXMgYnJvd3Nlci5cIik7ZS5yZXF1ZXN0RnVsbHNjcmVlbj9lLnJlcXVlc3RGdWxsc2NyZWVuKCk6ZS5tb3pSZXF1ZXN0RnVsbFNjcmVlbj9lLm1velJlcXVlc3RGdWxsU2NyZWVuKCk6ZS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbj9lLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk6ZS5tc1JlcXVlc3RGdWxsc2NyZWVuJiZlLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKX0oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTpkb2N1bWVudC5leGl0RnVsbHNjcmVlbj9kb2N1bWVudC5leGl0RnVsbHNjcmVlbigpOmRvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4/ZG9jdW1lbnQubW96Q2FuY2VsRnVsbFNjcmVlbigpOmRvY3VtZW50LndlYmtpdEV4aXRGdWxsc2NyZWVuP2RvY3VtZW50LndlYmtpdEV4aXRGdWxsc2NyZWVuKCk6ZG9jdW1lbnQubXNFeGl0RnVsbHNjcmVlbiYmZG9jdW1lbnQubXNFeGl0RnVsbHNjcmVlbigpfSxuLmRlZmF1bHQucHJvdG90eXBlLnBpeGVsRGVuc2l0eT1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJwaXhlbERlbnNpdHlcIixhcmd1bWVudHMpLFwibnVtYmVyXCI9PXR5cGVvZiBlPyhlIT09dGhpcy5fcGl4ZWxEZW5zaXR5JiYodGhpcy5fcGl4ZWxEZW5zaXR5PWUpLCh0PXRoaXMpLnJlc2l6ZUNhbnZhcyh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LCEwKSk6dD10aGlzLl9waXhlbERlbnNpdHksdH0sbi5kZWZhdWx0LnByb3RvdHlwZS5kaXNwbGF5RGVuc2l0eT1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb30sbi5kZWZhdWx0LnByb3RvdHlwZS5nZXRVUkw9ZnVuY3Rpb24oKXtyZXR1cm4gbG9jYXRpb24uaHJlZn0sbi5kZWZhdWx0LnByb3RvdHlwZS5nZXRVUkxQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIGxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KFwiL1wiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuXCJcIiE9PWV9KX0sbi5kZWZhdWx0LnByb3RvdHlwZS5nZXRVUkxQYXJhbXM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD0vWz8mXShbXiY9XSspKD86WyY9XSkoW14mPV0rKS9naW0scj17fTtudWxsIT0oZT10LmV4ZWMobG9jYXRpb24uc2VhcmNoKSk7KWUuaW5kZXg9PT10Lmxhc3RJbmRleCYmdC5sYXN0SW5kZXgrKyxyW2VbMV1dPWVbMl07cmV0dXJuIHJ9O3ZhciBmPW4uZGVmYXVsdDtyLmRlZmF1bHQ9Zn0se1wiLi9jb25zdGFudHNcIjoyNixcIi4vbWFpblwiOjM2fV0sMjg6W2Z1bmN0aW9uKHIsZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9cihcIi4uL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtyKFwiLi4vaW50ZXJuYXRpb25hbGl6YXRpb25cIik7dmFyIGE9bnVsbCxvPW51bGw7bi5kZWZhdWx0Ll9mcmllbmRseUVycm9yPW4uZGVmYXVsdC5fY2hlY2tGb3JVc2VyRGVmaW5lZEZ1bmN0aW9ucz1uLmRlZmF1bHQuX2Zlc0Vycm9yTW9uaXRvcj1mdW5jdGlvbigpe30sYT1udWxsO3ZhciBzPVwiaHR0cHM6Ly9naXRodWIuY29tL3Byb2Nlc3NpbmcvcDUuanMvd2lraS9wNS5qcy1vdmVydmlldyN3aHktY2FudC1pLWFzc2lnbi12YXJpYWJsZXMtdXNpbmctcDUtZnVuY3Rpb25zLWFuZC12YXJpYWJsZXMtYmVmb3JlLXNldHVwXCI7bz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm5cIl9cIiE9PWVbMF0mJighKGUgaW4gdCkmJih0W2VdPSEwKSl9KS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgcltlXT9cImZ1bmN0aW9uXCI6ZT09PWUudG9VcHBlckNhc2UoKT9cImNvbnN0YW50XCI6XCJ2YXJpYWJsZVwiLHtuYW1lOmUsdHlwZTp0fX0pfXZhciB0PXt9OyhhPVtdLmNvbmNhdChlKG4uZGVmYXVsdC5wcm90b3R5cGUpLGUocihcIi4uL2NvbnN0YW50c1wiKSkpKS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubmFtZS5sZW5ndGgtZS5uYW1lLmxlbmd0aH0pfTtmdW5jdGlvbiBsKHIsaSl7aT1pfHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLGF8fG8oKSxhLnNvbWUoZnVuY3Rpb24oZSl7aWYoci5tZXNzYWdlJiZudWxsIT09ci5tZXNzYWdlLm1hdGNoKFwiXFxcXFc/XCIuY29uY2F0KGUubmFtZSxcIlxcXFxXXCIpKSl7dmFyIHQ9XCJmdW5jdGlvblwiPT09ZS50eXBlP1wiXCIuY29uY2F0KGUubmFtZSxcIigpXCIpOmUubmFtZTtyZXR1cm4gaShcIkRpZCB5b3UganVzdCB0cnkgdG8gdXNlIHA1LmpzJ3MgXCIuY29uY2F0KHQsXCIgXCIpLmNvbmNhdChlLnR5cGUsXCI/IElmIHNvLCB5b3UgbWF5IHdhbnQgdG8gbW92ZSBpdCBpbnRvIHlvdXIgc2tldGNoJ3Mgc2V0dXAoKSBmdW5jdGlvbi5cXG5cXG5Gb3IgbW9yZSBkZXRhaWxzLCBzZWU6IFwiKS5jb25jYXQocykpLCEwfX0pfW4uZGVmYXVsdC5wcm90b3R5cGUuX2hlbHBGb3JNaXN1c2VkQXRUb3BMZXZlbENvZGU9bCxcImNvbXBsZXRlXCIhPT1kb2N1bWVudC5yZWFkeVN0YXRlJiYod2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLGwsITEpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLGwsITEpfSkpO3ZhciB1PW4uZGVmYXVsdDt0LmRlZmF1bHQ9dX0se1wiLi4vY29uc3RhbnRzXCI6MjYsXCIuLi9pbnRlcm5hdGlvbmFsaXphdGlvblwiOjM0LFwiLi4vbWFpblwiOjM2LFwiLi9icm93c2VyX2Vycm9yc1wiOnZvaWQgMH1dLDI5OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07ZShcIi4uL2ludGVybmF0aW9uYWxpemF0aW9uXCIpO24uZGVmYXVsdC5fZnJpZW5kbHlGaWxlTG9hZEVycm9yPWZ1bmN0aW9uKCl7fTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2ludGVybmF0aW9uYWxpemF0aW9uXCI6MzQsXCIuLi9tYWluXCI6MzZ9XSwzMDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2Z1bmN0aW9uIGEoKXt2YXIgdD0vKF58QClcXFMrOlxcZCsvLHI9L15cXHMqYXQgLiooXFxTKzpcXGQrfFxcKG5hdGl2ZVxcKSkvbSxpPS9eKGV2YWxAKT8oXFxbbmF0aXZlIGNvZGVdKT8kLztyZXR1cm57cGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUuc3RhY2t0cmFjZXx8dm9pZCAwIT09ZVtcIm9wZXJhI3NvdXJjZWxvY1wiXT90aGlzLnBhcnNlT3BlcmEoZSk6ZS5zdGFjayYmZS5zdGFjay5tYXRjaChyKT90aGlzLnBhcnNlVjhPcklFKGUpOmUuc3RhY2s/dGhpcy5wYXJzZUZGT3JTYWZhcmkoZSk6dm9pZCAwfSxleHRyYWN0TG9jYXRpb246ZnVuY3Rpb24oZSl7aWYoLTE9PT1lLmluZGV4T2YoXCI6XCIpKXJldHVybltlXTt2YXIgdD0vKC4rPykoPzo6KFxcZCspKT8oPzo6KFxcZCspKT8kLy5leGVjKGUucmVwbGFjZSgvWygpXS9nLFwiXCIpKTtyZXR1cm5bdFsxXSx0WzJdfHx2b2lkIDAsdFszXXx8dm9pZCAwXX0scGFyc2VWOE9ySUU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RhY2suc3BsaXQoXCJcXG5cIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiEhZS5tYXRjaChyKX0sdGhpcykubWFwKGZ1bmN0aW9uKGUpey0xPGUuaW5kZXhPZihcIihldmFsIFwiKSYmKGU9ZS5yZXBsYWNlKC9ldmFsIGNvZGUvZyxcImV2YWxcIikucmVwbGFjZSgvKFxcKGV2YWwgYXQgW14oKV0qKXwoXFwpLC4qJCkvZyxcIlwiKSk7dmFyIHQ9ZS5yZXBsYWNlKC9eXFxzKy8sXCJcIikucmVwbGFjZSgvXFwoZXZhbCBjb2RlL2csXCIoXCIpLHI9dC5tYXRjaCgvIChcXCgoLispOihcXGQrKTooXFxkKylcXCkkKS8pLGk9KHQ9cj90LnJlcGxhY2UoclswXSxcIlwiKTp0KS5zcGxpdCgvXFxzKy8pLnNsaWNlKDEpLG49dGhpcy5leHRyYWN0TG9jYXRpb24ocj9yWzFdOmkucG9wKCkpO3JldHVybntmdW5jdGlvbk5hbWU6aS5qb2luKFwiIFwiKXx8dm9pZCAwLGZpbGVOYW1lOi0xPFtcImV2YWxcIixcIjxhbm9ueW1vdXM+XCJdLmluZGV4T2YoblswXSk/dm9pZCAwOm5bMF0sbGluZU51bWJlcjpuWzFdLGNvbHVtbk51bWJlcjpuWzJdLHNvdXJjZTplfX0sdGhpcyl9LHBhcnNlRkZPclNhZmFyaTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGFjay5zcGxpdChcIlxcblwiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUubWF0Y2goaSl9LHRoaXMpLm1hcChmdW5jdGlvbihlKXtpZigtMTxlLmluZGV4T2YoXCIgPiBldmFsXCIpJiYoZT1lLnJlcGxhY2UoLyBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsOlxcZCs6XFxkKy9nLFwiOiQxXCIpKSwtMT09PWUuaW5kZXhPZihcIkBcIikmJi0xPT09ZS5pbmRleE9mKFwiOlwiKSlyZXR1cm57ZnVuY3Rpb25OYW1lOmV9O3ZhciB0PS8oKC4qXCIuK1wiW15AXSopP1teQF0qKSg/OkApLyxyPWUubWF0Y2godCksaT1yJiZyWzFdP3JbMV06dm9pZCAwLG49dGhpcy5leHRyYWN0TG9jYXRpb24oZS5yZXBsYWNlKHQsXCJcIikpO3JldHVybntmdW5jdGlvbk5hbWU6aSxmaWxlTmFtZTpuWzBdLGxpbmVOdW1iZXI6blsxXSxjb2x1bW5OdW1iZXI6blsyXSxzb3VyY2U6ZX19LHRoaXMpfSxwYXJzZU9wZXJhOmZ1bmN0aW9uKGUpe3JldHVybiFlLnN0YWNrdHJhY2V8fC0xPGUubWVzc2FnZS5pbmRleE9mKFwiXFxuXCIpJiZlLm1lc3NhZ2Uuc3BsaXQoXCJcXG5cIikubGVuZ3RoPmUuc3RhY2t0cmFjZS5zcGxpdChcIlxcblwiKS5sZW5ndGg/dGhpcy5wYXJzZU9wZXJhOShlKTplLnN0YWNrP3RoaXMucGFyc2VPcGVyYTExKGUpOnRoaXMucGFyc2VPcGVyYTEwKGUpfSxwYXJzZU9wZXJhOTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9L0xpbmUgKFxcZCspLipzY3JpcHQgKD86aW4gKT8oXFxTKykvaSxyPWUubWVzc2FnZS5zcGxpdChcIlxcblwiKSxpPVtdLG49MixhPXIubGVuZ3RoO248YTtuKz0yKXt2YXIgbz10LmV4ZWMocltuXSk7byYmaS5wdXNoKHtmaWxlTmFtZTpvWzJdLGxpbmVOdW1iZXI6b1sxXSxzb3VyY2U6cltuXX0pfXJldHVybiBpfSxwYXJzZU9wZXJhMTA6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PS9MaW5lIChcXGQrKS4qc2NyaXB0ICg/OmluICk/KFxcUyspKD86OiBJbiBmdW5jdGlvbiAoXFxTKykpPyQvaSxyPWUuc3RhY2t0cmFjZS5zcGxpdChcIlxcblwiKSxpPVtdLG49MCxhPXIubGVuZ3RoO248YTtuKz0yKXt2YXIgbz10LmV4ZWMocltuXSk7byYmaS5wdXNoKHtmdW5jdGlvbk5hbWU6b1szXXx8dm9pZCAwLGZpbGVOYW1lOm9bMl0sbGluZU51bWJlcjpvWzFdLHNvdXJjZTpyW25dfSl9cmV0dXJuIGl9LHBhcnNlT3BlcmExMTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGFjay5zcGxpdChcIlxcblwiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFlLm1hdGNoKHQpJiYhZS5tYXRjaCgvXkVycm9yIGNyZWF0ZWQgYXQvKX0sdGhpcykubWFwKGZ1bmN0aW9uKGUpe3ZhciB0LHI9ZS5zcGxpdChcIkBcIiksaT10aGlzLmV4dHJhY3RMb2NhdGlvbihyLnBvcCgpKSxuPXIuc2hpZnQoKXx8XCJcIixhPW4ucmVwbGFjZSgvPGFub255bW91cyBmdW5jdGlvbig6IChcXHcrKSk/Pi8sXCIkMlwiKS5yZXBsYWNlKC9cXChbXildKlxcKS9nLFwiXCIpfHx2b2lkIDA7cmV0dXJuIG4ubWF0Y2goL1xcKChbXildKilcXCkvKSYmKHQ9bi5yZXBsYWNlKC9eW14oXStcXCgoW14pXSopXFwpJC8sXCIkMVwiKSkse2Z1bmN0aW9uTmFtZTphLGFyZ3M6dm9pZCAwPT09dHx8XCJbYXJndW1lbnRzIG5vdCBhdmFpbGFibGVdXCI9PT10P3ZvaWQgMDp0LnNwbGl0KFwiLFwiKSxmaWxlTmFtZTppWzBdLGxpbmVOdW1iZXI6aVsxXSxjb2x1bW5OdW1iZXI6aVsyXSxzb3VyY2U6ZX19LHRoaXMpfX19bi5kZWZhdWx0Ll9nZXRFcnJvclN0YWNrUGFyc2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBhfTt2YXIgbz1uLmRlZmF1bHQ7ci5kZWZhdWx0PW99LHtcIi4uL21haW5cIjozNn1dLDMxOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07KGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm47aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1zKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybjt2YXIgdD1vKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscil9KShlKFwiLi4vY29uc3RhbnRzXCIpKSxlKFwiLi4vaW50ZXJuYXRpb25hbGl6YXRpb25cIik7ZnVuY3Rpb24gbygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIG89ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBzKGUpe3JldHVybihzPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1uLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycz1uLmRlZmF1bHQuX2NsZWFyVmFsaWRhdGVQYXJhbXNDYWNoZT1mdW5jdGlvbigpe307dmFyIGE9bi5kZWZhdWx0O3IuZGVmYXVsdD1hfSx7XCIuLi8uLi8uLi9kb2NzL3BhcmFtZXRlckRhdGEuanNvblwiOnZvaWQgMCxcIi4uL2NvbnN0YW50c1wiOjI2LFwiLi4vaW50ZXJuYXRpb25hbGl6YXRpb25cIjozNCxcIi4uL21haW5cIjozNn1dLDMyOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgYT1mdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1vKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXMoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBuIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikpe3ZhciBhPWk/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbixhKTpyW25dPWVbbl19ci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKTtyZXR1cm4gcn0oZShcIi4vY29uc3RhbnRzXCIpKTtmdW5jdGlvbiBzKCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfXZhciBpPXttb2RlQWRqdXN0OmZ1bmN0aW9uKGUsdCxyLGksbil7cmV0dXJuIG49PT1hLkNPUk5FUj97eDplLHk6dCx3OnIsaDppfTpuPT09YS5DT1JORVJTP3t4OmUseTp0LHc6ci1lLGg6aS10fTpuPT09YS5SQURJVVM/e3g6ZS1yLHk6dC1pLHc6MipyLGg6MippfTpuPT09YS5DRU5URVI/e3g6ZS0uNSpyLHk6dC0uNSppLHc6cixoOml9OnZvaWQgMH19O3IuZGVmYXVsdD1pfSx7XCIuL2NvbnN0YW50c1wiOjI2fV0sMzM6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaSxuPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtlKFwiLi9pbnRlcm5hdGlvbmFsaXphdGlvblwiKTt2YXIgYT1Qcm9taXNlLnJlc29sdmUoKTtQcm9taXNlLmFsbChbbmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtcImNvbXBsZXRlXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP2UoKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixlLCExKX0pLGFdKS50aGVuKGZ1bmN0aW9uKCl7dm9pZCAwPT09d2luZG93Ll9zZXR1cERvbmU/d2luZG93Lm1vY2hhfHwod2luZG93LnNldHVwJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuc2V0dXB8fHdpbmRvdy5kcmF3JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuZHJhdykmJiFuLmRlZmF1bHQuaW5zdGFuY2UmJm5ldyBuLmRlZmF1bHQ6Y29uc29sZS53YXJuKFwicDUuanMgc2VlbXMgdG8gaGF2ZSBiZWVuIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzLiBQbGVhc2UgcmVtb3ZlIHRoZSBkdXBsaWNhdGUgaW1wb3J0XCIpfSl9LHtcIi4uL2NvcmUvbWFpblwiOjM2LFwiLi9pbnRlcm5hdGlvbmFsaXphdGlvblwiOjM0fV0sMzQ6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmluaXRpYWxpemU9ci50cmFuc2xhdG9yPXZvaWQgMDt2YXIgYSxvLGk9cyhlKFwiaTE4bmV4dFwiKSksbj1zKGUoXCJpMThuZXh0LWJyb3dzZXItbGFuZ3VhZ2VkZXRlY3RvclwiKSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gbChlLHQpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10W3JdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19dmFyIHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxyKSx0aGlzLmluaXQoZSx0KX12YXIgZSx0LGk7cmV0dXJuIGU9ciwodD1be2tleTpcImZldGNoV2l0aFRpbWVvdXRcIix2YWx1ZTpmdW5jdGlvbihlLHQscil7dmFyIGk9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1yP3I6MmUzO3JldHVybiBQcm9taXNlLnJhY2UoW2ZldGNoKGUsdCksbmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0KG5ldyBFcnJvcihcInRpbWVvdXRcIikpfSxpKX0pXSl9fSx7a2V5OlwiaW5pdFwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT10P3Q6e307dGhpcy5zZXJ2aWNlcz1lLHRoaXMub3B0aW9ucz1yfX0se2tleTpcInJlYWRcIix2YWx1ZTpmdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcy5vcHRpb25zLmxvYWRQYXRoO2lmKGU9PT10aGlzLm9wdGlvbnMuZmFsbGJhY2spcihudWxsLGFbZV1bdF0pO2Vsc2UgaWYoby5pbmNsdWRlcyhlKSl7dmFyIG49dGhpcy5zZXJ2aWNlcy5pbnRlcnBvbGF0b3IuaW50ZXJwb2xhdGUoaSx7bG5nOmUsbnM6dH0pO3RoaXMubG9hZFVybChuLHIpfWVsc2UgcihcIk5vdCBmb3VuZFwiLCExKX19LHtrZXk6XCJsb2FkVXJsXCIsdmFsdWU6ZnVuY3Rpb24odCxyKXt0aGlzLmZldGNoV2l0aFRpbWVvdXQodCkudGhlbihmdW5jdGlvbihlKXtpZighZS5vayl0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgbG9hZGluZyBcIi5jb25jYXQodCkpO3JldHVybiBlLmpzb24oKX0sZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgbG9hZGluZyBcIi5jb25jYXQodCkpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gcihudWxsLGUpfSkuY2F0Y2gocil9fV0pJiZsKGUucHJvdG90eXBlLHQpLGkmJmwoZSxpKSxyfSgpO3UudHlwZT1cImJhY2tlbmRcIjt2YXIgaD1mdW5jdGlvbihlLHQpe2NvbnNvbGUuZGVidWcoXCJwNS5qcyB0cmFuc2xhdG9yIGNhbGxlZCBiZWZvcmUgdHJhbnNsYXRpb25zIHdlcmUgbG9hZGVkXCIpLGkuZGVmYXVsdC50KGUsdCl9O3IudHJhbnNsYXRvcj1oO3IuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiBpLmRlZmF1bHQudXNlKG4uZGVmYXVsdCkudXNlKHUpLmluaXQoe2ZhbGxiYWNrTG5nOlwiZW5cIixuZXN0aW5nUHJlZml4OlwiJHRyKFwiLG5lc3RpbmdTdWZmaXg6XCIpXCIsZGVmYXVsdE5TOlwidHJhbnNsYXRpb25cIixyZXR1cm5FbXB0eVN0cmluZzohMSxpbnRlcnBvbGF0aW9uOntlc2NhcGVWYWx1ZTohMX0sZGV0ZWN0aW9uOntjaGVja1doaXRlbGlzdDohMSxvcmRlcjpbXCJxdWVyeXN0cmluZ1wiLFwibmF2aWdhdG9yXCIsXCJodG1sVGFnXCIsXCJwYXRoXCIsXCJzdWJkb21haW5cIl0sY2FjaGVzOltdfSxiYWNrZW5kOntmYWxsYmFjazpcImVuXCIsbG9hZFBhdGg6XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3A1L3RyYW5zbGF0aW9ucy97e2xuZ319L3t7bnN9fS5qc29uXCJ9LHBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzOiEwLHJlc291cmNlczphfSkudGhlbihmdW5jdGlvbihlKXtyLnRyYW5zbGF0b3I9aD1lfSxmdW5jdGlvbihlKXtyZXR1cm4gY29uc29sZS5kZWJ1ZyhcIlRyYW5zbGF0aW9ucyBmYWlsZWQgdG8gbG9hZCAoXCIuY29uY2F0KGUsXCIpXCIpKX0pfX0se1wiLi4vLi4vdHJhbnNsYXRpb25zXCI6dm9pZCAwLFwiLi4vLi4vdHJhbnNsYXRpb25zL2RldlwiOnZvaWQgMCxpMThuZXh0OjMsXCJpMThuZXh0LWJyb3dzZXItbGFuZ3VhZ2VkZXRlY3RvclwiOjN9XSwzNTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LnByb3RvdHlwZS5wdXNoU3R5bGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJwdXNoU3R5bGUoKSBub3QgdXNlZCwgc2VlIHB1c2goKVwiKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5wb3BTdHlsZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcInBvcFN0eWxlKCkgbm90IHVzZWQsIHNlZSBwb3AoKVwiKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5wb3BNYXRyaXg9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJwb3BNYXRyaXgoKSBub3QgdXNlZCwgc2VlIHBvcCgpXCIpfSxuLmRlZmF1bHQucHJvdG90eXBlLnB1c2hNYXRyaXg9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJwdXNoTWF0cml4KCkgbm90IHVzZWQsIHNlZSBwdXNoKClcIil9O3ZhciBhPW4uZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi9tYWluXCI6MzZ9XSwzNjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDAsZShcIi4vc2hpbVwiKTt2YXIgaT1mdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1vKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXMoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBuIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikpe3ZhciBhPWk/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbixhKTpyW25dPWVbbl19ci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKTtyZXR1cm4gcn0oZShcIi4vY29uc3RhbnRzXCIpKTtmdW5jdGlvbiBzKCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfWZ1bmN0aW9uIG4oZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciBhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gXyhlLHQscil7dmFyIGY9dGhpczshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLF8pLHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzPXt0ZXh0OiExLGdyaWQ6ITEsdGV4dExhYmVsOiExLGdyaWRMYWJlbDohMX0sdGhpcy5fc2V0dXBEb25lPSExLHRoaXMuX3BpeGVsRGVuc2l0eT1NYXRoLmNlaWwod2luZG93LmRldmljZVBpeGVsUmF0aW8pfHwxLHRoaXMuX3VzZXJOb2RlPXQsdGhpcy5fY3VyRWxlbWVudD1udWxsLHRoaXMuX2VsZW1lbnRzPVtdLHRoaXMuX2dsQXR0cmlidXRlcz1udWxsLHRoaXMuX3JlcXVlc3RBbmltSWQ9MCx0aGlzLl9wcmVsb2FkQ291bnQ9MCx0aGlzLl9pc0dsb2JhbD0hMSx0aGlzLl9sb29wPSEwLHRoaXMuX2luaXRpYWxpemVJbnN0YW5jZVZhcmlhYmxlcygpLHRoaXMuX2RlZmF1bHRDYW52YXNTaXplPXt3aWR0aDoxMDAsaGVpZ2h0OjEwMH0sdGhpcy5fZXZlbnRzPXttb3VzZW1vdmU6bnVsbCxtb3VzZWRvd246bnVsbCxtb3VzZXVwOm51bGwsZHJhZ2VuZDpudWxsLGRyYWdvdmVyOm51bGwsY2xpY2s6bnVsbCxkYmxjbGljazpudWxsLG1vdXNlb3ZlcjpudWxsLG1vdXNlb3V0Om51bGwsa2V5ZG93bjpudWxsLGtleXVwOm51bGwsa2V5cHJlc3M6bnVsbCx0b3VjaHN0YXJ0Om51bGwsdG91Y2htb3ZlOm51bGwsdG91Y2hlbmQ6bnVsbCxyZXNpemU6bnVsbCxibHVyOm51bGx9LHRoaXMuX21pbGxpc1N0YXJ0PS0xLHRoaXMuX2xjZ19yYW5kb21fc3RhdGU9bnVsbCx0aGlzLl9nYXVzc2lhbl9wcmV2aW91cz0hMSx0aGlzLl9ldmVudHMud2hlZWw9bnVsbCx0aGlzLl9sb2FkaW5nU2NyZWVuSWQ9XCJwNV9sb2FkaW5nXCIsdGhpcy5fcmVnaXN0ZXJlZE1ldGhvZHM9e307dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoXy5wcm90b3R5cGUuX3JlZ2lzdGVyZWRNZXRob2RzKSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcyxsPWlbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0ocz1sLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIHU9cy52YWx1ZTt0aGlzLl9yZWdpc3RlcmVkTWV0aG9kc1t1XT1fLnByb3RvdHlwZS5fcmVnaXN0ZXJlZE1ldGhvZHNbdV0uc2xpY2UoKX19Y2F0Y2goZSl7YT0hMCxvPWV9ZmluYWxseXt0cnl7bnx8bnVsbD09bC5yZXR1cm58fGwucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IG99fXdpbmRvdy5EZXZpY2VPcmllbnRhdGlvbkV2ZW50JiYodGhpcy5fZXZlbnRzLmRldmljZW9yaWVudGF0aW9uPW51bGwpLHdpbmRvdy5EZXZpY2VNb3Rpb25FdmVudCYmIXdpbmRvdy5faXNOb2RlV2Via2l0JiYodGhpcy5fZXZlbnRzLmRldmljZW1vdGlvbj1udWxsKSx0aGlzLl9zdGFydD1mdW5jdGlvbigpe2YuX3VzZXJOb2RlJiZcInN0cmluZ1wiPT10eXBlb2YgZi5fdXNlck5vZGUmJihmLl91c2VyTm9kZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChmLl91c2VyTm9kZSkpO3ZhciBlPWYuX2lzR2xvYmFsP3dpbmRvdzpmO2lmKGUucHJlbG9hZCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZi5fbG9hZGluZ1NjcmVlbklkKTtpZighdCkodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pbm5lckhUTUw9XCJMb2FkaW5nLi4uXCIsdC5zdHlsZS5wb3NpdGlvbj1cImFic29sdXRlXCIsdC5pZD1mLl9sb2FkaW5nU2NyZWVuSWQsKGYuX3VzZXJOb2RlfHxkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh0KTt2YXIgcj1mLl9wcmVsb2FkTWV0aG9kcztmb3IodmFyIGkgaW4gcil7cltpXT1yW2ldfHxfO3ZhciBuPXJbaV07biE9PV8ucHJvdG90eXBlJiZuIT09X3x8KGYuX2lzR2xvYmFsJiYod2luZG93W2ldPWYuX3dyYXBQcmVsb2FkKGYsaSkpLG49ZiksZi5fcmVnaXN0ZXJlZFByZWxvYWRNZXRob2RzW2ldPW5baV0sbltpXT1mLl93cmFwUHJlbG9hZChuLGkpfWUucHJlbG9hZCgpLGYuX3J1bklmUHJlbG9hZHNBcmVEb25lKCl9ZWxzZSBmLl9zZXR1cCgpLGYuX2RyYXcoKX0sdGhpcy5fcnVuSWZQcmVsb2Fkc0FyZURvbmU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pc0dsb2JhbD93aW5kb3c6dGhpcztpZigwPT09ZS5fcHJlbG9hZENvdW50KXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlLl9sb2FkaW5nU2NyZWVuSWQpO3QmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0aGlzLl9zZXR1cERvbmV8fCh0aGlzLl9sYXN0RnJhbWVUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSxlLl9zZXR1cCgpLGUuX2RyYXcoKSl9fSx0aGlzLl9kZWNyZW1lbnRQcmVsb2FkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7XCJmdW5jdGlvblwiPT10eXBlb2YgZS5wcmVsb2FkJiYoZS5fc2V0UHJvcGVydHkoXCJfcHJlbG9hZENvdW50XCIsZS5fcHJlbG9hZENvdW50LTEpLGUuX3J1bklmUHJlbG9hZHNBcmVEb25lKCkpfSx0aGlzLl93cmFwUHJlbG9hZD1mdW5jdGlvbihpLG4pe3ZhciBhPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7YS5faW5jcmVtZW50UHJlbG9hZCgpO2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBhLl9yZWdpc3RlcmVkUHJlbG9hZE1ldGhvZHNbbl0uYXBwbHkoaSx0KX19LHRoaXMuX2luY3JlbWVudFByZWxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pc0dsb2JhbD93aW5kb3c6dGhpcztlLl9zZXRQcm9wZXJ0eShcIl9wcmVsb2FkQ291bnRcIixlLl9wcmVsb2FkQ291bnQrMSl9LHRoaXMuX3NldHVwPWZ1bmN0aW9uKCl7Zi5jcmVhdGVDYW52YXMoZi5fZGVmYXVsdENhbnZhc1NpemUud2lkdGgsZi5fZGVmYXVsdENhbnZhc1NpemUuaGVpZ2h0LFwicDJkXCIpO3ZhciBlPWYuX2lzR2xvYmFsP3dpbmRvdzpmO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUucHJlbG9hZClmb3IodmFyIHQgaW4gZi5fcHJlbG9hZE1ldGhvZHMpZVt0XT1mLl9wcmVsb2FkTWV0aG9kc1t0XVt0XSxlW3RdJiZmJiYoZVt0XT1lW3RdLmJpbmQoZikpO2YuX21pbGxpc1N0YXJ0PXdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnNldHVwJiZlLnNldHVwKCk7dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJjYW52YXNcIiksaT0hMCxuPSExLGE9dm9pZCAwO3RyeXtmb3IodmFyIG8scz1yW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KG89cy5uZXh0KCkpLmRvbmUpO2k9ITApe3ZhciBsPW8udmFsdWU7XCJ0cnVlXCI9PT1sLmRhdGFzZXQuaGlkZGVuJiYobC5zdHlsZS52aXNpYmlsaXR5PVwiXCIsZGVsZXRlIGwuZGF0YXNldC5oaWRkZW4pfX1jYXRjaChlKXtuPSEwLGE9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgYX19Zi5fbGFzdEZyYW1lVGltZT13aW5kb3cucGVyZm9ybWFuY2Uubm93KCksZi5fc2V0dXBEb25lPSEwLChmLl9hY2Nlc3NpYmxlT3V0cHV0cy5ncmlkfHxmLl9hY2Nlc3NpYmxlT3V0cHV0cy50ZXh0KSYmZi5fdXBkYXRlQWNjc091dHB1dCgpfSx0aGlzLl9kcmF3PWZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LnBlcmZvcm1hbmNlLm5vdygpLHQ9ZS1mLl9sYXN0RnJhbWVUaW1lLHI9MWUzL2YuX3RhcmdldEZyYW1lUmF0ZTsoIWYuX2xvb3B8fHItNTw9dCkmJihmLnJlZHJhdygpLGYuX2ZyYW1lUmF0ZT0xZTMvKGUtZi5fbGFzdEZyYW1lVGltZSksZi5kZWx0YVRpbWU9ZS1mLl9sYXN0RnJhbWVUaW1lLGYuX3NldFByb3BlcnR5KFwiZGVsdGFUaW1lXCIsZi5kZWx0YVRpbWUpLGYuX2xhc3RGcmFtZVRpbWU9ZSx2b2lkIDAhPT1mLl91cGRhdGVNb3VzZUNvb3JkcyYmKGYuX3VwZGF0ZU1vdXNlQ29vcmRzKCksZi5fc2V0UHJvcGVydHkoXCJtb3ZlZFhcIiwwKSxmLl9zZXRQcm9wZXJ0eShcIm1vdmVkWVwiLDApKSksZi5fbG9vcCYmKGYuX3JlcXVlc3RBbmltSWQ9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmLl9kcmF3KSl9LHRoaXMuX3NldFByb3BlcnR5PWZ1bmN0aW9uKGUsdCl7ZltlXT10LGYuX2lzR2xvYmFsJiYod2luZG93W2VdPXQpfSx0aGlzLnJlbW92ZT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGYuX2xvYWRpbmdTY3JlZW5JZCk7aWYoZSYmKGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxmLl9pbmNyZW1lbnRQcmVsb2FkKCkpLGYuX2N1ckVsZW1lbnQpe2Zvcih2YXIgdCBpbiBmLl9sb29wPSExLGYuX3JlcXVlc3RBbmltSWQmJndpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmLl9yZXF1ZXN0QW5pbUlkKSxmLl9ldmVudHMpd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIodCxmLl9ldmVudHNbdF0pO3ZhciByPSEwLGk9ITEsbj12b2lkIDA7dHJ5e2Zvcih2YXIgYSxvPWYuX2VsZW1lbnRzW1N5bWJvbC5pdGVyYXRvcl0oKTshKHI9KGE9by5uZXh0KCkpLmRvbmUpO3I9ITApe3ZhciBzPWEudmFsdWU7Zm9yKHZhciBsIGluIHMuZWx0JiZzLmVsdC5wYXJlbnROb2RlJiZzLmVsdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHMuZWx0KSxzLl9ldmVudHMpcy5lbHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLHMuX2V2ZW50c1tsXSl9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3J8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX12YXIgdT1mO2YuX3JlZ2lzdGVyZWRNZXRob2RzLnJlbW92ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUmJmUuY2FsbCh1KX0pfWlmKGYuX2lzR2xvYmFsKXtmb3IodmFyIGggaW4gXy5wcm90b3R5cGUpdHJ5e2RlbGV0ZSB3aW5kb3dbaF19Y2F0Y2goZSl7d2luZG93W2hdPXZvaWQgMH1mb3IodmFyIGMgaW4gZilpZihmLmhhc093blByb3BlcnR5KGMpKXRyeXtkZWxldGUgd2luZG93W2NdfWNhdGNoKGUpe3dpbmRvd1tjXT12b2lkIDB9Xy5pbnN0YW5jZT1udWxsfX0sdGhpcy5fcmVnaXN0ZXJlZE1ldGhvZHMuaW5pdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUmJmUuY2FsbCh0aGlzKX0sdGhpcyksdGhpcy5fc2V0dXBQcm9taXNlUHJlbG9hZHMoKTt2YXIgaD10aGlzLl9jcmVhdGVGcmllbmRseUdsb2JhbEZ1bmN0aW9uQmluZGVyKCk7aWYoZSllKHRoaXMpLF8uX2NoZWNrRm9yVXNlckRlZmluZWRGdW5jdGlvbnModGhpcyk7ZWxzZXtmb3IodmFyIGMgaW4gdGhpcy5faXNHbG9iYWw9ITAsXy5pbnN0YW5jZT10aGlzLF8ucHJvdG90eXBlKWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIF8ucHJvdG90eXBlW2NdKXt2YXIgZD1jLnN1YnN0cmluZygyKTt0aGlzLl9ldmVudHMuaGFzT3duUHJvcGVydHkoZCl8fChNYXRoLmhhc093blByb3BlcnR5KGMpJiZNYXRoW2NdPT09Xy5wcm90b3R5cGVbY10/aChjLF8ucHJvdG90eXBlW2NdKTpoKGMsXy5wcm90b3R5cGVbY10uYmluZCh0aGlzKSkpfWVsc2UgaChjLF8ucHJvdG90eXBlW2NdKTtmb3IodmFyIHAgaW4gdGhpcyl0aGlzLmhhc093blByb3BlcnR5KHApJiZoKHAsdGhpc1twXSl9Zm9yKHZhciBtIGluIHRoaXMuX2V2ZW50cyl7dmFyIHY9dGhpc1tcIl9vblwiLmNvbmNhdChtKV07aWYodil7dmFyIHk9di5iaW5kKHRoaXMpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKG0seSx7cGFzc2l2ZTohMX0pLHRoaXMuX2V2ZW50c1ttXT15fX1mdW5jdGlvbiBnKCl7Zi5fc2V0UHJvcGVydHkoXCJmb2N1c2VkXCIsITApfWZ1bmN0aW9uIGIoKXtmLl9zZXRQcm9wZXJ0eShcImZvY3VzZWRcIiwhMSl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLGcpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLGIpLHRoaXMucmVnaXN0ZXJNZXRob2QoXCJyZW1vdmVcIixmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIixnKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIixiKX0pLFwiY29tcGxldGVcIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/dGhpcy5fc3RhcnQoKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIix0aGlzLl9zdGFydC5iaW5kKHRoaXMpLCExKX12YXIgZSx0LHI7cmV0dXJuIGU9XywodD1be2tleTpcIl9pbml0aWFsaXplSW5zdGFuY2VWYXJpYWJsZXNcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3N0eWxlcz1bXSx0aGlzLl9iZXppZXJEZXRhaWw9MjAsdGhpcy5fY3VydmVEZXRhaWw9MjAsdGhpcy5fY29sb3JNb2RlPWkuUkdCLHRoaXMuX2NvbG9yTWF4ZXM9e3JnYjpbMjU1LDI1NSwyNTUsMjU1XSxoc2I6WzM2MCwxMDAsMTAwLDFdLGhzbDpbMzYwLDEwMCwxMDAsMV19LHRoaXMuX2Rvd25LZXlzPXt9fX0se2tleTpcInJlZ2lzdGVyUHJlbG9hZE1ldGhvZFwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Xy5wcm90b3R5cGUuX3ByZWxvYWRNZXRob2RzLmhhc093blByb3BlcnR5KGUpfHwoXy5wcm90b3R5cGUuX3ByZWxvYWRNZXRob2RzW2VdPXQpfX0se2tleTpcInJlZ2lzdGVyTWV0aG9kXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzfHxfLnByb3RvdHlwZTtyLl9yZWdpc3RlcmVkTWV0aG9kcy5oYXNPd25Qcm9wZXJ0eShlKXx8KHIuX3JlZ2lzdGVyZWRNZXRob2RzW2VdPVtdKSxyLl9yZWdpc3RlcmVkTWV0aG9kc1tlXS5wdXNoKHQpfX0se2tleTpcIl9jcmVhdGVGcmllbmRseUdsb2JhbEZ1bmN0aW9uQmluZGVyXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lP2U6e30scj10Lmdsb2JhbE9iamVjdHx8d2luZG93O3QubG9nfHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3JldHVybiBmdW5jdGlvbihlLHQpe3JbZV09dH19fV0pJiZuKGUucHJvdG90eXBlLHQpLHImJm4oZSxyKSxffSgpO2Zvcih2YXIgbCBpbiBhLmluc3RhbmNlPW51bGwsYS5kaXNhYmxlRnJpZW5kbHlFcnJvcnM9ITEsaSlhLnByb3RvdHlwZVtsXT1pW2xdO2EucHJvdG90eXBlLl9wcmVsb2FkTWV0aG9kcz17bG9hZEpTT046YS5wcm90b3R5cGUsbG9hZEltYWdlOmEucHJvdG90eXBlLGxvYWRTdHJpbmdzOmEucHJvdG90eXBlLGxvYWRYTUw6YS5wcm90b3R5cGUsbG9hZEJ5dGVzOmEucHJvdG90eXBlLGxvYWRUYWJsZTphLnByb3RvdHlwZSxsb2FkRm9udDphLnByb3RvdHlwZSxsb2FkTW9kZWw6YS5wcm90b3R5cGUsbG9hZFNoYWRlcjphLnByb3RvdHlwZX0sYS5wcm90b3R5cGUuX3JlZ2lzdGVyZWRNZXRob2RzPXtpbml0OltdLHByZTpbXSxwb3N0OltdLHJlbW92ZTpbXX0sYS5wcm90b3R5cGUuX3JlZ2lzdGVyZWRQcmVsb2FkTWV0aG9kcz17fTt2YXIgdT1hO3IuZGVmYXVsdD11fSx7XCIuL2NvbnN0YW50c1wiOjI2LFwiLi9zaGltXCI6NDd9XSwzNzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LkVsZW1lbnQ9ZnVuY3Rpb24oZSx0KXt0aGlzLmVsdD1lLHRoaXMuX3BJbnN0PXRoaXMuX3BpeGVsc1N0YXRlPXQsdGhpcy5fZXZlbnRzPXt9LHRoaXMud2lkdGg9dGhpcy5lbHQub2Zmc2V0V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy5lbHQub2Zmc2V0SGVpZ2h0fSxuLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUucGFyZW50PWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP3RoaXMuZWx0LnBhcmVudE5vZGU6KFwic3RyaW5nXCI9PXR5cGVvZiBlPyhcIiNcIj09PWVbMF0mJihlPWUuc3Vic3RyaW5nKDEpKSxlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKTplIGluc3RhbmNlb2Ygbi5kZWZhdWx0LkVsZW1lbnQmJihlPWUuZWx0KSxlLmFwcGVuZENoaWxkKHRoaXMuZWx0KSx0aGlzKX0sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLmlkPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP3RoaXMuZWx0LmlkOih0aGlzLmVsdC5pZD1lLHRoaXMud2lkdGg9dGhpcy5lbHQub2Zmc2V0V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy5lbHQub2Zmc2V0SGVpZ2h0LHRoaXMpfSxuLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuY2xhc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5lbHQuY2xhc3NOYW1lOih0aGlzLmVsdC5jbGFzc05hbWU9ZSx0aGlzKX0sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLm1vdXNlUHJlc3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbi5kZWZhdWx0LkVsZW1lbnQuX2FkanVzdExpc3RlbmVyKFwibW91c2Vkb3duXCIsZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BJbnN0Ll9zZXRQcm9wZXJ0eShcIm1vdXNlSXNQcmVzc2VkXCIsITApLHRoaXMuX3BJbnN0Ll9zZXRNb3VzZUJ1dHRvbihlKSx0LmNhbGwodGhpcyl9LHRoaXMpLHRoaXN9LG4uZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5kb3VibGVDbGlja2VkPWZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuRWxlbWVudC5fYWRqdXN0TGlzdGVuZXIoXCJkYmxjbGlja1wiLGUsdGhpcyksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLm1vdXNlV2hlZWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcihcIndoZWVsXCIsZSx0aGlzKSx0aGlzfSxuLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUubW91c2VSZWxlYXNlZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LkVsZW1lbnQuX2FkanVzdExpc3RlbmVyKFwibW91c2V1cFwiLGUsdGhpcyksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLm1vdXNlQ2xpY2tlZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LkVsZW1lbnQuX2FkanVzdExpc3RlbmVyKFwiY2xpY2tcIixlLHRoaXMpLHRoaXN9LG4uZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5tb3VzZU1vdmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuRWxlbWVudC5fYWRqdXN0TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixlLHRoaXMpLHRoaXN9LG4uZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5tb3VzZU92ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLGUsdGhpcyksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLm1vdXNlT3V0PWZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuRWxlbWVudC5fYWRqdXN0TGlzdGVuZXIoXCJtb3VzZW91dFwiLGUsdGhpcyksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnRvdWNoU3RhcnRlZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LkVsZW1lbnQuX2FkanVzdExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGUsdGhpcyksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnRvdWNoTW92ZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcihcInRvdWNobW92ZVwiLGUsdGhpcyksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnRvdWNoRW5kZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcihcInRvdWNoZW5kXCIsZSx0aGlzKSx0aGlzfSxuLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuZHJhZ092ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcihcImRyYWdvdmVyXCIsZSx0aGlzKSx0aGlzfSxuLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuZHJhZ0xlYXZlPWZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuRWxlbWVudC5fYWRqdXN0TGlzdGVuZXIoXCJkcmFnbGVhdmVcIixlLHRoaXMpLHRoaXN9LG4uZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcj1mdW5jdGlvbihlLHQscil7cmV0dXJuITE9PT10P24uZGVmYXVsdC5FbGVtZW50Ll9kZXRhY2hMaXN0ZW5lcihlLHIpOm4uZGVmYXVsdC5FbGVtZW50Ll9hdHRhY2hMaXN0ZW5lcihlLHQsciksdGhpc30sbi5kZWZhdWx0LkVsZW1lbnQuX2F0dGFjaExpc3RlbmVyPWZ1bmN0aW9uKGUsdCxyKXtyLl9ldmVudHNbZV0mJm4uZGVmYXVsdC5FbGVtZW50Ll9kZXRhY2hMaXN0ZW5lcihlLHIpO3ZhciBpPXQuYmluZChyKTtyLmVsdC5hZGRFdmVudExpc3RlbmVyKGUsaSwhMSksci5fZXZlbnRzW2VdPWl9LG4uZGVmYXVsdC5FbGVtZW50Ll9kZXRhY2hMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3ZhciByPXQuX2V2ZW50c1tlXTt0LmVsdC5yZW1vdmVFdmVudExpc3RlbmVyKGUsciwhMSksdC5fZXZlbnRzW2VdPW51bGx9LG4uZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5fc2V0UHJvcGVydHk9ZnVuY3Rpb24oZSx0KXt0aGlzW2VdPXR9O3ZhciBhPW4uZGVmYXVsdC5FbGVtZW50O3IuZGVmYXVsdD1hfSx7XCIuL21haW5cIjozNn1dLDM4OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxzPShpPWUoXCIuL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxsPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9dSgpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHUoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiB1PWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9cy5kZWZhdWx0LkdyYXBoaWNzPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPXJ8fGwuUDJEO3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7dmFyIGE9aS5fdXNlck5vZGV8fGRvY3VtZW50LmJvZHk7Zm9yKHZhciBvIGluIGEuYXBwZW5kQ2hpbGQodGhpcy5jYW52YXMpLHMuZGVmYXVsdC5FbGVtZW50LmNhbGwodGhpcyx0aGlzLmNhbnZhcyxpKSxzLmRlZmF1bHQucHJvdG90eXBlKXRoaXNbb118fChcImZ1bmN0aW9uXCI9PXR5cGVvZiBzLmRlZmF1bHQucHJvdG90eXBlW29dP3RoaXNbb109cy5kZWZhdWx0LnByb3RvdHlwZVtvXS5iaW5kKHRoaXMpOnRoaXNbb109cy5kZWZhdWx0LnByb3RvdHlwZVtvXSk7cmV0dXJuIHMuZGVmYXVsdC5wcm90b3R5cGUuX2luaXRpYWxpemVJbnN0YW5jZVZhcmlhYmxlcy5hcHBseSh0aGlzKSx0aGlzLndpZHRoPWUsdGhpcy5oZWlnaHQ9dCx0aGlzLl9waXhlbERlbnNpdHk9aS5fcGl4ZWxEZW5zaXR5LG49PT1sLldFQkdMP3RoaXMuX3JlbmRlcmVyPW5ldyBzLmRlZmF1bHQuUmVuZGVyZXJHTCh0aGlzLmNhbnZhcyx0aGlzLCExKTp0aGlzLl9yZW5kZXJlcj1uZXcgcy5kZWZhdWx0LlJlbmRlcmVyMkQodGhpcy5jYW52YXMsdGhpcywhMSksaS5fZWxlbWVudHMucHVzaCh0aGlzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImRlbHRhVGltZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcEluc3QuZGVsdGFUaW1lfX0pLHRoaXMuX3JlbmRlcmVyLnJlc2l6ZShlLHQpLHRoaXMuX3JlbmRlcmVyLl9hcHBseURlZmF1bHRzKCksdGhpc30scy5kZWZhdWx0LkdyYXBoaWNzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHMuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZSkscy5kZWZhdWx0LkdyYXBoaWNzLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3JlbmRlcmVyLnJlc2V0TWF0cml4KCksdGhpcy5fcmVuZGVyZXIuaXNQM0QmJnRoaXMuX3JlbmRlcmVyLl91cGRhdGUoKX0scy5kZWZhdWx0LkdyYXBoaWNzLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmVsdC5wYXJlbnROb2RlJiZ0aGlzLmVsdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWx0KTt2YXIgZT10aGlzLl9wSW5zdC5fZWxlbWVudHMuaW5kZXhPZih0aGlzKTtmb3IodmFyIHQgaW4tMSE9PWUmJnRoaXMuX3BJbnN0Ll9lbGVtZW50cy5zcGxpY2UoZSwxKSx0aGlzLl9ldmVudHMpdGhpcy5lbHQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHRoaXMuX2V2ZW50c1t0XSl9O3ZhciBuPXMuZGVmYXVsdC5HcmFwaGljcztyLmRlZmF1bHQ9bn0se1wiLi9jb25zdGFudHNcIjoyNixcIi4vbWFpblwiOjM2fV0sMzk6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLGw9KGk9ZShcIi4vbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LFQ9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09cyhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1vKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gbygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIG89ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBzKGUpe3JldHVybihzPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1mdW5jdGlvbiB1KGUpe3ZhciB0PTAscj0wO2lmKGUub2Zmc2V0UGFyZW50KWZvcig7dCs9ZS5vZmZzZXRMZWZ0LHIrPWUub2Zmc2V0VG9wLGU9ZS5vZmZzZXRQYXJlbnQ7KTtlbHNlIHQrPWUub2Zmc2V0TGVmdCxyKz1lLm9mZnNldFRvcDtyZXR1cm5bdCxyXX1sLmRlZmF1bHQuUmVuZGVyZXI9ZnVuY3Rpb24oZSx0LHIpe2wuZGVmYXVsdC5FbGVtZW50LmNhbGwodGhpcyxlLHQpLHRoaXMuY2FudmFzPWUsdGhpcy5fcGl4ZWxzU3RhdGU9dCxyPyh0aGlzLl9pc01haW5DYW52YXM9ITAsdGhpcy5fcEluc3QuX3NldFByb3BlcnR5KFwiX2N1ckVsZW1lbnRcIix0aGlzKSx0aGlzLl9wSW5zdC5fc2V0UHJvcGVydHkoXCJjYW52YXNcIix0aGlzLmNhbnZhcyksdGhpcy5fcEluc3QuX3NldFByb3BlcnR5KFwid2lkdGhcIix0aGlzLndpZHRoKSx0aGlzLl9wSW5zdC5fc2V0UHJvcGVydHkoXCJoZWlnaHRcIix0aGlzLmhlaWdodCkpOih0aGlzLmNhbnZhcy5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHRoaXMuX3N0eWxlcz1bXSksdGhpcy5fdGV4dFNpemU9MTIsdGhpcy5fdGV4dExlYWRpbmc9MTUsdGhpcy5fdGV4dEZvbnQ9XCJzYW5zLXNlcmlmXCIsdGhpcy5fdGV4dFN0eWxlPVQuTk9STUFMLHRoaXMuX3RleHRBc2NlbnQ9bnVsbCx0aGlzLl90ZXh0RGVzY2VudD1udWxsLHRoaXMuX3RleHRBbGlnbj1ULkxFRlQsdGhpcy5fdGV4dEJhc2VsaW5lPVQuQkFTRUxJTkUsdGhpcy5fcmVjdE1vZGU9VC5DT1JORVIsdGhpcy5fZWxsaXBzZU1vZGU9VC5DRU5URVIsdGhpcy5fY3VydmVUaWdodG5lc3M9MCx0aGlzLl9pbWFnZU1vZGU9VC5DT1JORVIsdGhpcy5fdGludD1udWxsLHRoaXMuX2RvU3Ryb2tlPSEwLHRoaXMuX2RvRmlsbD0hMCx0aGlzLl9zdHJva2VTZXQ9ITEsdGhpcy5fZmlsbFNldD0hMX0sbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGwuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZSksbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJue3Byb3BlcnRpZXM6e19kb1N0cm9rZTp0aGlzLl9kb1N0cm9rZSxfc3Ryb2tlU2V0OnRoaXMuX3N0cm9rZVNldCxfZG9GaWxsOnRoaXMuX2RvRmlsbCxfZmlsbFNldDp0aGlzLl9maWxsU2V0LF90aW50OnRoaXMuX3RpbnQsX2ltYWdlTW9kZTp0aGlzLl9pbWFnZU1vZGUsX3JlY3RNb2RlOnRoaXMuX3JlY3RNb2RlLF9lbGxpcHNlTW9kZTp0aGlzLl9lbGxpcHNlTW9kZSxfdGV4dEZvbnQ6dGhpcy5fdGV4dEZvbnQsX3RleHRMZWFkaW5nOnRoaXMuX3RleHRMZWFkaW5nLF90ZXh0U2l6ZTp0aGlzLl90ZXh0U2l6ZSxfdGV4dEFsaWduOnRoaXMuX3RleHRBbGlnbixfdGV4dEJhc2VsaW5lOnRoaXMuX3RleHRCYXNlbGluZSxfdGV4dFN0eWxlOnRoaXMuX3RleHRTdHlsZX19fSxsLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnBvcD1mdW5jdGlvbihlKXtlLnByb3BlcnRpZXMmJk9iamVjdC5hc3NpZ24odGhpcyxlLnByb3BlcnRpZXMpfSxsLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHQpe3RoaXMud2lkdGg9ZSx0aGlzLmhlaWdodD10LHRoaXMuZWx0LndpZHRoPWUqdGhpcy5fcEluc3QuX3BpeGVsRGVuc2l0eSx0aGlzLmVsdC5oZWlnaHQ9dCp0aGlzLl9wSW5zdC5fcGl4ZWxEZW5zaXR5LHRoaXMuZWx0LnN0eWxlLndpZHRoPVwiXCIuY29uY2F0KGUsXCJweFwiKSx0aGlzLmVsdC5zdHlsZS5oZWlnaHQ9XCJcIi5jb25jYXQodCxcInB4XCIpLHRoaXMuX2lzTWFpbkNhbnZhcyYmKHRoaXMuX3BJbnN0Ll9zZXRQcm9wZXJ0eShcIndpZHRoXCIsdGhpcy53aWR0aCksdGhpcy5fcEluc3QuX3NldFByb3BlcnR5KFwiaGVpZ2h0XCIsdGhpcy5oZWlnaHQpKX0sbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG49dGhpcy5fcGl4ZWxzU3RhdGUsYT1uLl9waXhlbERlbnNpdHksbz10aGlzLmNhbnZhcztpZih2b2lkIDA9PT1lJiZ2b2lkIDA9PT10KWU9dD0wLHI9bi53aWR0aCxpPW4uaGVpZ2h0O2Vsc2UgaWYoZSo9YSx0Kj1hLHZvaWQgMD09PXImJnZvaWQgMD09PWkpcmV0dXJuIGU8MHx8dDwwfHxlPj1vLndpZHRofHx0Pj1vLmhlaWdodD9bMCwwLDAsMF06dGhpcy5fZ2V0UGl4ZWwoZSx0KTt2YXIgcz1uZXcgbC5kZWZhdWx0LkltYWdlKHIsaSk7cmV0dXJuIHMuY2FudmFzLmdldENvbnRleHQoXCIyZFwiKS5kcmF3SW1hZ2UobyxlLHQsciphLGkqYSwwLDAscixpKSxzfSxsLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnRleHRMZWFkaW5nPWZ1bmN0aW9uKGUpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBlPyh0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0TGVhZGluZ1wiLGUpLHRoaXMuX3BJbnN0KTp0aGlzLl90ZXh0TGVhZGluZ30sbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS50ZXh0U2l6ZT1mdW5jdGlvbihlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZT8odGhpcy5fc2V0UHJvcGVydHkoXCJfdGV4dFNpemVcIixlKSx0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0TGVhZGluZ1wiLGUqVC5fREVGQVVMVF9MRUFETVVMVCksdGhpcy5fYXBwbHlUZXh0UHJvcGVydGllcygpKTp0aGlzLl90ZXh0U2l6ZX0sbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS50ZXh0U3R5bGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/KGUhPT1ULk5PUk1BTCYmZSE9PVQuSVRBTElDJiZlIT09VC5CT0xEJiZlIT09VC5CT0xESVRBTElDfHx0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0U3R5bGVcIixlKSx0aGlzLl9hcHBseVRleHRQcm9wZXJ0aWVzKCkpOnRoaXMuX3RleHRTdHlsZX0sbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS50ZXh0QXNjZW50PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10aGlzLl90ZXh0QXNjZW50JiZ0aGlzLl91cGRhdGVUZXh0TWV0cmljcygpLHRoaXMuX3RleHRBc2NlbnR9LGwuZGVmYXVsdC5SZW5kZXJlci5wcm90b3R5cGUudGV4dERlc2NlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXRoaXMuX3RleHREZXNjZW50JiZ0aGlzLl91cGRhdGVUZXh0TWV0cmljcygpLHRoaXMuX3RleHREZXNjZW50fSxsLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnRleHRBbGlnbj1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDAhPT1lPyh0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0QWxpZ25cIixlKSx2b2lkIDAhPT10JiZ0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0QmFzZWxpbmVcIix0KSx0aGlzLl9hcHBseVRleHRQcm9wZXJ0aWVzKCkpOntob3Jpem9udGFsOnRoaXMuX3RleHRBbGlnbix2ZXJ0aWNhbDp0aGlzLl90ZXh0QmFzZWxpbmV9fSxsLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZSx0LHIsaSxuKXt2YXIgYSxvLHMsbCx1LGgsYyxmLGQscD10aGlzLl9wSW5zdCxtPU51bWJlci5NQVhfVkFMVUU7aWYoKHRoaXMuX2RvRmlsbHx8dGhpcy5fZG9TdHJva2UpJiZ2b2lkIDAhPT1lKXtpZihcInN0cmluZ1wiIT10eXBlb2YgZSYmKGU9ZS50b1N0cmluZygpKSxhPShlPWUucmVwbGFjZSgvKFxcdCkvZyxcIiAgXCIpKS5zcGxpdChcIlxcblwiKSx2b2lkIDAhPT1pKXtmb3Iocz1mPTA7czxhLmxlbmd0aDtzKyspe2Zvcih1PVwiXCIsYz1hW3NdLnNwbGl0KFwiIFwiKSxvPTA7bzxjLmxlbmd0aDtvKyspaWYoaD1cIlwiLmNvbmNhdCh1K2Nbb10sXCIgXCIpLGk8dGhpcy50ZXh0V2lkdGgoaCkpe2Zvcih2YXIgdj1jW29dLHk9MDt5PHYubGVuZ3RoO3krKyloPVwiXCIuY29uY2F0KHUrdlt5XSksaTx0aGlzLnRleHRXaWR0aChoKSYmMDx1Lmxlbmd0aD8odT1cIlwiLmNvbmNhdCh2W3ldKSxmKz1wLnRleHRMZWFkaW5nKCkpOnU9aDt1PVwiXCIuY29uY2F0KHUsXCIgXCIpfWVsc2UgdT1oO3M8YS5sZW5ndGgtMSYmKGYrPXAudGV4dExlYWRpbmcoKSl9c3dpdGNoKHRoaXMuX3JlY3RNb2RlPT09VC5DRU5URVImJih0LT1pLzIsci09bi8yKSx0aGlzLl90ZXh0QWxpZ24pe2Nhc2UgVC5DRU5URVI6dCs9aS8yO2JyZWFrO2Nhc2UgVC5SSUdIVDp0Kz1pfXZhciBnPSExO2lmKHZvaWQgMCE9PW4pe3N3aXRjaCh0aGlzLl90ZXh0QmFzZWxpbmUpe2Nhc2UgVC5CT1RUT006ZD1yKyhuLWYpLHI9TWF0aC5tYXgoZCxyKTticmVhaztjYXNlIFQuQ0VOVEVSOmQ9cisobi1mKS8yLHI9TWF0aC5tYXgoZCxyKTticmVhaztjYXNlIFQuQkFTRUxJTkU6Zz0hMCx0aGlzLl90ZXh0QmFzZWxpbmU9VC5UT1B9bT1yK24tcC50ZXh0QXNjZW50KCl9Zm9yKHM9MDtzPGEubGVuZ3RoO3MrKyl7Zm9yKHU9XCJcIixjPWFbc10uc3BsaXQoXCIgXCIpLG89MDtvPGMubGVuZ3RoO28rKylpZihoPVwiXCIuY29uY2F0KHUrY1tvXSxcIiBcIiksaTx0aGlzLnRleHRXaWR0aChoKSl7Zm9yKHZhciBiPWNbb10sXz0wO188Yi5sZW5ndGg7XysrKWlmKGg9XCJcIi5jb25jYXQodStiW19dKSxpPHRoaXMudGV4dFdpZHRoKGgpJiYwPHUubGVuZ3RoKXt2YXIgeD11LnNsaWNlKC0xKSx3PVwiXFxuXCIhPT14JiZcIiBcIiE9PXg7dT1cIlwiLmNvbmNhdCh1KS5jb25jYXQodz9cIi1cIjpcIlwiKSx0aGlzLl9yZW5kZXJUZXh0KHAsdSx0LHIsbSkscis9cC50ZXh0TGVhZGluZygpLHU9XCJcIi5jb25jYXQoYltfXSl9ZWxzZSB1PWg7dT1cIlwiLmNvbmNhdCh1LFwiIFwiKX1lbHNlIHU9aDt0aGlzLl9yZW5kZXJUZXh0KHAsdSx0LHIsbSkscis9cC50ZXh0TGVhZGluZygpLGcmJih0aGlzLl90ZXh0QmFzZWxpbmU9VC5CQVNFTElORSl9fWVsc2V7dmFyIFM9MCxNPXAudGV4dEFsaWduKCkudmVydGljYWw7Zm9yKE09PT1ULkNFTlRFUj9TPShhLmxlbmd0aC0xKSpwLnRleHRMZWFkaW5nKCkvMjpNPT09VC5CT1RUT00mJihTPShhLmxlbmd0aC0xKSpwLnRleHRMZWFkaW5nKCkpLGw9MDtsPGEubGVuZ3RoO2wrKyl0aGlzLl9yZW5kZXJUZXh0KHAsYVtsXSx0LHItUyxtKSxyKz1wLnRleHRMZWFkaW5nKCl9cmV0dXJuIHB9fSxsLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLl9hcHBseURlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGwuZGVmYXVsdC5SZW5kZXJlci5wcm90b3R5cGUuX2lzT3BlblR5cGU9ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fdGV4dEZvbnQ7cmV0dXJuXCJvYmplY3RcIj09PXMoZSkmJmUuZm9udCYmZS5mb250LnN1cHBvcnRlZH0sbC5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS5fdXBkYXRlVGV4dE1ldHJpY3M9ZnVuY3Rpb24oKXtpZih0aGlzLl9pc09wZW5UeXBlKCkpcmV0dXJuIHRoaXMuX3NldFByb3BlcnR5KFwiX3RleHRBc2NlbnRcIix0aGlzLl90ZXh0Rm9udC5fdGV4dEFzY2VudCgpKSx0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0RGVzY2VudFwiLHRoaXMuX3RleHRGb250Ll90ZXh0RGVzY2VudCgpKSx0aGlzO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO2Uuc3R5bGUuZm9udEZhbWlseT10aGlzLl90ZXh0Rm9udCxlLnN0eWxlLmZvbnRTaXplPVwiXCIuY29uY2F0KHRoaXMuX3RleHRTaXplLFwicHhcIiksZS5pbm5lckhUTUw9XCJBQkNqZ3F8XCI7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt0LnN0eWxlLmRpc3BsYXk9XCJpbmxpbmUtYmxvY2tcIix0LnN0eWxlLndpZHRoPVwiMXB4XCIsdC5zdHlsZS5oZWlnaHQ9XCIwcHhcIjt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3IuYXBwZW5kQ2hpbGQoZSksci5hcHBlbmRDaGlsZCh0KSxyLnN0eWxlLmhlaWdodD1cIjBweFwiLHIuc3R5bGUub3ZlcmZsb3c9XCJoaWRkZW5cIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpLHQuc3R5bGUudmVydGljYWxBbGlnbj1cImJhc2VsaW5lXCI7dmFyIGk9dSh0KSxuPXUoZSksYT1pWzFdLW5bMV07dC5zdHlsZS52ZXJ0aWNhbEFsaWduPVwiYm90dG9tXCIsaT11KHQpLG49dShlKTt2YXIgbz1pWzFdLW5bMV0tYTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyKSx0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0QXNjZW50XCIsYSksdGhpcy5fc2V0UHJvcGVydHkoXCJfdGV4dERlc2NlbnRcIixvKSx0aGlzfTt2YXIgbj1sLmRlZmF1bHQuUmVuZGVyZXI7ci5kZWZhdWx0PW59LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuL21haW5cIjozNn1dLDQwOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgYz1pKGUoXCIuL21haW5cIikpLHA9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuL2NvbnN0YW50c1wiKSksZj1pKGUoXCIuLi9pbWFnZS9maWx0ZXJzXCIpKTtmdW5jdGlvbiBzKCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUoXCIuL3A1LlJlbmRlcmVyXCIpO3ZhciB2PVwicmdiYSgwLDAsMCwwKVwiO2MuZGVmYXVsdC5SZW5kZXJlcjJEPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gYy5kZWZhdWx0LlJlbmRlcmVyLmNhbGwodGhpcyxlLHQsciksdGhpcy5kcmF3aW5nQ29udGV4dD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIiksdGhpcy5fcEluc3QuX3NldFByb3BlcnR5KFwiZHJhd2luZ0NvbnRleHRcIix0aGlzLmRyYXdpbmdDb250ZXh0KSx0aGlzfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShjLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlKSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuX2FwcGx5RGVmYXVsdHM9ZnVuY3Rpb24oKXt0aGlzLl9jYWNoZWRGaWxsU3R5bGU9dGhpcy5fY2FjaGVkU3Ryb2tlU3R5bGU9dm9pZCAwLHRoaXMuX2NhY2hlZEJsZW5kTW9kZT1wLkJMRU5ELHRoaXMuX3NldEZpbGwocC5fREVGQVVMVF9GSUxMKSx0aGlzLl9zZXRTdHJva2UocC5fREVGQVVMVF9TVFJPS0UpLHRoaXMuZHJhd2luZ0NvbnRleHQubGluZUNhcD1wLlJPVU5ELHRoaXMuZHJhd2luZ0NvbnRleHQuZm9udD1cIm5vcm1hbCAxMnB4IHNhbnMtc2VyaWZcIn0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHQpe2MuZGVmYXVsdC5SZW5kZXJlci5wcm90b3R5cGUucmVzaXplLmNhbGwodGhpcyxlLHQpLHRoaXMuZHJhd2luZ0NvbnRleHQuc2NhbGUodGhpcy5fcEluc3QuX3BpeGVsRGVuc2l0eSx0aGlzLl9wSW5zdC5fcGl4ZWxEZW5zaXR5KX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLmJhY2tncm91bmQ9ZnVuY3Rpb24oKXtpZih0aGlzLmRyYXdpbmdDb250ZXh0LnNhdmUoKSx0aGlzLnJlc2V0TWF0cml4KCksKGFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXSlpbnN0YW5jZW9mIGMuZGVmYXVsdC5JbWFnZSl0aGlzLl9wSW5zdC5pbWFnZShhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0sMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpO2Vsc2V7dmFyIGUsdD10aGlzLl9nZXRGaWxsKCkscj0oZT10aGlzLl9wSW5zdCkuY29sb3IuYXBwbHkoZSxhcmd1bWVudHMpO3RoaXMuX3BJbnN0Ll9hZGRBY2NzT3V0cHV0KCkmJnRoaXMuX3BJbnN0Ll9hY2NzQmFja2dyb3VuZChyLmxldmVscyk7dmFyIGk9ci50b1N0cmluZygpO3RoaXMuX3NldEZpbGwoaSksdGhpcy5faXNFcmFzaW5nJiZ0aGlzLmJsZW5kTW9kZSh0aGlzLl9jYWNoZWRCbGVuZE1vZGUpLHRoaXMuZHJhd2luZ0NvbnRleHQuZmlsbFJlY3QoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuX3NldEZpbGwodCksdGhpcy5faXNFcmFzaW5nJiZ0aGlzLl9wSW5zdC5lcmFzZSgpfXRoaXMuZHJhd2luZ0NvbnRleHQucmVzdG9yZSgpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmRyYXdpbmdDb250ZXh0LnNhdmUoKSx0aGlzLnJlc2V0TWF0cml4KCksdGhpcy5kcmF3aW5nQ29udGV4dC5jbGVhclJlY3QoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLHRoaXMuZHJhd2luZ0NvbnRleHQucmVzdG9yZSgpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbigpe3ZhciBlLHQ9KGU9dGhpcy5fcEluc3QpLmNvbG9yLmFwcGx5KGUsYXJndW1lbnRzKTt0aGlzLl9zZXRGaWxsKHQudG9TdHJpbmcoKSksdGhpcy5fcEluc3QuX2FkZEFjY3NPdXRwdXQoKSYmdGhpcy5fcEluc3QuX2FjY3NDYW52YXNDb2xvcnMoXCJmaWxsXCIsdC5sZXZlbHMpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuc3Ryb2tlPWZ1bmN0aW9uKCl7dmFyIGUsdD0oZT10aGlzLl9wSW5zdCkuY29sb3IuYXBwbHkoZSxhcmd1bWVudHMpO3RoaXMuX3NldFN0cm9rZSh0LnRvU3RyaW5nKCkpLHRoaXMuX3BJbnN0Ll9hZGRBY2NzT3V0cHV0KCkmJnRoaXMuX3BJbnN0Ll9hY2NzQ2FudmFzQ29sb3JzKFwic3Ryb2tlXCIsdC5sZXZlbHMpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuZXJhc2U9ZnVuY3Rpb24oZSx0KXtpZighdGhpcy5faXNFcmFzaW5nKXt0aGlzLl9jYWNoZWRGaWxsU3R5bGU9dGhpcy5kcmF3aW5nQ29udGV4dC5maWxsU3R5bGU7dmFyIHI9dGhpcy5fcEluc3QuY29sb3IoMjU1LGUpLnRvU3RyaW5nKCk7dGhpcy5kcmF3aW5nQ29udGV4dC5maWxsU3R5bGU9cix0aGlzLl9jYWNoZWRTdHJva2VTdHlsZT10aGlzLmRyYXdpbmdDb250ZXh0LnN0cm9rZVN0eWxlO3ZhciBpPXRoaXMuX3BJbnN0LmNvbG9yKDI1NSx0KS50b1N0cmluZygpO3RoaXMuZHJhd2luZ0NvbnRleHQuc3Ryb2tlU3R5bGU9aTt2YXIgbj10aGlzLl9jYWNoZWRCbGVuZE1vZGU7dGhpcy5ibGVuZE1vZGUocC5SRU1PVkUpLHRoaXMuX2NhY2hlZEJsZW5kTW9kZT1uLHRoaXMuX2lzRXJhc2luZz0hMH19LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5ub0VyYXNlPWZ1bmN0aW9uKCl7dGhpcy5faXNFcmFzaW5nJiYodGhpcy5kcmF3aW5nQ29udGV4dC5maWxsU3R5bGU9dGhpcy5fY2FjaGVkRmlsbFN0eWxlLHRoaXMuZHJhd2luZ0NvbnRleHQuc3Ryb2tlU3R5bGU9dGhpcy5fY2FjaGVkU3Ryb2tlU3R5bGUsdGhpcy5ibGVuZE1vZGUodGhpcy5fY2FjaGVkQmxlbmRNb2RlKSx0aGlzLl9pc0VyYXNpbmc9ITEpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuaW1hZ2U9ZnVuY3Rpb24oZSx0LHIsaSxuLGEsbyxzLGwpe3ZhciB1O2UuZ2lmUHJvcGVydGllcyYmZS5fYW5pbWF0ZUdpZih0aGlzLl9wSW5zdCk7dHJ5e3RoaXMuX3RpbnQmJihjLmRlZmF1bHQuTWVkaWFFbGVtZW50JiZlIGluc3RhbmNlb2YgYy5kZWZhdWx0Lk1lZGlhRWxlbWVudCYmZS5sb2FkUGl4ZWxzKCksZS5jYW52YXMmJih1PXRoaXMuX2dldFRpbnRlZEltYWdlQ2FudmFzKGUpKSksdT11fHwoZS5jYW52YXN8fGUuZWx0KTt2YXIgaD0xO2Uud2lkdGgmJjA8ZS53aWR0aCYmKGg9dS53aWR0aC9lLndpZHRoKSx0aGlzLl9pc0VyYXNpbmcmJnRoaXMuYmxlbmRNb2RlKHRoaXMuX2NhY2hlZEJsZW5kTW9kZSksdGhpcy5kcmF3aW5nQ29udGV4dC5kcmF3SW1hZ2UodSxoKnQsaCpyLGgqaSxoKm4sYSxvLHMsbCksdGhpcy5faXNFcmFzaW5nJiZ0aGlzLl9wSW5zdC5lcmFzZSgpfWNhdGNoKGUpe2lmKFwiTlNfRVJST1JfTk9UX0FWQUlMQUJMRVwiIT09ZS5uYW1lKXRocm93IGV9fSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuX2dldFRpbnRlZEltYWdlQ2FudmFzPWZ1bmN0aW9uKGUpe2lmKCFlLmNhbnZhcylyZXR1cm4gZTt2YXIgdD1mLmRlZmF1bHQuX3RvUGl4ZWxzKGUuY2FudmFzKSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7ci53aWR0aD1lLmNhbnZhcy53aWR0aCxyLmhlaWdodD1lLmNhbnZhcy5oZWlnaHQ7Zm9yKHZhciBpPXIuZ2V0Q29udGV4dChcIjJkXCIpLG49aS5jcmVhdGVJbWFnZURhdGEoZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KSxhPW4uZGF0YSxvPTA7bzx0Lmxlbmd0aDtvKz00KXt2YXIgcz10W29dLGw9dFtvKzFdLHU9dFtvKzJdLGg9dFtvKzNdO2Fbb109cyp0aGlzLl90aW50WzBdLzI1NSxhW28rMV09bCp0aGlzLl90aW50WzFdLzI1NSxhW28rMl09dSp0aGlzLl90aW50WzJdLzI1NSxhW28rM109aCp0aGlzLl90aW50WzNdLzI1NX1yZXR1cm4gaS5wdXRJbWFnZURhdGEobiwwLDApLHJ9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5ibGVuZE1vZGU9ZnVuY3Rpb24oZSl7aWYoZT09PXAuU1VCVFJBQ1QpY29uc29sZS53YXJuKFwiYmxlbmRNb2RlKFNVQlRSQUNUKSBvbmx5IHdvcmtzIGluIFdFQkdMIG1vZGUuXCIpO2Vsc2V7aWYoZSE9PXAuQkxFTkQmJmUhPT1wLlJFTU9WRSYmZSE9PXAuREFSS0VTVCYmZSE9PXAuTElHSFRFU1QmJmUhPT1wLkRJRkZFUkVOQ0UmJmUhPT1wLk1VTFRJUExZJiZlIT09cC5FWENMVVNJT04mJmUhPT1wLlNDUkVFTiYmZSE9PXAuUkVQTEFDRSYmZSE9PXAuT1ZFUkxBWSYmZSE9PXAuSEFSRF9MSUdIVCYmZSE9PXAuU09GVF9MSUdIVCYmZSE9PXAuRE9ER0UmJmUhPT1wLkJVUk4mJmUhPT1wLkFERCl0aHJvdyBuZXcgRXJyb3IoXCJNb2RlIFwiLmNvbmNhdChlLFwiIG5vdCByZWNvZ25pemVkLlwiKSk7dGhpcy5fY2FjaGVkQmxlbmRNb2RlPWUsdGhpcy5kcmF3aW5nQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ZX19LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5ibGVuZD1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmRyYXdpbmdDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbix0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspcltpXT1hcmd1bWVudHNbaV07dmFyIG49cltyLmxlbmd0aC0xXSxhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIsMCxyLmxlbmd0aC0xKTt0aGlzLmRyYXdpbmdDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj1uLGMuZGVmYXVsdC5wcm90b3R5cGUuY29weS5hcHBseSh0aGlzLGEpLHRoaXMuZHJhd2luZ0NvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPWV9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fZ2V0UGl4ZWw9ZnVuY3Rpb24oZSx0KXt2YXIgcjtyZXR1cm5bKHI9dGhpcy5kcmF3aW5nQ29udGV4dC5nZXRJbWFnZURhdGEoZSx0LDEsMSkuZGF0YSlbMF0sclsxXSxyWzJdLHJbM11dfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUubG9hZFBpeGVscz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX3BpeGVsc1N0YXRlLHQ9ZS5fcGl4ZWxEZW5zaXR5LHI9dGhpcy53aWR0aCp0LGk9dGhpcy5oZWlnaHQqdCxuPXRoaXMuZHJhd2luZ0NvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsMCxyLGkpO2UuX3NldFByb3BlcnR5KFwiaW1hZ2VEYXRhXCIsbiksZS5fc2V0UHJvcGVydHkoXCJwaXhlbHNcIixuLmRhdGEpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCxyKXtlPU1hdGguZmxvb3IoZSksdD1NYXRoLmZsb29yKHQpO3ZhciBpPXRoaXMuX3BpeGVsc1N0YXRlO2lmKHIgaW5zdGFuY2VvZiBjLmRlZmF1bHQuSW1hZ2UpdGhpcy5kcmF3aW5nQ29udGV4dC5zYXZlKCksdGhpcy5kcmF3aW5nQ29udGV4dC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHRoaXMuZHJhd2luZ0NvbnRleHQuc2NhbGUoaS5fcGl4ZWxEZW5zaXR5LGkuX3BpeGVsRGVuc2l0eSksdGhpcy5kcmF3aW5nQ29udGV4dC5jbGVhclJlY3QoZSx0LHIud2lkdGgsci5oZWlnaHQpLHRoaXMuZHJhd2luZ0NvbnRleHQuZHJhd0ltYWdlKHIuY2FudmFzLGUsdCksdGhpcy5kcmF3aW5nQ29udGV4dC5yZXN0b3JlKCk7ZWxzZXt2YXIgbj0wLGE9MCxvPTAscz0wLGw9NCoodCppLl9waXhlbERlbnNpdHkqKHRoaXMud2lkdGgqaS5fcGl4ZWxEZW5zaXR5KStlKmkuX3BpeGVsRGVuc2l0eSk7aWYoaS5pbWFnZURhdGF8fGkubG9hZFBpeGVscy5jYWxsKGkpLFwibnVtYmVyXCI9PXR5cGVvZiByKWw8aS5waXhlbHMubGVuZ3RoJiYobz1hPW49cixzPTI1NSk7ZWxzZSBpZihyIGluc3RhbmNlb2YgQXJyYXkpe2lmKHIubGVuZ3RoPDQpdGhyb3cgbmV3IEVycm9yKFwicGl4ZWwgYXJyYXkgbXVzdCBiZSBvZiB0aGUgZm9ybSBbUiwgRywgQiwgQV1cIik7bDxpLnBpeGVscy5sZW5ndGgmJihuPXJbMF0sYT1yWzFdLG89clsyXSxzPXJbM10pfWVsc2UgciBpbnN0YW5jZW9mIGMuZGVmYXVsdC5Db2xvciYmbDxpLnBpeGVscy5sZW5ndGgmJihuPXIubGV2ZWxzWzBdLGE9ci5sZXZlbHNbMV0sbz1yLmxldmVsc1syXSxzPXIubGV2ZWxzWzNdKTtmb3IodmFyIHU9MDt1PGkuX3BpeGVsRGVuc2l0eTt1KyspZm9yKHZhciBoPTA7aDxpLl9waXhlbERlbnNpdHk7aCsrKWw9NCooKHQqaS5fcGl4ZWxEZW5zaXR5K2gpKnRoaXMud2lkdGgqaS5fcGl4ZWxEZW5zaXR5KyhlKmkuX3BpeGVsRGVuc2l0eSt1KSksaS5waXhlbHNbbF09bixpLnBpeGVsc1tsKzFdPWEsaS5waXhlbHNbbCsyXT1vLGkucGl4ZWxzW2wrM109c319LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS51cGRhdGVQaXhlbHM9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG49dGhpcy5fcGl4ZWxzU3RhdGUsYT1uLl9waXhlbERlbnNpdHk7dm9pZCAwPT09ZSYmdm9pZCAwPT09dCYmdm9pZCAwPT09ciYmdm9pZCAwPT09aSYmKHQ9ZT0wLHI9dGhpcy53aWR0aCxpPXRoaXMuaGVpZ2h0KSxlKj1hLHQqPWEscio9YSxpKj1hLHRoaXMuZ2lmUHJvcGVydGllcyYmKHRoaXMuZ2lmUHJvcGVydGllcy5mcmFtZXNbdGhpcy5naWZQcm9wZXJ0aWVzLmRpc3BsYXlJbmRleF0uaW1hZ2U9bi5pbWFnZURhdGEpLHRoaXMuZHJhd2luZ0NvbnRleHQucHV0SW1hZ2VEYXRhKG4uaW1hZ2VEYXRhLGUsdCwwLDAscixpKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLl9hY3V0ZUFyY1RvQmV6aWVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dC8yLGk9TWF0aC5jb3Mociksbj1NYXRoLnNpbihyKSxhPTEvTWF0aC50YW4ociksbz1lK3Iscz1NYXRoLmNvcyhvKSxsPU1hdGguc2luKG8pLHU9KDQtaSkvMyxoPW4rKGktdSkqYTtyZXR1cm57YXg6TWF0aC5jb3MoZSkudG9GaXhlZCg3KSxheTpNYXRoLnNpbihlKS50b0ZpeGVkKDcpLGJ4Oih1KnMraCpsKS50b0ZpeGVkKDcpLGJ5Oih1KmwtaCpzKS50b0ZpeGVkKDcpLGN4Oih1KnMtaCpsKS50b0ZpeGVkKDcpLGN5Oih1KmwraCpzKS50b0ZpeGVkKDcpLGR4Ok1hdGguY29zKGUrdCkudG9GaXhlZCg3KSxkeTpNYXRoLnNpbihlK3QpLnRvRml4ZWQoNyl9fSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuYXJjPWZ1bmN0aW9uKHIsaSxlLHQsbixhLG8pe3ZhciBzPXRoaXMuZHJhd2luZ0NvbnRleHQsbD1lLzIsdT10LzIsaD0wLGM9W107Zm9yKHIrPWwsaSs9dTsxZS01PD1hLW47KWg9TWF0aC5taW4oYS1uLHAuSEFMRl9QSSksYy5wdXNoKHRoaXMuX2FjdXRlQXJjVG9CZXppZXIobixoKSksbis9aDtyZXR1cm4gdGhpcy5fZG9GaWxsJiYocy5iZWdpblBhdGgoKSxjLmZvckVhY2goZnVuY3Rpb24oZSx0KXswPT09dCYmcy5tb3ZlVG8ocitlLmF4KmwsaStlLmF5KnUpLHMuYmV6aWVyQ3VydmVUbyhyK2UuYngqbCxpK2UuYnkqdSxyK2UuY3gqbCxpK2UuY3kqdSxyK2UuZHgqbCxpK2UuZHkqdSl9KSxvIT09cC5QSUUmJm51bGwhPW98fHMubGluZVRvKHIsaSkscy5jbG9zZVBhdGgoKSxzLmZpbGwoKSksdGhpcy5fZG9TdHJva2UmJihzLmJlZ2luUGF0aCgpLGMuZm9yRWFjaChmdW5jdGlvbihlLHQpezA9PT10JiZzLm1vdmVUbyhyK2UuYXgqbCxpK2UuYXkqdSkscy5iZXppZXJDdXJ2ZVRvKHIrZS5ieCpsLGkrZS5ieSp1LHIrZS5jeCpsLGkrZS5jeSp1LHIrZS5keCpsLGkrZS5keSp1KX0pLG89PT1wLlBJRT8ocy5saW5lVG8ocixpKSxzLmNsb3NlUGF0aCgpKTpvPT09cC5DSE9SRCYmcy5jbG9zZVBhdGgoKSxzLnN0cm9rZSgpKSx0aGlzfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuZWxsaXBzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmRyYXdpbmdDb250ZXh0LHI9dGhpcy5fZG9GaWxsLGk9dGhpcy5fZG9TdHJva2Usbj1wYXJzZUZsb2F0KGVbMF0pLGE9cGFyc2VGbG9hdChlWzFdKSxvPXBhcnNlRmxvYXQoZVsyXSkscz1wYXJzZUZsb2F0KGVbM10pO2lmKHImJiFpKXtpZih0aGlzLl9nZXRGaWxsKCk9PT12KXJldHVybiB0aGlzfWVsc2UgaWYoIXImJmkmJnRoaXMuX2dldFN0cm9rZSgpPT09dilyZXR1cm4gdGhpczt2YXIgbD1vLzIqLjU1MjI4NDc0OTgsdT1zLzIqLjU1MjI4NDc0OTgsaD1uK28sYz1hK3MsZj1uK28vMixkPWErcy8yO3QuYmVnaW5QYXRoKCksdC5tb3ZlVG8obixkKSx0LmJlemllckN1cnZlVG8obixkLXUsZi1sLGEsZixhKSx0LmJlemllckN1cnZlVG8oZitsLGEsaCxkLXUsaCxkKSx0LmJlemllckN1cnZlVG8oaCxkK3UsZitsLGMsZixjKSx0LmJlemllckN1cnZlVG8oZi1sLGMsbixkK3UsbixkKSxyJiZ0LmZpbGwoKSxpJiZ0LnN0cm9rZSgpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUubGluZT1mdW5jdGlvbihlLHQscixpKXt2YXIgbj10aGlzLmRyYXdpbmdDb250ZXh0O3JldHVybiB0aGlzLl9kb1N0cm9rZSYmKHRoaXMuX2dldFN0cm9rZSgpPT09dnx8KG4uYmVnaW5QYXRoKCksbi5tb3ZlVG8oZSx0KSxuLmxpbmVUbyhyLGkpLG4uc3Ryb2tlKCkpKSx0aGlzfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLmRyYXdpbmdDb250ZXh0O2lmKCF0aGlzLl9kb1N0cm9rZSlyZXR1cm4gdGhpcztpZih0aGlzLl9nZXRTdHJva2UoKT09PXYpcmV0dXJuIHRoaXM7dmFyIGk9dGhpcy5fZ2V0U3Ryb2tlKCksbj10aGlzLl9nZXRGaWxsKCk7ZT1NYXRoLnJvdW5kKGUpLHQ9TWF0aC5yb3VuZCh0KSx0aGlzLl9zZXRGaWxsKGkpLDE8ci5saW5lV2lkdGg/KHIuYmVnaW5QYXRoKCksci5hcmMoZSx0LHIubGluZVdpZHRoLzIsMCxwLlRXT19QSSwhMSksci5maWxsKCkpOnIuZmlsbFJlY3QoZSx0LDEsMSksdGhpcy5fc2V0RmlsbChuKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnF1YWQ9ZnVuY3Rpb24oZSx0LHIsaSxuLGEsbyxzKXt2YXIgbD10aGlzLmRyYXdpbmdDb250ZXh0LHU9dGhpcy5fZG9GaWxsLGg9dGhpcy5fZG9TdHJva2U7aWYodSYmIWgpe2lmKHRoaXMuX2dldEZpbGwoKT09PXYpcmV0dXJuIHRoaXN9ZWxzZSBpZighdSYmaCYmdGhpcy5fZ2V0U3Ryb2tlKCk9PT12KXJldHVybiB0aGlzO3JldHVybiBsLmJlZ2luUGF0aCgpLGwubW92ZVRvKGUsdCksbC5saW5lVG8ocixpKSxsLmxpbmVUbyhuLGEpLGwubGluZVRvKG8scyksbC5jbG9zZVBhdGgoKSx1JiZsLmZpbGwoKSxoJiZsLnN0cm9rZSgpLHRoaXN9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5yZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0scj1lWzFdLGk9ZVsyXSxuPWVbM10sYT1lWzRdLG89ZVs1XSxzPWVbNl0sbD1lWzddLHU9dGhpcy5kcmF3aW5nQ29udGV4dCxoPXRoaXMuX2RvRmlsbCxjPXRoaXMuX2RvU3Ryb2tlO2lmKGgmJiFjKXtpZih0aGlzLl9nZXRGaWxsKCk9PT12KXJldHVybiB0aGlzfWVsc2UgaWYoIWgmJmMmJnRoaXMuX2dldFN0cm9rZSgpPT09dilyZXR1cm4gdGhpcztpZih1LmJlZ2luUGF0aCgpLHZvaWQgMD09PWEpdS5yZWN0KHQscixpLG4pO2Vsc2V7dm9pZCAwPT09byYmKG89YSksdm9pZCAwPT09cyYmKHM9byksdm9pZCAwPT09bCYmKGw9cyk7dmFyIGY9TWF0aC5hYnMoaSksZD1NYXRoLmFicyhuKSxwPWYvMixtPWQvMjtmPDIqYSYmKGE9cCksZDwyKmEmJihhPW0pLGY8MipvJiYobz1wKSxkPDIqbyYmKG89bSksZjwyKnMmJihzPXApLGQ8MipzJiYocz1tKSxmPDIqbCYmKGw9cCksZDwyKmwmJihsPW0pLHUuYmVnaW5QYXRoKCksdS5tb3ZlVG8odCthLHIpLHUuYXJjVG8odCtpLHIsdCtpLHIrbixvKSx1LmFyY1RvKHQraSxyK24sdCxyK24scyksdS5hcmNUbyh0LHIrbix0LHIsbCksdS5hcmNUbyh0LHIsdCtpLHIsYSksdS5jbG9zZVBhdGgoKX1yZXR1cm4gdGhpcy5fZG9GaWxsJiZ1LmZpbGwoKSx0aGlzLl9kb1N0cm9rZSYmdS5zdHJva2UoKSx0aGlzfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUudHJpYW5nbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5kcmF3aW5nQ29udGV4dCxyPXRoaXMuX2RvRmlsbCxpPXRoaXMuX2RvU3Ryb2tlLG49ZVswXSxhPWVbMV0sbz1lWzJdLHM9ZVszXSxsPWVbNF0sdT1lWzVdO2lmKHImJiFpKXtpZih0aGlzLl9nZXRGaWxsKCk9PT12KXJldHVybiB0aGlzfWVsc2UgaWYoIXImJmkmJnRoaXMuX2dldFN0cm9rZSgpPT09dilyZXR1cm4gdGhpczt0LmJlZ2luUGF0aCgpLHQubW92ZVRvKG4sYSksdC5saW5lVG8obyxzKSx0LmxpbmVUbyhsLHUpLHQuY2xvc2VQYXRoKCksciYmdC5maWxsKCksaSYmdC5zdHJva2UoKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLmVuZFNoYXBlPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8pe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdGhpcztpZighdGhpcy5fZG9TdHJva2UmJiF0aGlzLl9kb0ZpbGwpcmV0dXJuIHRoaXM7dmFyIHMsbCx1LGg9ZT09PXAuQ0xPU0U7aCYmIWEmJnQucHVzaCh0WzBdKTt2YXIgYz10Lmxlbmd0aDtpZighcnx8byE9PXAuUE9MWUdPTiYmbnVsbCE9PW8paWYoIWl8fG8hPT1wLlBPTFlHT04mJm51bGwhPT1vKWlmKCFufHxvIT09cC5QT0xZR09OJiZudWxsIT09bylpZihvPT09cC5QT0lOVFMpZm9yKGw9MDtsPGM7bCsrKXM9dFtsXSx0aGlzLl9kb1N0cm9rZSYmdGhpcy5fcEluc3Quc3Ryb2tlKHNbNl0pLHRoaXMuX3BJbnN0LnBvaW50KHNbMF0sc1sxXSk7ZWxzZSBpZihvPT09cC5MSU5FUylmb3IobD0wO2wrMTxjO2wrPTIpcz10W2xdLHRoaXMuX2RvU3Ryb2tlJiZ0aGlzLl9wSW5zdC5zdHJva2UodFtsKzFdWzZdKSx0aGlzLl9wSW5zdC5saW5lKHNbMF0sc1sxXSx0W2wrMV1bMF0sdFtsKzFdWzFdKTtlbHNlIGlmKG89PT1wLlRSSUFOR0xFUylmb3IobD0wO2wrMjxjO2wrPTMpcz10W2xdLHRoaXMuZHJhd2luZ0NvbnRleHQuYmVnaW5QYXRoKCksdGhpcy5kcmF3aW5nQ29udGV4dC5tb3ZlVG8oc1swXSxzWzFdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyh0W2wrMV1bMF0sdFtsKzFdWzFdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyh0W2wrMl1bMF0sdFtsKzJdWzFdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2RvRmlsbCYmKHRoaXMuX3BJbnN0LmZpbGwodFtsKzJdWzVdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmZpbGwoKSksdGhpcy5fZG9TdHJva2UmJih0aGlzLl9wSW5zdC5zdHJva2UodFtsKzJdWzZdKSx0aGlzLmRyYXdpbmdDb250ZXh0LnN0cm9rZSgpKTtlbHNlIGlmKG89PT1wLlRSSUFOR0xFX1NUUklQKWZvcihsPTA7bCsxPGM7bCsrKXM9dFtsXSx0aGlzLmRyYXdpbmdDb250ZXh0LmJlZ2luUGF0aCgpLHRoaXMuZHJhd2luZ0NvbnRleHQubW92ZVRvKHRbbCsxXVswXSx0W2wrMV1bMV0pLHRoaXMuZHJhd2luZ0NvbnRleHQubGluZVRvKHNbMF0sc1sxXSksdGhpcy5fZG9TdHJva2UmJnRoaXMuX3BJbnN0LnN0cm9rZSh0W2wrMV1bNl0pLHRoaXMuX2RvRmlsbCYmdGhpcy5fcEluc3QuZmlsbCh0W2wrMV1bNV0pLGwrMjxjJiYodGhpcy5kcmF3aW5nQ29udGV4dC5saW5lVG8odFtsKzJdWzBdLHRbbCsyXVsxXSksdGhpcy5fZG9TdHJva2UmJnRoaXMuX3BJbnN0LnN0cm9rZSh0W2wrMl1bNl0pLHRoaXMuX2RvRmlsbCYmdGhpcy5fcEluc3QuZmlsbCh0W2wrMl1bNV0pKSx0aGlzLl9kb0ZpbGxTdHJva2VDbG9zZShoKTtlbHNlIGlmKG89PT1wLlRSSUFOR0xFX0ZBTil7aWYoMjxjKXtmb3IodGhpcy5kcmF3aW5nQ29udGV4dC5iZWdpblBhdGgoKSxsPTI7bDxjO2wrKylzPXRbbF0sdGhpcy5kcmF3aW5nQ29udGV4dC5tb3ZlVG8odFswXVswXSx0WzBdWzFdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyh0W2wtMV1bMF0sdFtsLTFdWzFdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyhzWzBdLHNbMV0pLHRoaXMuZHJhd2luZ0NvbnRleHQubGluZVRvKHRbMF1bMF0sdFswXVsxXSksbDxjLTEmJih0aGlzLl9kb0ZpbGwmJnNbNV0hPT10W2wrMV1bNV18fHRoaXMuX2RvU3Ryb2tlJiZzWzZdIT09dFtsKzFdWzZdKSYmKHRoaXMuX2RvRmlsbCYmKHRoaXMuX3BJbnN0LmZpbGwoc1s1XSksdGhpcy5kcmF3aW5nQ29udGV4dC5maWxsKCksdGhpcy5fcEluc3QuZmlsbCh0W2wrMV1bNV0pKSx0aGlzLl9kb1N0cm9rZSYmKHRoaXMuX3BJbnN0LnN0cm9rZShzWzZdKSx0aGlzLmRyYXdpbmdDb250ZXh0LnN0cm9rZSgpLHRoaXMuX3BJbnN0LnN0cm9rZSh0W2wrMV1bNl0pKSx0aGlzLmRyYXdpbmdDb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuZHJhd2luZ0NvbnRleHQuYmVnaW5QYXRoKCkpO3RoaXMuX2RvRmlsbFN0cm9rZUNsb3NlKGgpfX1lbHNlIGlmKG89PT1wLlFVQURTKWZvcihsPTA7bCszPGM7bCs9NCl7Zm9yKHM9dFtsXSx0aGlzLmRyYXdpbmdDb250ZXh0LmJlZ2luUGF0aCgpLHRoaXMuZHJhd2luZ0NvbnRleHQubW92ZVRvKHNbMF0sc1sxXSksdT0xO3U8NDt1KyspdGhpcy5kcmF3aW5nQ29udGV4dC5saW5lVG8odFtsK3VdWzBdLHRbbCt1XVsxXSk7dGhpcy5kcmF3aW5nQ29udGV4dC5saW5lVG8oc1swXSxzWzFdKSx0aGlzLl9kb0ZpbGwmJnRoaXMuX3BJbnN0LmZpbGwodFtsKzNdWzVdKSx0aGlzLl9kb1N0cm9rZSYmdGhpcy5fcEluc3Quc3Ryb2tlKHRbbCszXVs2XSksdGhpcy5fZG9GaWxsU3Ryb2tlQ2xvc2UoaCl9ZWxzZSBpZihvPT09cC5RVUFEX1NUUklQKXtpZigzPGMpZm9yKGw9MDtsKzE8YztsKz0yKXM9dFtsXSx0aGlzLmRyYXdpbmdDb250ZXh0LmJlZ2luUGF0aCgpLGwrMzxjPyh0aGlzLmRyYXdpbmdDb250ZXh0Lm1vdmVUbyh0W2wrMl1bMF0sdFtsKzJdWzFdKSx0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyhzWzBdLHNbMV0pLHRoaXMuZHJhd2luZ0NvbnRleHQubGluZVRvKHRbbCsxXVswXSx0W2wrMV1bMV0pLHRoaXMuZHJhd2luZ0NvbnRleHQubGluZVRvKHRbbCszXVswXSx0W2wrM11bMV0pLHRoaXMuX2RvRmlsbCYmdGhpcy5fcEluc3QuZmlsbCh0W2wrM11bNV0pLHRoaXMuX2RvU3Ryb2tlJiZ0aGlzLl9wSW5zdC5zdHJva2UodFtsKzNdWzZdKSk6KHRoaXMuZHJhd2luZ0NvbnRleHQubW92ZVRvKHNbMF0sc1sxXSksdGhpcy5kcmF3aW5nQ29udGV4dC5saW5lVG8odFtsKzFdWzBdLHRbbCsxXVsxXSkpLHRoaXMuX2RvRmlsbFN0cm9rZUNsb3NlKGgpfWVsc2V7Zm9yKHRoaXMuZHJhd2luZ0NvbnRleHQuYmVnaW5QYXRoKCksdGhpcy5kcmF3aW5nQ29udGV4dC5tb3ZlVG8odFswXVswXSx0WzBdWzFdKSxsPTE7bDxjO2wrKykocz10W2xdKS5pc1ZlcnQmJihzLm1vdmVUbz90aGlzLmRyYXdpbmdDb250ZXh0Lm1vdmVUbyhzWzBdLHNbMV0pOnRoaXMuZHJhd2luZ0NvbnRleHQubGluZVRvKHNbMF0sc1sxXSkpO3RoaXMuX2RvRmlsbFN0cm9rZUNsb3NlKGgpfWVsc2V7Zm9yKHRoaXMuZHJhd2luZ0NvbnRleHQuYmVnaW5QYXRoKCksbD0wO2w8YztsKyspdFtsXS5pc1ZlcnQ/dFtsXS5tb3ZlVG8/dGhpcy5kcmF3aW5nQ29udGV4dC5tb3ZlVG8odFtsXVswXSx0W2xdWzFdKTp0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyh0W2xdWzBdLHRbbF1bMV0pOnRoaXMuZHJhd2luZ0NvbnRleHQucXVhZHJhdGljQ3VydmVUbyh0W2xdWzBdLHRbbF1bMV0sdFtsXVsyXSx0W2xdWzNdKTt0aGlzLl9kb0ZpbGxTdHJva2VDbG9zZShoKX1lbHNle2Zvcih0aGlzLmRyYXdpbmdDb250ZXh0LmJlZ2luUGF0aCgpLGw9MDtsPGM7bCsrKXRbbF0uaXNWZXJ0P3RbbF0ubW92ZVRvP3RoaXMuZHJhd2luZ0NvbnRleHQubW92ZVRvKHRbbF1bMF0sdFtsXVsxXSk6dGhpcy5kcmF3aW5nQ29udGV4dC5saW5lVG8odFtsXVswXSx0W2xdWzFdKTp0aGlzLmRyYXdpbmdDb250ZXh0LmJlemllckN1cnZlVG8odFtsXVswXSx0W2xdWzFdLHRbbF1bMl0sdFtsXVszXSx0W2xdWzRdLHRbbF1bNV0pO3RoaXMuX2RvRmlsbFN0cm9rZUNsb3NlKGgpfWVsc2UgaWYoMzxjKXt2YXIgZj1bXSxkPTEtdGhpcy5fY3VydmVUaWdodG5lc3M7Zm9yKHRoaXMuZHJhd2luZ0NvbnRleHQuYmVnaW5QYXRoKCksdGhpcy5kcmF3aW5nQ29udGV4dC5tb3ZlVG8odFsxXVswXSx0WzFdWzFdKSxsPTE7bCsyPGM7bCsrKXM9dFtsXSxmWzBdPVtzWzBdLHNbMV1dLGZbMV09W3NbMF0rKGQqdFtsKzFdWzBdLWQqdFtsLTFdWzBdKS82LHNbMV0rKGQqdFtsKzFdWzFdLWQqdFtsLTFdWzFdKS82XSxmWzJdPVt0W2wrMV1bMF0rKGQqdFtsXVswXS1kKnRbbCsyXVswXSkvNix0W2wrMV1bMV0rKGQqdFtsXVsxXS1kKnRbbCsyXVsxXSkvNl0sZlszXT1bdFtsKzFdWzBdLHRbbCsxXVsxXV0sdGhpcy5kcmF3aW5nQ29udGV4dC5iZXppZXJDdXJ2ZVRvKGZbMV1bMF0sZlsxXVsxXSxmWzJdWzBdLGZbMl1bMV0sZlszXVswXSxmWzNdWzFdKTtoJiZ0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVUbyh0W2wrMV1bMF0sdFtsKzFdWzFdKSx0aGlzLl9kb0ZpbGxTdHJva2VDbG9zZShoKX1yZXR1cm4gYT1uPWk9cj0hMSxoJiZ0LnBvcCgpLHRoaXN9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5zdHJva2VDYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1wLlJPVU5EJiZlIT09cC5TUVVBUkUmJmUhPT1wLlBST0pFQ1R8fCh0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVDYXA9ZSksdGhpc30sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnN0cm9rZUpvaW49ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1wLlJPVU5EJiZlIT09cC5CRVZFTCYmZSE9PXAuTUlURVJ8fCh0aGlzLmRyYXdpbmdDb250ZXh0LmxpbmVKb2luPWUpLHRoaXN9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5zdHJva2VXZWlnaHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZHJhd2luZ0NvbnRleHQubGluZVdpZHRoPXZvaWQgMD09PWV8fDA9PT1lPzFlLTQ6ZSx0aGlzfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuX2dldEZpbGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGVkRmlsbFN0eWxlfHwodGhpcy5fY2FjaGVkRmlsbFN0eWxlPXRoaXMuZHJhd2luZ0NvbnRleHQuZmlsbFN0eWxlKSx0aGlzLl9jYWNoZWRGaWxsU3R5bGV9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fc2V0RmlsbD1mdW5jdGlvbihlKXtlIT09dGhpcy5fY2FjaGVkRmlsbFN0eWxlJiYodGhpcy5kcmF3aW5nQ29udGV4dC5maWxsU3R5bGU9ZSx0aGlzLl9jYWNoZWRGaWxsU3R5bGU9ZSl9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fZ2V0U3Ryb2tlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlZFN0cm9rZVN0eWxlfHwodGhpcy5fY2FjaGVkU3Ryb2tlU3R5bGU9dGhpcy5kcmF3aW5nQ29udGV4dC5zdHJva2VTdHlsZSksdGhpcy5fY2FjaGVkU3Ryb2tlU3R5bGV9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fc2V0U3Ryb2tlPWZ1bmN0aW9uKGUpe2UhPT10aGlzLl9jYWNoZWRTdHJva2VTdHlsZSYmKHRoaXMuZHJhd2luZ0NvbnRleHQuc3Ryb2tlU3R5bGU9ZSx0aGlzLl9jYWNoZWRTdHJva2VTdHlsZT1lKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLmJlemllcj1mdW5jdGlvbihlLHQscixpLG4sYSxvLHMpe3JldHVybiB0aGlzLl9wSW5zdC5iZWdpblNoYXBlKCksdGhpcy5fcEluc3QudmVydGV4KGUsdCksdGhpcy5fcEluc3QuYmV6aWVyVmVydGV4KHIsaSxuLGEsbyxzKSx0aGlzLl9wSW5zdC5lbmRTaGFwZSgpLHRoaXN9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5jdXJ2ZT1mdW5jdGlvbihlLHQscixpLG4sYSxvLHMpe3JldHVybiB0aGlzLl9wSW5zdC5iZWdpblNoYXBlKCksdGhpcy5fcEluc3QuY3VydmVWZXJ0ZXgoZSx0KSx0aGlzLl9wSW5zdC5jdXJ2ZVZlcnRleChyLGkpLHRoaXMuX3BJbnN0LmN1cnZlVmVydGV4KG4sYSksdGhpcy5fcEluc3QuY3VydmVWZXJ0ZXgobyxzKSx0aGlzLl9wSW5zdC5lbmRTaGFwZSgpLHRoaXN9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fZG9GaWxsU3Ryb2tlQ2xvc2U9ZnVuY3Rpb24oZSl7ZSYmdGhpcy5kcmF3aW5nQ29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9kb0ZpbGwmJnRoaXMuZHJhd2luZ0NvbnRleHQuZmlsbCgpLHRoaXMuX2RvU3Ryb2tlJiZ0aGlzLmRyYXdpbmdDb250ZXh0LnN0cm9rZSgpfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24oZSx0LHIsaSxuLGEpe3RoaXMuZHJhd2luZ0NvbnRleHQudHJhbnNmb3JtKGUsdCxyLGksbixhKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnJlc2V0TWF0cml4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZHJhd2luZ0NvbnRleHQuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSx0aGlzLmRyYXdpbmdDb250ZXh0LnNjYWxlKHRoaXMuX3BJbnN0Ll9waXhlbERlbnNpdHksdGhpcy5fcEluc3QuX3BpeGVsRGVuc2l0eSksdGhpc30sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnJvdGF0ZT1mdW5jdGlvbihlKXt0aGlzLmRyYXdpbmdDb250ZXh0LnJvdGF0ZShlKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZHJhd2luZ0NvbnRleHQuc2NhbGUoZSx0KSx0aGlzfSxjLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUudHJhbnNsYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBjLmRlZmF1bHQuVmVjdG9yJiYodD1lLnksZT1lLngpLHRoaXMuZHJhd2luZ0NvbnRleHQudHJhbnNsYXRlKGUsdCksdGhpc30sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZSx0LHIsaSxuKXt2YXIgYTt2b2lkIDAhPT1pJiZ0aGlzLmRyYXdpbmdDb250ZXh0LnRleHRCYXNlbGluZT09PXAuQkFTRUxJTkUmJihhPSEwLHRoaXMuZHJhd2luZ0NvbnRleHQudGV4dEJhc2VsaW5lPXAuVE9QKTt2YXIgbz1jLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnRleHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhJiYodGhpcy5kcmF3aW5nQ29udGV4dC50ZXh0QmFzZWxpbmU9cC5CQVNFTElORSksb30sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLl9yZW5kZXJUZXh0PWZ1bmN0aW9uKGUsdCxyLGksbil7aWYoIShuPD1pKSlyZXR1cm4gZS5wdXNoKCksdGhpcy5faXNPcGVuVHlwZSgpP3RoaXMuX3RleHRGb250Ll9yZW5kZXJQYXRoKHQscixpLHtyZW5kZXJlcjp0aGlzfSk6KHRoaXMuX2RvU3Ryb2tlJiZ0aGlzLl9zdHJva2VTZXQmJnRoaXMuZHJhd2luZ0NvbnRleHQuc3Ryb2tlVGV4dCh0LHIsaSksdGhpcy5fZG9GaWxsJiYodGhpcy5fZmlsbFNldHx8dGhpcy5fc2V0RmlsbChwLl9ERUZBVUxUX1RFWFRfRklMTCksdGhpcy5kcmF3aW5nQ29udGV4dC5maWxsVGV4dCh0LHIsaSkpKSxlLnBvcCgpLGV9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS50ZXh0V2lkdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2lzT3BlblR5cGUoKT90aGlzLl90ZXh0Rm9udC5fdGV4dFdpZHRoKGUsdGhpcy5fdGV4dFNpemUpOnRoaXMuZHJhd2luZ0NvbnRleHQubWVhc3VyZVRleHQoZSkud2lkdGh9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fYXBwbHlUZXh0UHJvcGVydGllcz1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fcEluc3Q7cmV0dXJuIHRoaXMuX3NldFByb3BlcnR5KFwiX3RleHRBc2NlbnRcIixudWxsKSx0aGlzLl9zZXRQcm9wZXJ0eShcIl90ZXh0RGVzY2VudFwiLG51bGwpLGU9dGhpcy5fdGV4dEZvbnQsdGhpcy5faXNPcGVuVHlwZSgpJiYoZT10aGlzLl90ZXh0Rm9udC5mb250LmZhbWlseU5hbWUsdGhpcy5fc2V0UHJvcGVydHkoXCJfdGV4dFN0eWxlXCIsdGhpcy5fdGV4dEZvbnQuZm9udC5zdHlsZU5hbWUpKSx0aGlzLmRyYXdpbmdDb250ZXh0LmZvbnQ9XCJcIi5jb25jYXQodGhpcy5fdGV4dFN0eWxlfHxcIm5vcm1hbFwiLFwiIFwiKS5jb25jYXQodGhpcy5fdGV4dFNpemV8fDEyLFwicHggXCIpLmNvbmNhdChlfHxcInNhbnMtc2VyaWZcIiksdGhpcy5kcmF3aW5nQ29udGV4dC50ZXh0QWxpZ249dGhpcy5fdGV4dEFsaWduLHRoaXMuX3RleHRCYXNlbGluZT09PXAuQ0VOVEVSP3RoaXMuZHJhd2luZ0NvbnRleHQudGV4dEJhc2VsaW5lPXAuX0NUWF9NSURETEU6dGhpcy5kcmF3aW5nQ29udGV4dC50ZXh0QmFzZWxpbmU9dGhpcy5fdGV4dEJhc2VsaW5lLHR9LGMuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZHJhd2luZ0NvbnRleHQuc2F2ZSgpLGMuZGVmYXVsdC5SZW5kZXJlci5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzKX0sYy5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnBvcD1mdW5jdGlvbihlKXt0aGlzLmRyYXdpbmdDb250ZXh0LnJlc3RvcmUoKSx0aGlzLl9jYWNoZWRGaWxsU3R5bGU9dGhpcy5kcmF3aW5nQ29udGV4dC5maWxsU3R5bGUsdGhpcy5fY2FjaGVkU3Ryb2tlU3R5bGU9dGhpcy5kcmF3aW5nQ29udGV4dC5zdHJva2VTdHlsZSxjLmRlZmF1bHQuUmVuZGVyZXIucHJvdG90eXBlLnBvcC5jYWxsKHRoaXMsZSl9O3ZhciBuPWMuZGVmYXVsdC5SZW5kZXJlcjJEO3IuZGVmYXVsdD1ufSx7XCIuLi9pbWFnZS9maWx0ZXJzXCI6NTcsXCIuL2NvbnN0YW50c1wiOjI2LFwiLi9tYWluXCI6MzYsXCIuL3A1LlJlbmRlcmVyXCI6Mzl9XSw0MTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpLGY9KGk9ZShcIi4vbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2YuZGVmYXVsdC5wcm90b3R5cGUuX3Byb21pc2VQcmVsb2Fkcz1bXTt2YXIgZD0hKGYuZGVmYXVsdC5wcm90b3R5cGUucmVnaXN0ZXJQcm9taXNlUHJlbG9hZD1mdW5jdGlvbihlKXtmLmRlZmF1bHQucHJvdG90eXBlLl9wcm9taXNlUHJlbG9hZHMucHVzaChlKX0pO2YuZGVmYXVsdC5wcm90b3R5cGUuX3NldHVwUHJvbWlzZVByZWxvYWRzPWZ1bmN0aW9uKCl7dmFyIGU9ITAsdD0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBpLG49dGhpcy5fcHJvbWlzZVByZWxvYWRzW1N5bWJvbC5pdGVyYXRvcl0oKTshKGU9KGk9bi5uZXh0KCkpLmRvbmUpO2U9ITApe3ZhciBhPWkudmFsdWUsbz10aGlzLHM9YS5tZXRob2QsbD1hLmFkZENhbGxiYWNrcyx1PWEubGVnYWN5UHJlbG9hZFNldHVwLGg9YS50YXJnZXR8fHRoaXMsYz1oW3NdLmJpbmQoaCk7aWYoaD09PWYuZGVmYXVsdC5wcm90b3R5cGUpe2lmKGQpY29udGludWU7bz1udWxsLGM9aFtzXX1pZihoW3NdPXRoaXMuX3dyYXBQcm9taXNlUHJlbG9hZChvLGMsbCksdSloW3UubWV0aG9kXT10aGlzLl9sZWdhY3lQcmVsb2FkR2VuZXJhdG9yKG8sdSxoW3NdKX19Y2F0Y2goZSl7dD0hMCxyPWV9ZmluYWxseXt0cnl7ZXx8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZih0KXRocm93IHJ9fWQ9ITB9LGYuZGVmYXVsdC5wcm90b3R5cGUuX3dyYXBQcm9taXNlUHJlbG9hZD1mdW5jdGlvbihlLGwsdSl7dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2luY3JlbWVudFByZWxvYWQoKTtmb3IodmFyIHQ9bnVsbCxyPW51bGwsaT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGkpLGE9MDthPGk7YSsrKW5bYV09YXJndW1lbnRzW2FdO2lmKHUpZm9yKHZhciBvPW4ubGVuZ3RoLTE7MDw9byYmIXImJlwiZnVuY3Rpb25cIj09dHlwZW9mIG5bb107by0tKXI9dCx0PW4ucG9wKCk7dmFyIHM9UHJvbWlzZS5yZXNvbHZlKGwuYXBwbHkodGhpcyxuKSk7cmV0dXJuIHQmJnMudGhlbih0KSxyJiZzLmNhdGNoKHIpLHMudGhlbihmdW5jdGlvbigpe3JldHVybiBlLl9kZWNyZW1lbnRQcmVsb2FkKCl9KSxzfTtyZXR1cm4gZSYmKHQ9dC5iaW5kKGUpKSx0fTtmdW5jdGlvbiBhKCl7cmV0dXJue319Zi5kZWZhdWx0LnByb3RvdHlwZS5fbGVnYWN5UHJlbG9hZEdlbmVyYXRvcj1mdW5jdGlvbihlLHQsaSl7dmFyIG49dC5jcmVhdGVCYXNlT2JqZWN0fHxhLHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2luY3JlbWVudFByZWxvYWQoKTt2YXIgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaS5hcHBseSh0aGlzLGFyZ3VtZW50cykudGhlbihmdW5jdGlvbihlKXtPYmplY3QuYXNzaWduKHIsZSksdC5fZGVjcmVtZW50UHJlbG9hZCgpfSkscn07cmV0dXJuIGUmJihyPXIuYmluZChlKSkscn19LHtcIi4vbWFpblwiOjM2fV0sNDI6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLGw9KGk9ZShcIi4vbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LHU9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09cyhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1vKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gbygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIG89ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBzKGUpe3JldHVybihzPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1lKFwiLi9wNS5HcmFwaGljc1wiKSxlKFwiLi9wNS5SZW5kZXJlcjJEXCIpLGUoXCIuLi93ZWJnbC9wNS5SZW5kZXJlckdMXCIpO3ZhciBoPVwiZGVmYXVsdENhbnZhczBcIjtsLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZUNhbnZhcz1mdW5jdGlvbihlLHQscil7bC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVDYW52YXNcIixhcmd1bWVudHMpO3ZhciBpLG49cnx8dS5QMkQ7aWYobj09PXUuV0VCR0wpe2lmKGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaCkpe2kucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKTt2YXIgYT10aGlzLl9yZW5kZXJlcjt0aGlzLl9lbGVtZW50cz10aGlzLl9lbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1hfSl9KGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKSkuaWQ9aCxpLmNsYXNzTGlzdC5hZGQoXCJwNUNhbnZhc1wiKX1lbHNlIGlmKHRoaXMuX2RlZmF1bHRHcmFwaGljc0NyZWF0ZWQpaT10aGlzLmNhbnZhcztlbHNle2k9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtmb3IodmFyIG89MDtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImRlZmF1bHRDYW52YXNcIi5jb25jYXQobykpOylvKys7aD1cImRlZmF1bHRDYW52YXNcIi5jb25jYXQobyksaS5pZD1oLGkuY2xhc3NMaXN0LmFkZChcInA1Q2FudmFzXCIpfWlmKHRoaXMuX3NldHVwRG9uZXx8KGkuZGF0YXNldC5oaWRkZW49ITAsaS5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCIpLHRoaXMuX3VzZXJOb2RlKXRoaXMuX3VzZXJOb2RlLmFwcGVuZENoaWxkKGkpO2Vsc2V7aWYoMD09PWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwibWFpblwiKS5sZW5ndGgpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJtYWluXCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyl9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJtYWluXCIpWzBdLmFwcGVuZENoaWxkKGkpfXJldHVybiBuPT09dS5XRUJHTD8odGhpcy5fc2V0UHJvcGVydHkoXCJfcmVuZGVyZXJcIixuZXcgbC5kZWZhdWx0LlJlbmRlcmVyR0woaSx0aGlzLCEwKSksdGhpcy5fZWxlbWVudHMucHVzaCh0aGlzLl9yZW5kZXJlcikpOnRoaXMuX2RlZmF1bHRHcmFwaGljc0NyZWF0ZWR8fCh0aGlzLl9zZXRQcm9wZXJ0eShcIl9yZW5kZXJlclwiLG5ldyBsLmRlZmF1bHQuUmVuZGVyZXIyRChpLHRoaXMsITApKSx0aGlzLl9kZWZhdWx0R3JhcGhpY3NDcmVhdGVkPSEwLHRoaXMuX2VsZW1lbnRzLnB1c2godGhpcy5fcmVuZGVyZXIpKSx0aGlzLl9yZW5kZXJlci5yZXNpemUoZSx0KSx0aGlzLl9yZW5kZXJlci5fYXBwbHlEZWZhdWx0cygpLHRoaXMuX3JlbmRlcmVyfSxsLmRlZmF1bHQucHJvdG90eXBlLnJlc2l6ZUNhbnZhcz1mdW5jdGlvbihlLHQscil7aWYobC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJyZXNpemVDYW52YXNcIixhcmd1bWVudHMpLHRoaXMuX3JlbmRlcmVyKXt2YXIgaT17fTtmb3IodmFyIG4gaW4gdGhpcy5kcmF3aW5nQ29udGV4dCl7dmFyIGE9dGhpcy5kcmF3aW5nQ29udGV4dFtuXTtcIm9iamVjdFwiIT09cyhhKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgYSYmKGlbbl09YSl9Zm9yKHZhciBvIGluIHRoaXMuX3JlbmRlcmVyLnJlc2l6ZShlLHQpLHRoaXMud2lkdGg9ZSx0aGlzLmhlaWdodD10LGkpdHJ5e3RoaXMuZHJhd2luZ0NvbnRleHRbb109aVtvXX1jYXRjaChlKXt9cnx8dGhpcy5yZWRyYXcoKX10aGlzLl9hZGRBY2NzT3V0cHV0KCkmJnRoaXMuX3VwZGF0ZUFjY3NPdXRwdXQoKX0sbC5kZWZhdWx0LnByb3RvdHlwZS5ub0NhbnZhcz1mdW5jdGlvbigpe3RoaXMuY2FudmFzJiZ0aGlzLmNhbnZhcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY2FudmFzKX0sbC5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVHcmFwaGljcz1mdW5jdGlvbihlLHQscil7cmV0dXJuIGwuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY3JlYXRlR3JhcGhpY3NcIixhcmd1bWVudHMpLG5ldyBsLmRlZmF1bHQuR3JhcGhpY3MoZSx0LHIsdGhpcyl9LGwuZGVmYXVsdC5wcm90b3R5cGUuYmxlbmRNb2RlPWZ1bmN0aW9uKGUpe2wuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiYmxlbmRNb2RlXCIsYXJndW1lbnRzKSxlPT09dS5OT1JNQUwmJihjb25zb2xlLndhcm4oXCJOT1JNQUwgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgdXNlIGluIGJsZW5kTW9kZS4gZGVmYXVsdGluZyB0byBCTEVORCBpbnN0ZWFkLlwiKSxlPXUuQkxFTkQpLHRoaXMuX3JlbmRlcmVyLmJsZW5kTW9kZShlKX07dmFyIG49bC5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi93ZWJnbC9wNS5SZW5kZXJlckdMXCI6OTAsXCIuL2NvbnN0YW50c1wiOjI2LFwiLi9tYWluXCI6MzYsXCIuL3A1LkdyYXBoaWNzXCI6MzgsXCIuL3A1LlJlbmRlcmVyMkRcIjo0MH1dLDQzOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaD1pKGUoXCIuLi9tYWluXCIpKSxzPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9bCgpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29uc3RhbnRzXCIpKSxjPWkoZShcIi4uL2hlbHBlcnNcIikpO2Z1bmN0aW9uIGwoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBsPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZShcIi4uL2ZyaWVuZGx5X2Vycm9ycy9mZXNfY29yZVwiKSxlKFwiLi4vZnJpZW5kbHlfZXJyb3JzL2ZpbGVfZXJyb3JzXCIpLGUoXCIuLi9mcmllbmRseV9lcnJvcnMvdmFsaWRhdGVfcGFyYW1zXCIpLGguZGVmYXVsdC5wcm90b3R5cGUuX25vcm1hbGl6ZUFyY0FuZ2xlcz1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBhO3JldHVybiBlLT1zLlRXT19QSSpNYXRoLmZsb29yKGUvcy5UV09fUEkpLHQtPXMuVFdPX1BJKk1hdGguZmxvb3IodC9zLlRXT19QSSksYT1NYXRoLm1pbihNYXRoLmFicyhlLXQpLHMuVFdPX1BJLU1hdGguYWJzKGUtdCkpLG4mJihlPWU8PXMuSEFMRl9QST9NYXRoLmF0YW4oci9pKk1hdGgudGFuKGUpKTplPnMuSEFMRl9QSSYmZTw9MypzLkhBTEZfUEk/TWF0aC5hdGFuKHIvaSpNYXRoLnRhbihlKSkrcy5QSTpNYXRoLmF0YW4oci9pKk1hdGgudGFuKGUpKStzLlRXT19QSSx0PXQ8PXMuSEFMRl9QST9NYXRoLmF0YW4oci9pKk1hdGgudGFuKHQpKTp0PnMuSEFMRl9QSSYmdDw9MypzLkhBTEZfUEk/TWF0aC5hdGFuKHIvaSpNYXRoLnRhbih0KSkrcy5QSTpNYXRoLmF0YW4oci9pKk1hdGgudGFuKHQpKStzLlRXT19QSSksdDxlJiYodCs9cy5UV09fUEkpLHtzdGFydDplLHN0b3A6dCxjb3JyZXNwb25kVG9TYW1lUG9pbnQ6YTwxZS01fX0saC5kZWZhdWx0LnByb3RvdHlwZS5hcmM9ZnVuY3Rpb24oZSx0LHIsaSxuLGEsbyxzKXtpZihoLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImFyY1wiLGFyZ3VtZW50cyksIXRoaXMuX3JlbmRlcmVyLl9kb1N0cm9rZSYmIXRoaXMuX3JlbmRlcmVyLl9kb0ZpbGwpcmV0dXJuIHRoaXM7aWYobj09PWEpcmV0dXJuIHRoaXM7bj10aGlzLl90b1JhZGlhbnMobiksYT10aGlzLl90b1JhZGlhbnMoYSkscj1NYXRoLmFicyhyKSxpPU1hdGguYWJzKGkpO3ZhciBsPWMuZGVmYXVsdC5tb2RlQWRqdXN0KGUsdCxyLGksdGhpcy5fcmVuZGVyZXIuX2VsbGlwc2VNb2RlKSx1PXRoaXMuX25vcm1hbGl6ZUFyY0FuZ2xlcyhuLGEsbC53LGwuaCwhMCk7cmV0dXJuIHUuY29ycmVzcG9uZFRvU2FtZVBvaW50P3RoaXMuX3JlbmRlcmVyLmVsbGlwc2UoW2wueCxsLnksbC53LGwuaCxzXSk6KHRoaXMuX3JlbmRlcmVyLmFyYyhsLngsbC55LGwudyxsLmgsdS5zdGFydCx1LnN0b3AsbyxzKSwodGhpcy5fYWNjZXNzaWJsZU91dHB1dHMuZ3JpZHx8dGhpcy5fYWNjZXNzaWJsZU91dHB1dHMudGV4dCkmJnRoaXMuX2FjY3NPdXRwdXQoXCJhcmNcIixbbC54LGwueSxsLncsbC5oLHUuc3RhcnQsdS5zdG9wLG9dKSksdGhpc30saC5kZWZhdWx0LnByb3RvdHlwZS5lbGxpcHNlPWZ1bmN0aW9uKGUsdCxyLGksbil7cmV0dXJuIGguZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiZWxsaXBzZVwiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyRWxsaXBzZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGguZGVmYXVsdC5wcm90b3R5cGUuY2lyY2xlPWZ1bmN0aW9uKCl7aC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjaXJjbGVcIixhcmd1bWVudHMpO3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLDIpO3JldHVybiBlLnB1c2goYXJndW1lbnRzWzJdKSxlLnB1c2goYXJndW1lbnRzWzJdKSx0aGlzLl9yZW5kZXJFbGxpcHNlLmFwcGx5KHRoaXMsZSl9LGguZGVmYXVsdC5wcm90b3R5cGUuX3JlbmRlckVsbGlwc2U9ZnVuY3Rpb24oZSx0LHIsaSxuKXtpZighdGhpcy5fcmVuZGVyZXIuX2RvU3Ryb2tlJiYhdGhpcy5fcmVuZGVyZXIuX2RvRmlsbClyZXR1cm4gdGhpcztyPDAmJihyPU1hdGguYWJzKHIpKSx2b2lkIDA9PT1pP2k9cjppPDAmJihpPU1hdGguYWJzKGkpKTt2YXIgYT1jLmRlZmF1bHQubW9kZUFkanVzdChlLHQscixpLHRoaXMuX3JlbmRlcmVyLl9lbGxpcHNlTW9kZSk7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmVsbGlwc2UoW2EueCxhLnksYS53LGEuaCxuXSksKHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLmdyaWR8fHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLnRleHQpJiZ0aGlzLl9hY2NzT3V0cHV0KFwiZWxsaXBzZVwiLFthLngsYS55LGEudyxhLmhdKSx0aGlzfSxoLmRlZmF1bHQucHJvdG90eXBlLmxpbmU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgaTtoLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImxpbmVcIix0KSx0aGlzLl9yZW5kZXJlci5fZG9TdHJva2UmJihpPXRoaXMuX3JlbmRlcmVyKS5saW5lLmFwcGx5KGksdCk7cmV0dXJuKHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLmdyaWR8fHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLnRleHQpJiZ0aGlzLl9hY2NzT3V0cHV0KFwibGluZVwiLHQpLHRoaXN9LGguZGVmYXVsdC5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgaTtoLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInBvaW50XCIsdCksdGhpcy5fcmVuZGVyZXIuX2RvU3Ryb2tlJiYoMT09PXQubGVuZ3RoJiZ0WzBdaW5zdGFuY2VvZiBoLmRlZmF1bHQuVmVjdG9yP3RoaXMuX3JlbmRlcmVyLnBvaW50LmNhbGwodGhpcy5fcmVuZGVyZXIsdFswXS54LHRbMF0ueSx0WzBdLnopOigoaT10aGlzLl9yZW5kZXJlcikucG9pbnQuYXBwbHkoaSx0KSwodGhpcy5fYWNjZXNzaWJsZU91dHB1dHMuZ3JpZHx8dGhpcy5fYWNjZXNzaWJsZU91dHB1dHMudGV4dCkmJnRoaXMuX2FjY3NPdXRwdXQoXCJwb2ludFwiLHQpKSk7cmV0dXJuIHRoaXN9LGguZGVmYXVsdC5wcm90b3R5cGUucXVhZD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3ZhciBpO2guZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwicXVhZFwiLHQpLCh0aGlzLl9yZW5kZXJlci5fZG9TdHJva2V8fHRoaXMuX3JlbmRlcmVyLl9kb0ZpbGwpJiYodGhpcy5fcmVuZGVyZXIuaXNQM0QmJjEyIT09dC5sZW5ndGg/dGhpcy5fcmVuZGVyZXIucXVhZC5jYWxsKHRoaXMuX3JlbmRlcmVyLHRbMF0sdFsxXSwwLHRbMl0sdFszXSwwLHRbNF0sdFs1XSwwLHRbNl0sdFs3XSwwKTooKGk9dGhpcy5fcmVuZGVyZXIpLnF1YWQuYXBwbHkoaSx0KSwodGhpcy5fYWNjZXNzaWJsZU91dHB1dHMuZ3JpZHx8dGhpcy5fYWNjZXNzaWJsZU91dHB1dHMudGV4dCkmJnRoaXMuX2FjY3NPdXRwdXQoXCJxdWFkcmlsYXRlcmFsXCIsdCkpKTtyZXR1cm4gdGhpc30saC5kZWZhdWx0LnByb3RvdHlwZS5yZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGguZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwicmVjdFwiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyUmVjdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGguZGVmYXVsdC5wcm90b3R5cGUuc3F1YXJlPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8pe3JldHVybiBoLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInNxdWFyZVwiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyUmVjdC5jYWxsKHRoaXMsZSx0LHIscixpLG4sYSxvKX0saC5kZWZhdWx0LnByb3RvdHlwZS5fcmVuZGVyUmVjdD1mdW5jdGlvbigpe2lmKHRoaXMuX3JlbmRlcmVyLl9kb1N0cm9rZXx8dGhpcy5fcmVuZGVyZXIuX2RvRmlsbCl7Mz09PWFyZ3VtZW50cy5sZW5ndGgmJihhcmd1bWVudHNbM109YXJndW1lbnRzWzJdKTtmb3IodmFyIGU9Yy5kZWZhdWx0Lm1vZGVBZGp1c3QoYXJndW1lbnRzWzBdLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0sYXJndW1lbnRzWzNdLHRoaXMuX3JlbmRlcmVyLl9yZWN0TW9kZSksdD1bZS54LGUueSxlLncsZS5oXSxyPTQ7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt0aGlzLl9yZW5kZXJlci5yZWN0KHQpLCh0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy5ncmlkfHx0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy50ZXh0KSYmdGhpcy5fYWNjc091dHB1dChcInJlY3RhbmdsZVwiLFtlLngsZS55LGUudyxlLmhdKX1yZXR1cm4gdGhpc30saC5kZWZhdWx0LnByb3RvdHlwZS50cmlhbmdsZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBoLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRyaWFuZ2xlXCIsdCksKHRoaXMuX3JlbmRlcmVyLl9kb1N0cm9rZXx8dGhpcy5fcmVuZGVyZXIuX2RvRmlsbCkmJnRoaXMuX3JlbmRlcmVyLnRyaWFuZ2xlKHQpLCh0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy5ncmlkfHx0aGlzLl9hY2Nlc3NpYmxlT3V0cHV0cy50ZXh0KSYmdGhpcy5fYWNjc091dHB1dChcInRyaWFuZ2xlXCIsdCksdGhpc307dmFyIG49aC5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi9jb25zdGFudHNcIjoyNixcIi4uL2ZyaWVuZGx5X2Vycm9ycy9mZXNfY29yZVwiOjI4LFwiLi4vZnJpZW5kbHlfZXJyb3JzL2ZpbGVfZXJyb3JzXCI6MjksXCIuLi9mcmllbmRseV9lcnJvcnMvdmFsaWRhdGVfcGFyYW1zXCI6MzEsXCIuLi9oZWxwZXJzXCI6MzIsXCIuLi9tYWluXCI6MzZ9XSw0NDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LGE9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHMoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9bi5kZWZhdWx0LnByb3RvdHlwZS5lbGxpcHNlTW9kZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJlbGxpcHNlTW9kZVwiLGFyZ3VtZW50cyksZSE9PWEuQ09STkVSJiZlIT09YS5DT1JORVJTJiZlIT09YS5SQURJVVMmJmUhPT1hLkNFTlRFUnx8KHRoaXMuX3JlbmRlcmVyLl9lbGxpcHNlTW9kZT1lKSx0aGlzfSxuLmRlZmF1bHQucHJvdG90eXBlLm5vU21vb3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0QXR0cmlidXRlcyhcImFudGlhbGlhc1wiLCExKSx0aGlzLl9yZW5kZXJlci5pc1AzRHx8XCJpbWFnZVNtb290aGluZ0VuYWJsZWRcImluIHRoaXMuZHJhd2luZ0NvbnRleHQmJih0aGlzLmRyYXdpbmdDb250ZXh0LmltYWdlU21vb3RoaW5nRW5hYmxlZD0hMSksdGhpc30sbi5kZWZhdWx0LnByb3RvdHlwZS5yZWN0TW9kZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJyZWN0TW9kZVwiLGFyZ3VtZW50cyksZSE9PWEuQ09STkVSJiZlIT09YS5DT1JORVJTJiZlIT09YS5SQURJVVMmJmUhPT1hLkNFTlRFUnx8KHRoaXMuX3JlbmRlcmVyLl9yZWN0TW9kZT1lKSx0aGlzfSxuLmRlZmF1bHQucHJvdG90eXBlLnNtb290aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEF0dHJpYnV0ZXMoXCJhbnRpYWxpYXNcIiwhMCksdGhpcy5fcmVuZGVyZXIuaXNQM0R8fFwiaW1hZ2VTbW9vdGhpbmdFbmFibGVkXCJpbiB0aGlzLmRyYXdpbmdDb250ZXh0JiYodGhpcy5kcmF3aW5nQ29udGV4dC5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITApLHRoaXN9LG4uZGVmYXVsdC5wcm90b3R5cGUuc3Ryb2tlQ2FwPWZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInN0cm9rZUNhcFwiLGFyZ3VtZW50cyksZSE9PWEuUk9VTkQmJmUhPT1hLlNRVUFSRSYmZSE9PWEuUFJPSkVDVHx8dGhpcy5fcmVuZGVyZXIuc3Ryb2tlQ2FwKGUpLHRoaXN9LG4uZGVmYXVsdC5wcm90b3R5cGUuc3Ryb2tlSm9pbj1mdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzdHJva2VKb2luXCIsYXJndW1lbnRzKSxlIT09YS5ST1VORCYmZSE9PWEuQkVWRUwmJmUhPT1hLk1JVEVSfHx0aGlzLl9yZW5kZXJlci5zdHJva2VKb2luKGUpLHRoaXN9LG4uZGVmYXVsdC5wcm90b3R5cGUuc3Ryb2tlV2VpZ2h0PWZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInN0cm9rZVdlaWdodFwiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyZXIuc3Ryb2tlV2VpZ2h0KGUpLHRoaXN9O3ZhciBsPW4uZGVmYXVsdDtyLmRlZmF1bHQ9bH0se1wiLi4vY29uc3RhbnRzXCI6MjYsXCIuLi9tYWluXCI6MzZ9XSw0NTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGkscz0oaT1lKFwiLi4vbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2UoXCIuLi9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIiksZShcIi4uL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiKSxlKFwiLi4vZnJpZW5kbHlfZXJyb3JzL3ZhbGlkYXRlX3BhcmFtc1wiKSxzLmRlZmF1bHQucHJvdG90eXBlLmJlemllcj1mdW5jdGlvbigpe2Zvcih2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspcltpXT1hcmd1bWVudHNbaV07cmV0dXJuIHMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiYmV6aWVyXCIsciksKHRoaXMuX3JlbmRlcmVyLl9kb1N0cm9rZXx8dGhpcy5fcmVuZGVyZXIuX2RvRmlsbCkmJihlPXRoaXMuX3JlbmRlcmVyKS5iZXppZXIuYXBwbHkoZSxyKSx0aGlzfSxzLmRlZmF1bHQucHJvdG90eXBlLmJlemllckRldGFpbD1mdW5jdGlvbihlKXtyZXR1cm4gcy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJiZXppZXJEZXRhaWxcIixhcmd1bWVudHMpLHRoaXMuX2JlemllckRldGFpbD1lLHRoaXN9LHMuZGVmYXVsdC5wcm90b3R5cGUuYmV6aWVyUG9pbnQ9ZnVuY3Rpb24oZSx0LHIsaSxuKXtzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImJlemllclBvaW50XCIsYXJndW1lbnRzKTt2YXIgYT0xLW47cmV0dXJuIE1hdGgucG93KGEsMykqZSszKk1hdGgucG93KGEsMikqbip0KzMqYSpNYXRoLnBvdyhuLDIpKnIrTWF0aC5wb3cobiwzKSppfSxzLmRlZmF1bHQucHJvdG90eXBlLmJlemllclRhbmdlbnQ9ZnVuY3Rpb24oZSx0LHIsaSxuKXtzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImJlemllclRhbmdlbnRcIixhcmd1bWVudHMpO3ZhciBhPTEtbjtyZXR1cm4gMyppKk1hdGgucG93KG4sMiktMypyKk1hdGgucG93KG4sMikrNipyKmEqbi02KnQqYSpuKzMqdCpNYXRoLnBvdyhhLDIpLTMqZSpNYXRoLnBvdyhhLDIpfSxzLmRlZmF1bHQucHJvdG90eXBlLmN1cnZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07dmFyIGk7cy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjdXJ2ZVwiLHQpLHRoaXMuX3JlbmRlcmVyLl9kb1N0cm9rZSYmKGk9dGhpcy5fcmVuZGVyZXIpLmN1cnZlLmFwcGx5KGksdCk7cmV0dXJuIHRoaXN9LHMuZGVmYXVsdC5wcm90b3R5cGUuY3VydmVEZXRhaWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY3VydmVEZXRhaWxcIixhcmd1bWVudHMpLHRoaXMuX2N1cnZlRGV0YWlsPWU8Mz8zOmUsdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5jdXJ2ZVRpZ2h0bmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gcy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjdXJ2ZVRpZ2h0bmVzc1wiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyZXIuX2N1cnZlVGlnaHRuZXNzPWUsdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5jdXJ2ZVBvaW50PWZ1bmN0aW9uKGUsdCxyLGksbil7cy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjdXJ2ZVBvaW50XCIsYXJndW1lbnRzKTt2YXIgYT1uKm4qbixvPW4qbjtyZXR1cm4gZSooLS41KmErby0uNSpuKSt0KigxLjUqYS0yLjUqbysxKStyKigtMS41KmErMipvKy41Km4pK2kqKC41KmEtLjUqbyl9LHMuZGVmYXVsdC5wcm90b3R5cGUuY3VydmVUYW5nZW50PWZ1bmN0aW9uKGUsdCxyLGksbil7cy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjdXJ2ZVRhbmdlbnRcIixhcmd1bWVudHMpO3ZhciBhPW4qbjtyZXR1cm4gZSooLTMqYS8yKzIqbi0uNSkrdCooOSphLzItNSpuKStyKigtOSphLzIrNCpuKy41KStpKigzKmEvMi1uKX07dmFyIG49cy5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIjoyOCxcIi4uL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiOjI5LFwiLi4vZnJpZW5kbHlfZXJyb3JzL3ZhbGlkYXRlX3BhcmFtc1wiOjMxLFwiLi4vbWFpblwiOjM2fV0sNDY6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLHM9KGk9ZShcIi4uL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxsPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9dSgpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29uc3RhbnRzXCIpKTtmdW5jdGlvbiB1KCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gdT1mdW5jdGlvbigpe3JldHVybiBlfSxlfXZhciBuPW51bGwsaD1bXSxjPVtdLGY9ITEsYT0hMSxkPSExLHA9ITEsbT0hMDtzLmRlZmF1bHQucHJvdG90eXBlLmJlZ2luQ29udG91cj1mdW5jdGlvbigpe3JldHVybiBjPVtdLHA9ITAsdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5iZWdpblNoYXBlPWZ1bmN0aW9uKGUpe3ZhciB0OyhzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImJlZ2luU2hhcGVcIixhcmd1bWVudHMpLHRoaXMuX3JlbmRlcmVyLmlzUDNEKT8odD10aGlzLl9yZW5kZXJlcikuYmVnaW5TaGFwZS5hcHBseSh0LGFyZ3VtZW50cyk6KG49ZT09PWwuUE9JTlRTfHxlPT09bC5MSU5FU3x8ZT09PWwuVFJJQU5HTEVTfHxlPT09bC5UUklBTkdMRV9GQU58fGU9PT1sLlRSSUFOR0xFX1NUUklQfHxlPT09bC5RVUFEU3x8ZT09PWwuUVVBRF9TVFJJUD9lOm51bGwsaD1bXSxjPVtdKTtyZXR1cm4gdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5iZXppZXJWZXJ0ZXg9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgaTtpZihzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImJlemllclZlcnRleFwiLHQpLHRoaXMuX3JlbmRlcmVyLmlzUDNEKShpPXRoaXMuX3JlbmRlcmVyKS5iZXppZXJWZXJ0ZXguYXBwbHkoaSx0KTtlbHNlIGlmKDA9PT1oLmxlbmd0aClzLmRlZmF1bHQuX2ZyaWVuZGx5RXJyb3IoXCJ2ZXJ0ZXgoKSBtdXN0IGJlIHVzZWQgb25jZSBiZWZvcmUgY2FsbGluZyBiZXppZXJWZXJ0ZXgoKVwiLFwiYmV6aWVyVmVydGV4XCIpO2Vsc2V7Zj0hMDtmb3IodmFyIG49W10sYT0wO2E8dC5sZW5ndGg7YSsrKW5bYV09dFthXTtuLmlzVmVydD0hMSxwP2MucHVzaChuKTpoLnB1c2gobil9cmV0dXJuIHRoaXN9LHMuZGVmYXVsdC5wcm90b3R5cGUuY3VydmVWZXJ0ZXg9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgaTsocy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjdXJ2ZVZlcnRleFwiLHQpLHRoaXMuX3JlbmRlcmVyLmlzUDNEKT8oaT10aGlzLl9yZW5kZXJlcikuY3VydmVWZXJ0ZXguYXBwbHkoaSx0KTooYT0hMCx0aGlzLnZlcnRleCh0WzBdLHRbMV0pKTtyZXR1cm4gdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5lbmRDb250b3VyPWZ1bmN0aW9uKCl7dmFyIGU9Y1swXS5zbGljZSgpO2UuaXNWZXJ0PWNbMF0uaXNWZXJ0LGUubW92ZVRvPSExLGMucHVzaChlKSxtJiYoaC5wdXNoKGhbMF0pLG09ITEpO2Zvcih2YXIgdD0wO3Q8Yy5sZW5ndGg7dCsrKWgucHVzaChjW3RdKTtyZXR1cm4gdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5lbmRTaGFwZT1mdW5jdGlvbihlKXtpZihzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImVuZFNoYXBlXCIsYXJndW1lbnRzKSx0aGlzLl9yZW5kZXJlci5pc1AzRCl0aGlzLl9yZW5kZXJlci5lbmRTaGFwZShlLGEsZixkLHAsbik7ZWxzZXtpZigwPT09aC5sZW5ndGgpcmV0dXJuIHRoaXM7aWYoIXRoaXMuX3JlbmRlcmVyLl9kb1N0cm9rZSYmIXRoaXMuX3JlbmRlcmVyLl9kb0ZpbGwpcmV0dXJuIHRoaXM7dmFyIHQ9ZT09PWwuQ0xPU0U7dCYmIXAmJmgucHVzaChoWzBdKSx0aGlzLl9yZW5kZXJlci5lbmRTaGFwZShlLGgsYSxmLGQscCxuKSxtPSEocD1kPWY9YT0hMSksdCYmaC5wb3AoKX1yZXR1cm4gdGhpc30scy5kZWZhdWx0LnByb3RvdHlwZS5xdWFkcmF0aWNWZXJ0ZXg9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtpZihzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInF1YWRyYXRpY1ZlcnRleFwiLHQpLHRoaXMuX3JlbmRlcmVyLmlzUDNEKXt2YXIgaTsoaT10aGlzLl9yZW5kZXJlcikucXVhZHJhdGljVmVydGV4LmFwcGx5KGksdCl9ZWxzZXtpZih0aGlzLl9jb250b3VySW5pdGVkKXt2YXIgbj17fTtyZXR1cm4gbi54PXRbMF0sbi55PXRbMV0sbi54Mz10WzJdLG4ueTM9dFszXSxuLnR5cGU9bC5RVUFEUkFUSUMsdGhpcy5fY29udG91clZlcnRpY2VzLnB1c2gobiksdGhpc31pZigwPGgubGVuZ3RoKXtkPSEwO2Zvcih2YXIgYT1bXSxvPTA7bzx0Lmxlbmd0aDtvKyspYVtvXT10W29dO2EuaXNWZXJ0PSExLHA/Yy5wdXNoKGEpOmgucHVzaChhKX1lbHNlIHMuZGVmYXVsdC5fZnJpZW5kbHlFcnJvcihcInZlcnRleCgpIG11c3QgYmUgdXNlZCBvbmNlIGJlZm9yZSBjYWxsaW5nIHF1YWRyYXRpY1ZlcnRleCgpXCIsXCJxdWFkcmF0aWNWZXJ0ZXhcIil9cmV0dXJuIHRoaXN9LHMuZGVmYXVsdC5wcm90b3R5cGUudmVydGV4PWZ1bmN0aW9uKGUsdCxyLGksbil7aWYodGhpcy5fcmVuZGVyZXIuaXNQM0Qpe3ZhciBhOyhhPXRoaXMuX3JlbmRlcmVyKS52ZXJ0ZXguYXBwbHkoYSxhcmd1bWVudHMpfWVsc2V7dmFyIG89W107by5pc1ZlcnQ9ITAsb1swXT1lLG9bMV09dCxvWzJdPTAsb1szXT0wLG9bNF09MCxvWzVdPXRoaXMuX3JlbmRlcmVyLl9nZXRGaWxsKCksb1s2XT10aGlzLl9yZW5kZXJlci5fZ2V0U3Ryb2tlKCksciYmKG8ubW92ZVRvPXIpLHA/KDA9PT1jLmxlbmd0aCYmKG8ubW92ZVRvPSEwKSxjLnB1c2gobykpOmgucHVzaChvKX1yZXR1cm4gdGhpc307dmFyIHY9cy5kZWZhdWx0O3IuZGVmYXVsdD12fSx7XCIuLi9jb25zdGFudHNcIjoyNixcIi4uL21haW5cIjozNn1dLDQ3OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gaShlKXtyZXR1cm4oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmdW5jdGlvbihlLHQpe3dpbmRvdy5zZXRUaW1lb3V0KGUsMWUzLzYwKX0sXCJ1bmRlZmluZWRcIj09dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHxVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuc2xpY2V8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUsXCJzbGljZVwiLHt2YWx1ZTpBcnJheS5wcm90b3R5cGUuc2xpY2Usd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITF9KSxmdW5jdGlvbigpe2lmKCFPYmplY3QuYXNzaWduKXt2YXIgcz1PYmplY3Qua2V5cyxlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09PWkoU3ltYm9sKCkpLHI9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx1PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gci5jYWxsKHQsZSl9fTtlKE9iamVjdCxcImFzc2lnblwiLHt2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdFwiKTt2YXIgcixpLG4sYSxvPU9iamVjdChlKTtmb3Iocj0xO3I8YXJndW1lbnRzLmxlbmd0aDsrK3IpZm9yKGk9T2JqZWN0KGFyZ3VtZW50c1tyXSksYT1zKGkpLGwmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJmEucHVzaC5hcHBseShhLE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaSkuZmlsdGVyKHUoaSkpKSxuPTA7bjxhLmxlbmd0aDsrK24pb1thW25dXT1pW2Fbbl1dO3JldHVybiBvfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMH0pfX0oKX0se31dLDQ4OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtuLmRlZmF1bHQucHJvdG90eXBlLm5vTG9vcD1mdW5jdGlvbigpe3RoaXMuX2xvb3A9ITF9LG4uZGVmYXVsdC5wcm90b3R5cGUubG9vcD1mdW5jdGlvbigpe3RoaXMuX2xvb3B8fCh0aGlzLl9sb29wPSEwLHRoaXMuX3NldHVwRG9uZSYmdGhpcy5fZHJhdygpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5pc0xvb3Bpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbG9vcH0sbi5kZWZhdWx0LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKCl7dGhpcy5fc3R5bGVzLnB1c2goe3Byb3BzOntfY29sb3JNb2RlOnRoaXMuX2NvbG9yTW9kZX0scmVuZGVyZXI6dGhpcy5fcmVuZGVyZXIucHVzaCgpfSl9LG4uZGVmYXVsdC5wcm90b3R5cGUucG9wPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fc3R5bGVzLnBvcCgpO2U/KHRoaXMuX3JlbmRlcmVyLnBvcChlLnJlbmRlcmVyKSxPYmplY3QuYXNzaWduKHRoaXMsZS5wcm9wcykpOmNvbnNvbGUud2FybihcInBvcCgpIHdhcyBjYWxsZWQgd2l0aG91dCBtYXRjaGluZyBwdXNoKClcIil9LG4uZGVmYXVsdC5wcm90b3R5cGUucmVkcmF3PWZ1bmN0aW9uKGUpe2lmKCF0aGlzLl9pblVzZXJEcmF3JiZ0aGlzLl9zZXR1cERvbmUpe3ZhciB0PXBhcnNlSW50KGUpOyhpc05hTih0KXx8dDwxKSYmKHQ9MSk7dmFyIHI9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygci5kcmF3KXt2b2lkIDA9PT1yLnNldHVwJiZyLnNjYWxlKHIuX3BpeGVsRGVuc2l0eSxyLl9waXhlbERlbnNpdHkpO2Zvcih2YXIgaT1mdW5jdGlvbihlKXtlLmNhbGwocil9LG49MDtuPHQ7bisrKXtyLnJlc2V0TWF0cml4KCksKHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLmdyaWR8fHRoaXMuX2FjY2Vzc2libGVPdXRwdXRzLnRleHQpJiZ0aGlzLl91cGRhdGVBY2NzT3V0cHV0KCksci5fcmVuZGVyZXIuaXNQM0QmJnIuX3JlbmRlcmVyLl91cGRhdGUoKSxyLl9zZXRQcm9wZXJ0eShcImZyYW1lQ291bnRcIixyLmZyYW1lQ291bnQrMSksci5fcmVnaXN0ZXJlZE1ldGhvZHMucHJlLmZvckVhY2goaSksdGhpcy5faW5Vc2VyRHJhdz0hMDt0cnl7ci5kcmF3KCl9ZmluYWxseXt0aGlzLl9pblVzZXJEcmF3PSExfXIuX3JlZ2lzdGVyZWRNZXRob2RzLnBvc3QuZm9yRWFjaChpKX19fX07dmFyIGE9bi5kZWZhdWx0O3IuZGVmYXVsdD1hfSx7XCIuL21haW5cIjozNn1dLDQ5OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxhPShpPWUoXCIuL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTthLmRlZmF1bHQucHJvdG90eXBlLmFwcGx5TWF0cml4PWZ1bmN0aW9uKGUsdCxyLGksbixhKXt2YXIgbztyZXR1cm4obz10aGlzLl9yZW5kZXJlcikuYXBwbHlNYXRyaXguYXBwbHkobyxhcmd1bWVudHMpLHRoaXN9LGEuZGVmYXVsdC5wcm90b3R5cGUucmVzZXRNYXRyaXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIucmVzZXRNYXRyaXgoKSx0aGlzfSxhLmRlZmF1bHQucHJvdG90eXBlLnJvdGF0ZT1mdW5jdGlvbihlLHQpe3JldHVybiBhLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInJvdGF0ZVwiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyZXIucm90YXRlKHRoaXMuX3RvUmFkaWFucyhlKSx0KSx0aGlzfSxhLmRlZmF1bHQucHJvdG90eXBlLnJvdGF0ZVg9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwicm90YXRlWFwiKSxhLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInJvdGF0ZVhcIixhcmd1bWVudHMpLHRoaXMuX3JlbmRlcmVyLnJvdGF0ZVgodGhpcy5fdG9SYWRpYW5zKGUpKSx0aGlzfSxhLmRlZmF1bHQucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwicm90YXRlWVwiKSxhLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInJvdGF0ZVlcIixhcmd1bWVudHMpLHRoaXMuX3JlbmRlcmVyLnJvdGF0ZVkodGhpcy5fdG9SYWRpYW5zKGUpKSx0aGlzfSxhLmRlZmF1bHQucHJvdG90eXBlLnJvdGF0ZVo9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwicm90YXRlWlwiKSxhLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInJvdGF0ZVpcIixhcmd1bWVudHMpLHRoaXMuX3JlbmRlcmVyLnJvdGF0ZVoodGhpcy5fdG9SYWRpYW5zKGUpKSx0aGlzfSxhLmRlZmF1bHQucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKGUsdCxyKXtpZihhLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInNjYWxlXCIsYXJndW1lbnRzKSxlIGluc3RhbmNlb2YgYS5kZWZhdWx0LlZlY3Rvcil7dmFyIGk9ZTtlPWkueCx0PWkueSxyPWkuen1lbHNlIGlmKGUgaW5zdGFuY2VvZiBBcnJheSl7dmFyIG49ZTtlPW5bMF0sdD1uWzFdLHI9blsyXXx8MX1yZXR1cm4gaXNOYU4odCk/dD1yPWU6aXNOYU4ocikmJihyPTEpLHRoaXMuX3JlbmRlcmVyLnNjYWxlLmNhbGwodGhpcy5fcmVuZGVyZXIsZSx0LHIpLHRoaXN9LGEuZGVmYXVsdC5wcm90b3R5cGUuc2hlYXJYPWZ1bmN0aW9uKGUpe2EuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic2hlYXJYXCIsYXJndW1lbnRzKTt2YXIgdD10aGlzLl90b1JhZGlhbnMoZSk7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmFwcGx5TWF0cml4KDEsMCxNYXRoLnRhbih0KSwxLDAsMCksdGhpc30sYS5kZWZhdWx0LnByb3RvdHlwZS5zaGVhclk9ZnVuY3Rpb24oZSl7YS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzaGVhcllcIixhcmd1bWVudHMpO3ZhciB0PXRoaXMuX3RvUmFkaWFucyhlKTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuYXBwbHlNYXRyaXgoMSxNYXRoLnRhbih0KSwwLDEsMCwwKSx0aGlzfSxhLmRlZmF1bHQucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGEuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwidHJhbnNsYXRlXCIsYXJndW1lbnRzKSx0aGlzLl9yZW5kZXJlci5pc1AzRD90aGlzLl9yZW5kZXJlci50cmFuc2xhdGUoZSx0LHIpOnRoaXMuX3JlbmRlcmVyLnRyYW5zbGF0ZShlLHQpLHRoaXN9O3ZhciBuPWEuZGVmYXVsdDtyLmRlZmF1bHQ9bn0se1wiLi9tYWluXCI6MzZ9XSw1MDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLHI9bmV3IEFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9fShlKXx8ZnVuY3Rpb24oZSl7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKXx8XCJbb2JqZWN0IEFyZ3VtZW50c11cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpfSgpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfW4uZGVmYXVsdC5wcm90b3R5cGUuc3RvcmVJdGVtPWZ1bmN0aW9uKGUsdCl7XCJzdHJpbmdcIiE9dHlwZW9mIGUmJmNvbnNvbGUubG9nKFwiVGhlIGFyZ3VtZW50IHRoYXQgeW91IHBhc3NlZCB0byBzdG9yZUl0ZW0oKSAtIFwiLmNvbmNhdChlLFwiIGlzIG5vdCBhIHN0cmluZy5cIikpLGUuZW5kc1dpdGgoXCJwNVR5cGVJRFwiKSYmY29uc29sZS5sb2coXCJUaGUgYXJndW1lbnQgdGhhdCB5b3UgcGFzc2VkIHRvIHN0b3JlSXRlbSgpIC0gXCIuY29uY2F0KGUsXCIgbXVzdCBub3QgZW5kIHdpdGggJ3A1VHlwZUlEJy5cIikpLHZvaWQgMD09PXQmJmNvbnNvbGUubG9nKFwiWW91IGNhbm5vdCBzdG9yZSB1bmRlZmluZWQgdmFyaWFibGVzIHVzaW5nIHN0b3JlSXRlbSgpLlwiKTt2YXIgcj1vKHQpO3N3aXRjaChyKXtjYXNlXCJudW1iZXJcIjpjYXNlXCJib29sZWFuXCI6dD10LnRvU3RyaW5nKCk7YnJlYWs7Y2FzZVwib2JqZWN0XCI6aWYodCBpbnN0YW5jZW9mIG4uZGVmYXVsdC5Db2xvcilyPVwicDUuQ29sb3JcIjtlbHNlIGlmKHQgaW5zdGFuY2VvZiBuLmRlZmF1bHQuVmVjdG9yKXtyPVwicDUuVmVjdG9yXCIsdD1bdC54LHQueSx0LnpdfXQ9SlNPTi5zdHJpbmdpZnkodCl9bG9jYWxTdG9yYWdlLnNldEl0ZW0oZSx0KTt2YXIgaT1cIlwiLmNvbmNhdChlLFwicDVUeXBlSURcIik7bG9jYWxTdG9yYWdlLnNldEl0ZW0oaSxyKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5nZXRJdGVtPWZ1bmN0aW9uKGUpe3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGUpLHI9bG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJcIi5jb25jYXQoZSxcInA1VHlwZUlEXCIpKTtpZih2b2lkIDA9PT1yKWNvbnNvbGUubG9nKFwiVW5hYmxlIHRvIGRldGVybWluZSB0eXBlIG9mIGl0ZW0gc3RvcmVkIHVuZGVyIFwiLmNvbmNhdChlLFwiaW4gbG9jYWwgc3RvcmFnZS4gRGlkIHlvdSBzYXZlIHRoZSBpdGVtIHdpdGggc29tZXRoaW5nIG90aGVyIHRoYW4gc2V0SXRlbSgpP1wiKSk7ZWxzZSBpZihudWxsIT09dClzd2l0Y2gocil7Y2FzZVwibnVtYmVyXCI6dD1wYXJzZUZsb2F0KHQpO2JyZWFrO2Nhc2VcImJvb2xlYW5cIjp0PVwidHJ1ZVwiPT09dDticmVhaztjYXNlXCJvYmplY3RcIjp0PUpTT04ucGFyc2UodCk7YnJlYWs7Y2FzZVwicDUuQ29sb3JcIjp0PUpTT04ucGFyc2UodCksdD10aGlzLmNvbG9yLmFwcGx5KHRoaXMsYSh0LmxldmVscykpO2JyZWFrO2Nhc2VcInA1LlZlY3RvclwiOnQ9SlNPTi5wYXJzZSh0KSx0PXRoaXMuY3JlYXRlVmVjdG9yLmFwcGx5KHRoaXMsYSh0KSl9cmV0dXJuIHR9LG4uZGVmYXVsdC5wcm90b3R5cGUuY2xlYXJTdG9yYWdlPWZ1bmN0aW9uKCl7bG9jYWxTdG9yYWdlLmNsZWFyKCl9LG4uZGVmYXVsdC5wcm90b3R5cGUucmVtb3ZlSXRlbT1mdW5jdGlvbihlKXtcInN0cmluZ1wiIT10eXBlb2YgZSYmY29uc29sZS5sb2coXCJUaGUgYXJndW1lbnQgdGhhdCB5b3UgcGFzc2VkIHRvIHJlbW92ZUl0ZW0oKSAtIFwiLmNvbmNhdChlLFwiIGlzIG5vdCBhIHN0cmluZy5cIikpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGUpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiXCIuY29uY2F0KGUsXCJwNVR5cGVJRFwiKSl9fSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDUxOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtuLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZVN0cmluZ0RpY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVTdHJpbmdEaWN0XCIsYXJndW1lbnRzKSxuZXcgbi5kZWZhdWx0LlN0cmluZ0RpY3QoZSx0KX0sbi5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVOdW1iZXJEaWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY3JlYXRlTnVtYmVyRGljdFwiLGFyZ3VtZW50cyksbmV3IG4uZGVmYXVsdC5OdW1iZXJEaWN0KGUsdCl9LG4uZGVmYXVsdC5UeXBlZERpY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIE9iamVjdD90aGlzLmRhdGE9ZToodGhpcy5kYXRhPXt9LHRoaXMuZGF0YVtlXT10KSx0aGlzfSxuLmRlZmF1bHQuVHlwZWREaWN0LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGF0YSkubGVuZ3RofSxuLmRlZmF1bHQuVHlwZWREaWN0LnByb3RvdHlwZS5oYXNLZXk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShlKX0sbi5kZWZhdWx0LlR5cGVkRGljdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe2lmKHRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gdGhpcy5kYXRhW2VdO2NvbnNvbGUubG9nKFwiXCIuY29uY2F0KGUsXCIgZG9lcyBub3QgZXhpc3QgaW4gdGhpcyBEaWN0aW9uYXJ5XCIpKX0sbi5kZWZhdWx0LlR5cGVkRGljdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5fdmFsaWRhdGUodCk/dGhpcy5kYXRhW2VdPXQ6Y29uc29sZS5sb2coXCJUaG9zZSB2YWx1ZXMgZG9udCB3b3JrIGZvciB0aGlzIGRpY3Rpb25hcnkgdHlwZS5cIil9LG4uZGVmYXVsdC5UeXBlZERpY3QucHJvdG90eXBlLl9hZGRPYmo9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpdGhpcy5zZXQodCxlW3RdKX0sbi5kZWZhdWx0LlR5cGVkRGljdC5wcm90b3R5cGUuY3JlYXRlPWZ1bmN0aW9uKGUsdCl7ZSBpbnN0YW5jZW9mIE9iamVjdCYmdm9pZCAwPT09dD90aGlzLl9hZGRPYmooZSk6dm9pZCAwIT09ZT90aGlzLnNldChlLHQpOmNvbnNvbGUubG9nKFwiSW4gb3JkZXIgdG8gY3JlYXRlIGEgbmV3IERpY3Rpb25hcnkgZW50cnkgeW91IG11c3QgcGFzcyBhbiBvYmplY3Qgb3IgYSBrZXksIHZhbHVlIHBhaXJcIil9LG4uZGVmYXVsdC5UeXBlZERpY3QucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5kYXRhPXt9fSxuLmRlZmF1bHQuVHlwZWREaWN0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRXJyb3IoXCJcIi5jb25jYXQoZSxcIiBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIERpY3Rpb25hcnlcIikpO2RlbGV0ZSB0aGlzLmRhdGFbZV19LG4uZGVmYXVsdC5UeXBlZERpY3QucHJvdG90eXBlLnByaW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuZGF0YSljb25zb2xlLmxvZyhcImtleTpcIi5jb25jYXQoZSxcIiB2YWx1ZTpcIikuY29uY2F0KHRoaXMuZGF0YVtlXSkpfSxuLmRlZmF1bHQuVHlwZWREaWN0LnByb3RvdHlwZS5zYXZlVGFibGU9ZnVuY3Rpb24oZSl7dmFyIHQ9XCJcIjtmb3IodmFyIHIgaW4gdGhpcy5kYXRhKXQrPVwiXCIuY29uY2F0KHIsXCIsXCIpLmNvbmNhdCh0aGlzLmRhdGFbcl0sXCJcXG5cIik7dmFyIGk9bmV3IEJsb2IoW3RdLHt0eXBlOlwidGV4dC9jc3ZcIn0pO24uZGVmYXVsdC5wcm90b3R5cGUuZG93bmxvYWRGaWxlKGksZXx8XCJteWNzdlwiLFwiY3N2XCIpfSxuLmRlZmF1bHQuVHlwZWREaWN0LnByb3RvdHlwZS5zYXZlSlNPTj1mdW5jdGlvbihlLHQpe24uZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUpTT04odGhpcy5kYXRhLGUsdCl9LG4uZGVmYXVsdC5UeXBlZERpY3QucHJvdG90eXBlLl92YWxpZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4hMH0sbi5kZWZhdWx0LlN0cmluZ0RpY3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtuLmRlZmF1bHQuVHlwZWREaWN0LmFwcGx5KHRoaXMsdCl9LG4uZGVmYXVsdC5TdHJpbmdEaWN0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4uZGVmYXVsdC5UeXBlZERpY3QucHJvdG90eXBlKSxuLmRlZmF1bHQuU3RyaW5nRGljdC5wcm90b3R5cGUuX3ZhbGlkYXRlPWZ1bmN0aW9uKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlfSxuLmRlZmF1bHQuTnVtYmVyRGljdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO24uZGVmYXVsdC5UeXBlZERpY3QuYXBwbHkodGhpcyx0KX0sbi5kZWZhdWx0Lk51bWJlckRpY3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5kZWZhdWx0LlR5cGVkRGljdC5wcm90b3R5cGUpLG4uZGVmYXVsdC5OdW1iZXJEaWN0LnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGV9LG4uZGVmYXVsdC5OdW1iZXJEaWN0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSx0KXt0aGlzLmRhdGEuaGFzT3duUHJvcGVydHkoZSk/dGhpcy5kYXRhW2VdKz10OmNvbnNvbGUubG9nKFwiVGhlIGtleSAtIFwiLmNvbmNhdChlLFwiIGRvZXMgbm90IGV4aXN0IGluIHRoaXMgZGljdGlvbmFyeS5cIikpfSxuLmRlZmF1bHQuTnVtYmVyRGljdC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGUsdCl7dGhpcy5hZGQoZSwtdCl9LG4uZGVmYXVsdC5OdW1iZXJEaWN0LnByb3RvdHlwZS5tdWx0PWZ1bmN0aW9uKGUsdCl7dGhpcy5kYXRhLmhhc093blByb3BlcnR5KGUpP3RoaXMuZGF0YVtlXSo9dDpjb25zb2xlLmxvZyhcIlRoZSBrZXkgLSBcIi5jb25jYXQoZSxcIiBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIGRpY3Rpb25hcnkuXCIpKX0sbi5kZWZhdWx0Lk51bWJlckRpY3QucHJvdG90eXBlLmRpdj1mdW5jdGlvbihlLHQpe3RoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShlKT90aGlzLmRhdGFbZV0vPXQ6Y29uc29sZS5sb2coXCJUaGUga2V5IC0gXCIuY29uY2F0KGUsXCIgZG9lcyBub3QgZXhpc3QgaW4gdGhpcyBkaWN0aW9uYXJ5LlwiKSl9LG4uZGVmYXVsdC5OdW1iZXJEaWN0LnByb3RvdHlwZS5fdmFsdWVUZXN0PWZ1bmN0aW9uKGUpe2lmKDA9PT1PYmplY3Qua2V5cyh0aGlzLmRhdGEpLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gc2VhcmNoIGZvciBhIG1pbmltdW0gb3IgbWF4aW11bSB2YWx1ZSBvbiBhbiBlbXB0eSBOdW1iZXJEaWN0XCIpO2lmKDE9PT1PYmplY3Qua2V5cyh0aGlzLmRhdGEpLmxlbmd0aClyZXR1cm4gdGhpcy5kYXRhW09iamVjdC5rZXlzKHRoaXMuZGF0YSlbMF1dO3ZhciB0PXRoaXMuZGF0YVtPYmplY3Qua2V5cyh0aGlzLmRhdGEpWzBdXTtmb3IodmFyIHIgaW4gdGhpcy5kYXRhKXRoaXMuZGF0YVtyXSplPHQqZSYmKHQ9dGhpcy5kYXRhW3JdKTtyZXR1cm4gdH0sbi5kZWZhdWx0Lk51bWJlckRpY3QucHJvdG90eXBlLm1pblZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlVGVzdCgxKX0sbi5kZWZhdWx0Lk51bWJlckRpY3QucHJvdG90eXBlLm1heFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlVGVzdCgtMSl9LG4uZGVmYXVsdC5OdW1iZXJEaWN0LnByb3RvdHlwZS5fa2V5VGVzdD1mdW5jdGlvbihlKXtpZigwPT09T2JqZWN0LmtleXModGhpcy5kYXRhKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHVzZSBtaW5WYWx1ZSBvbiBhbiBlbXB0eSBOdW1iZXJEaWN0XCIpO2lmKDE9PT1PYmplY3Qua2V5cyh0aGlzLmRhdGEpLmxlbmd0aClyZXR1cm4gT2JqZWN0LmtleXModGhpcy5kYXRhKVswXTtmb3IodmFyIHQ9T2JqZWN0LmtleXModGhpcy5kYXRhKVswXSxyPTE7cjxPYmplY3Qua2V5cyh0aGlzLmRhdGEpLmxlbmd0aDtyKyspT2JqZWN0LmtleXModGhpcy5kYXRhKVtyXSplPHQqZSYmKHQ9T2JqZWN0LmtleXModGhpcy5kYXRhKVtyXSk7cmV0dXJuIHR9LG4uZGVmYXVsdC5OdW1iZXJEaWN0LnByb3RvdHlwZS5taW5LZXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa2V5VGVzdCgxKX0sbi5kZWZhdWx0Lk51bWJlckRpY3QucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9rZXlUZXN0KC0xKX07dmFyIGE9bi5kZWZhdWx0LlR5cGVkRGljdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSw1MjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksZj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07ZnVuY3Rpb24gZChlKXtyZXR1cm4oZD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9ZnVuY3Rpb24gbShlLHQscil7KHQuX3VzZXJOb2RlP3QuX3VzZXJOb2RlOmRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKGUpO3ZhciBpPXI/bmV3IGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQoZSx0KTpuZXcgZi5kZWZhdWx0LkVsZW1lbnQoZSx0KTtyZXR1cm4gdC5fZWxlbWVudHMucHVzaChpKSxpfWZ1bmN0aW9uIG4oZSx0LHIsaSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtcInN0cmluZ1wiPT10eXBlb2Yocj1yfHxcIlwiKSYmKHI9W3JdKTt2YXIgYT0hMCxvPSExLHM9dm9pZCAwO3RyeXtmb3IodmFyIGwsdT1yW1N5bWJvbC5pdGVyYXRvcl0oKTshKGE9KGw9dS5uZXh0KCkpLmRvbmUpO2E9ITApe3ZhciBoPWwudmFsdWUsYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic291cmNlXCIpO2Muc2V0QXR0cmlidXRlKFwic3JjXCIsaCksbi5hcHBlbmRDaGlsZChjKX19Y2F0Y2goZSl7bz0hMCxzPWV9ZmluYWxseXt0cnl7YXx8bnVsbD09dS5yZXR1cm58fHUucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IHN9fWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGkpe24uYWRkRXZlbnRMaXN0ZW5lcihcImNhbnBsYXl0aHJvdWdoXCIsZnVuY3Rpb24gZSgpe2koKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjYW5wbGF5dGhyb3VnaFwiLGUpfSl9dmFyIGY9bShuLGUsITApO3JldHVybiBmLmxvYWRlZG1ldGFkYXRhPSExLG4uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRlZG1ldGFkYXRhXCIsZnVuY3Rpb24oKXtmLndpZHRoPW4udmlkZW9XaWR0aCxmLmhlaWdodD1uLnZpZGVvSGVpZ2h0LDA9PT1mLmVsdC53aWR0aCYmKGYuZWx0LndpZHRoPW4udmlkZW9XaWR0aCksMD09PWYuZWx0LmhlaWdodCYmKGYuZWx0LmhlaWdodD1uLnZpZGVvSGVpZ2h0KSxmLnByZXNldFBsYXliYWNrUmF0ZSYmKGYuZWx0LnBsYXliYWNrUmF0ZT1mLnByZXNldFBsYXliYWNrUmF0ZSxkZWxldGUgZi5wcmVzZXRQbGF5YmFja1JhdGUpLGYubG9hZGVkbWV0YWRhdGE9ITB9KSxmfWYuZGVmYXVsdC5wcm90b3R5cGUuc2VsZWN0PWZ1bmN0aW9uKGUsdCl7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzZWxlY3RcIixhcmd1bWVudHMpO3ZhciByPXRoaXMuX2dldENvbnRhaW5lcih0KS5xdWVyeVNlbGVjdG9yKGUpO3JldHVybiByP3RoaXMuX3dyYXBFbGVtZW50KHIpOm51bGx9LGYuZGVmYXVsdC5wcm90b3R5cGUuc2VsZWN0QWxsPWZ1bmN0aW9uKGUsdCl7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzZWxlY3RBbGxcIixhcmd1bWVudHMpO3ZhciByPVtdLGk9dGhpcy5fZ2V0Q29udGFpbmVyKHQpLnF1ZXJ5U2VsZWN0b3JBbGwoZSk7aWYoaSlmb3IodmFyIG49MDtuPGkubGVuZ3RoO24rKyl7dmFyIGE9dGhpcy5fd3JhcEVsZW1lbnQoaVtuXSk7ci5wdXNoKGEpfXJldHVybiByfSxmLmRlZmF1bHQucHJvdG90eXBlLl9nZXRDb250YWluZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQ7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/dD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpfHxkb2N1bWVudDplIGluc3RhbmNlb2YgZi5kZWZhdWx0LkVsZW1lbnQ/dD1lLmVsdDplIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0PWUpLHR9LGYuZGVmYXVsdC5wcm90b3R5cGUuX3dyYXBFbGVtZW50PWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUuY2hpbGRyZW4pO2lmKFwiSU5QVVRcIiE9PWUudGFnTmFtZXx8XCJjaGVja2JveFwiIT09ZS50eXBlKXJldHVyblwiVklERU9cIj09PWUudGFnTmFtZXx8XCJBVURJT1wiPT09ZS50YWdOYW1lP25ldyBmLmRlZmF1bHQuTWVkaWFFbGVtZW50KGUsdGhpcyk6XCJTRUxFQ1RcIj09PWUudGFnTmFtZT90aGlzLmNyZWF0ZVNlbGVjdChuZXcgZi5kZWZhdWx0LkVsZW1lbnQoZSx0aGlzKSk6MDx0Lmxlbmd0aCYmdC5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm5cIklOUFVUXCI9PT1lLnRhZ05hbWV8fFwiTEFCRUxcIj09PWUudGFnTmFtZX0pP3RoaXMuY3JlYXRlUmFkaW8obmV3IGYuZGVmYXVsdC5FbGVtZW50KGUsdGhpcykpOm5ldyBmLmRlZmF1bHQuRWxlbWVudChlLHRoaXMpO3ZhciByPW5ldyBmLmRlZmF1bHQuRWxlbWVudChlLHRoaXMpO3JldHVybiByLmNoZWNrZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lbHQuY2hlY2tlZDoodGhpcy5lbHQuY2hlY2tlZD0hIWFyZ3VtZW50c1swXSx0aGlzKX0scn0sZi5kZWZhdWx0LnByb3RvdHlwZS5yZW1vdmVFbGVtZW50cz1mdW5jdGlvbihlKXtmLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInJlbW92ZUVsZW1lbnRzXCIsYXJndW1lbnRzKTt0aGlzLl9lbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIShlLmVsdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZW1vdmUoKX0pfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuY2hhbmdlZD1mdW5jdGlvbihlKXtyZXR1cm4gZi5kZWZhdWx0LkVsZW1lbnQuX2FkanVzdExpc3RlbmVyKFwiY2hhbmdlXCIsZSx0aGlzKSx0aGlzfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuaW5wdXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGYuZGVmYXVsdC5FbGVtZW50Ll9hZGp1c3RMaXN0ZW5lcihcImlucHV0XCIsZSx0aGlzKSx0aGlzfSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZURpdj1mdW5jdGlvbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpcIlwiLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtyZXR1cm4gdC5pbm5lckhUTUw9ZSxtKHQsdGhpcyl9LGYuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlUD1mdW5jdGlvbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpcIlwiLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInBcIik7cmV0dXJuIHQuaW5uZXJIVE1MPWUsbSh0LHRoaXMpfSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZVNwYW49ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06XCJcIix0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO3JldHVybiB0LmlubmVySFRNTD1lLG0odCx0aGlzKX0sZi5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVJbWc9ZnVuY3Rpb24oKXtmLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImNyZWF0ZUltZ1wiLGFyZ3VtZW50cyk7dmFyIHQscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpLGk9YXJndW1lbnRzO3JldHVybiAxPGkubGVuZ3RoJiZcInN0cmluZ1wiPT10eXBlb2YgaVsxXSYmKHIuYWx0PWlbMV0pLDI8aS5sZW5ndGgmJlwic3RyaW5nXCI9PXR5cGVvZiBpWzJdJiYoci5jcm9zc09yaWdpbj1pWzJdKSxyLnNyYz1pWzBdLHQ9bShyLHRoaXMpLHIuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixmdW5jdGlvbigpe3Qud2lkdGg9ci5vZmZzZXRXaWR0aHx8ci53aWR0aCx0LmhlaWdodD1yLm9mZnNldEhlaWdodHx8ci5oZWlnaHQ7dmFyIGU9aVtpLmxlbmd0aC0xXTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlKHQpfSksdH0sZi5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVBPWZ1bmN0aW9uKGUsdCxyKXtmLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImNyZWF0ZUFcIixhcmd1bWVudHMpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3JldHVybiBpLmhyZWY9ZSxpLmlubmVySFRNTD10LHImJihpLnRhcmdldD1yKSxtKGksdGhpcyl9LGYuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlU2xpZGVyPWZ1bmN0aW9uKGUsdCxyLGkpe2YuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY3JlYXRlU2xpZGVyXCIsYXJndW1lbnRzKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7cmV0dXJuIG4udHlwZT1cInJhbmdlXCIsbi5taW49ZSxuLm1heD10LDA9PT1pP24uc3RlcD0xZS0xODppJiYobi5zdGVwPWkpLFwibnVtYmVyXCI9PXR5cGVvZiByJiYobi52YWx1ZT1yKSxtKG4sdGhpcyl9LGYuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlQnV0dG9uPWZ1bmN0aW9uKGUsdCl7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVCdXR0b25cIixhcmd1bWVudHMpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7cmV0dXJuIHIuaW5uZXJIVE1MPWUsdCYmKHIudmFsdWU9dCksbShyLHRoaXMpfSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZUNoZWNrYm94PWZ1bmN0aW9uKCl7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVDaGVja2JveFwiLGFyZ3VtZW50cyk7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSx0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTt0LnR5cGU9XCJjaGVja2JveFwiLGUuYXBwZW5kQ2hpbGQodCk7dmFyIHI9bShlLHRoaXMpO2lmKHIuY2hlY2tlZD1mdW5jdGlvbigpe3ZhciBlPXIuZWx0LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaW5wdXRcIilbMF07aWYoZSl7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGUuY2hlY2tlZDtlLmNoZWNrZWQ9ISFhcmd1bWVudHNbMF19cmV0dXJuIHJ9LHRoaXMudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIHIudmFsdWU9ZSx0aGlzfSxhcmd1bWVudHNbMF0pe3ZhciBpPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxhYmVsXCIpO3Quc2V0QXR0cmlidXRlKFwiaWRcIixpKSxuLmh0bWxGb3I9aSxyLnZhbHVlKGFyZ3VtZW50c1swXSksbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhcmd1bWVudHNbMF0pKSxlLmFwcGVuZENoaWxkKG4pfXJldHVybiBhcmd1bWVudHNbMV0mJih0LmNoZWNrZWQ9ITApLHJ9LGYuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlU2VsZWN0PWZ1bmN0aW9uKCl7dmFyIGU7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVTZWxlY3RcIixhcmd1bWVudHMpO3ZhciB0PWFyZ3VtZW50c1swXTtpZih0IGluc3RhbmNlb2YgZi5kZWZhdWx0LkVsZW1lbnQmJnQuZWx0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpZT10LHRoaXMuZWx0PXQuZWx0O2Vsc2UgaWYodCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50KWU9bSh0LHRoaXMpLHRoaXMuZWx0PXQ7ZWxzZXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2VsZWN0XCIpO3QmJlwiYm9vbGVhblwiPT10eXBlb2YgdCYmci5zZXRBdHRyaWJ1dGUoXCJtdWx0aXBsZVwiLFwidHJ1ZVwiKSxlPW0ocix0aGlzKSx0aGlzLmVsdD1yfXJldHVybiBlLm9wdGlvbj1mdW5jdGlvbihlLHQpe3ZhciByO2lmKHZvaWQgMCE9PWUpe2Zvcih2YXIgaT0wO2k8dGhpcy5lbHQubGVuZ3RoO2krPTEpaWYodGhpcy5lbHRbaV0uaW5uZXJIVE1MPT09ZSl7cj1pO2JyZWFrfWlmKHZvaWQgMCE9PXIpITE9PT10P3RoaXMuZWx0LnJlbW92ZShyKTp0aGlzLmVsdFtyXS52YWx1ZT10O2Vsc2V7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm9wdGlvblwiKTtuLmlubmVySFRNTD1lLG4udmFsdWU9dm9pZCAwPT09dD9lOnQsdGhpcy5lbHQuYXBwZW5kQ2hpbGQobiksdGhpcy5fcEluc3QuX2VsZW1lbnRzLnB1c2gobil9fX0sZS5zZWxlY3RlZD1mdW5jdGlvbihlKXtpZih2b2lkIDAhPT1lKXtmb3IodmFyIHQ9MDt0PHRoaXMuZWx0Lmxlbmd0aDt0Kz0xKXRoaXMuZWx0W3RdLnZhbHVlLnRvU3RyaW5nKCk9PT1lLnRvU3RyaW5nKCkmJih0aGlzLmVsdC5zZWxlY3RlZEluZGV4PXQpO3JldHVybiB0aGlzfWlmKHRoaXMuZWx0LmdldEF0dHJpYnV0ZShcIm11bHRpcGxlXCIpKXt2YXIgcj1bXSxpPSEwLG49ITEsYT12b2lkIDA7dHJ5e2Zvcih2YXIgbyxzPXRoaXMuZWx0LnNlbGVjdGVkT3B0aW9uc1tTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShvPXMubmV4dCgpKS5kb25lKTtpPSEwKXt2YXIgbD1vLnZhbHVlO3IucHVzaChsLnZhbHVlKX19Y2F0Y2goZSl7bj0hMCxhPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IGF9fXJldHVybiByfXJldHVybiB0aGlzLmVsdC52YWx1ZX0sZS5kaXNhYmxlPWZ1bmN0aW9uKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWZvcih2YXIgdD0wO3Q8dGhpcy5lbHQubGVuZ3RoO3QrKyl0aGlzLmVsdFt0XS52YWx1ZS50b1N0cmluZygpPT09ZSYmKHRoaXMuZWx0W3RdLmRpc2FibGVkPSEwLHRoaXMuZWx0W3RdLnNlbGVjdGVkPSExKTtlbHNlIHRoaXMuZWx0LmRpc2FibGVkPSEwO3JldHVybiB0aGlzfSxlfSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZVJhZGlvPWZ1bmN0aW9uKCl7dmFyIGUsdCxyPWFyZ3VtZW50c1swXTtyIGluc3RhbmNlb2YgSFRNTERpdkVsZW1lbnR8fHIgaW5zdGFuY2VvZiBIVE1MU3BhbkVsZW1lbnQ/KGU9cixcInN0cmluZ1wiPT10eXBlb2YgYXJndW1lbnRzWzFdJiYodD1hcmd1bWVudHNbMV0pKTooXCJzdHJpbmdcIj09dHlwZW9mIHImJih0PXIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSk7dmFyIHA9bSh0aGlzLmVsdD1lLHRoaXMpO3AuX25hbWU9dHx8XCJyYWRpb09wdGlvblwiO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50JiZcInJhZGlvXCI9PT1lLnR5cGV9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS5uZXh0RWxlbWVudFNpYmxpbmcgaW5zdGFuY2VvZiBIVE1MTGFiZWxFbGVtZW50fXJldHVybiBwLl9nZXRPcHRpb25zQXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsdC5jaGlsZHJlbikuZmlsdGVyKGkpfSxwLm9wdGlvbj1mdW5jdGlvbihlLHQpe3ZhciByLGksbj0hMCxhPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHMsbD1wLl9nZXRPcHRpb25zQXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShzPWwubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgdT1zLnZhbHVlO2lmKHUudmFsdWU9PT1lKXtyPXU7YnJlYWt9fX1jYXRjaChlKXthPSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT1sLnJldHVybnx8bC5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgb319cmV0dXJuIHZvaWQgMD09PXImJigocj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIikpLnNldEF0dHJpYnV0ZShcInR5cGVcIixcInJhZGlvXCIpLHIuc2V0QXR0cmlidXRlKFwidmFsdWVcIixlKSx0aGlzLmVsdC5hcHBlbmRDaGlsZChyKSksaChyKT9pPXIubmV4dEVsZW1lbnRTaWJsaW5nOihpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiKSxyLmluc2VydEFkamFjZW50RWxlbWVudChcImFmdGVyZW5kXCIsaSkpLGkuaW5uZXJIVE1MPXZvaWQgMD09PXQ/ZTp0LHIuc2V0QXR0cmlidXRlKFwibmFtZVwiLHAuX25hbWUpLHJ9LHAucmVtb3ZlPWZ1bmN0aW9uKGUpe3ZhciB0PSEwLHI9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbixhPXAuX2dldE9wdGlvbnNBcnJheSgpW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KG49YS5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciBvPW4udmFsdWU7aWYoby52YWx1ZT09PWUpcmV0dXJuIGgobykmJm8ubmV4dEVsZW1lbnRTaWJsaW5nLnJlbW92ZSgpLHZvaWQgby5yZW1vdmUoKX19Y2F0Y2goZSl7cj0hMCxpPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGl9fX0scC52YWx1ZT1mdW5jdGlvbigpe3ZhciBlPVwiXCIsdD0hMCxyPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIG4sYT1wLl9nZXRPcHRpb25zQXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShuPWEubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbz1uLnZhbHVlO2lmKG8uY2hlY2tlZCl7ZT1vLnZhbHVlO2JyZWFrfX19Y2F0Y2goZSl7cj0hMCxpPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGl9fXJldHVybiBlfSxwLnNlbGVjdGVkPWZ1bmN0aW9uKGUpe3ZhciB0PW51bGw7aWYodm9pZCAwPT09ZSl7dmFyIHI9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciBhLG89cC5fZ2V0T3B0aW9uc0FycmF5KClbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0oYT1vLm5leHQoKSkuZG9uZSk7cj0hMCl7dmFyIHM9YS52YWx1ZTtpZihzLmNoZWNrZWQpe3Q9czticmVha319fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3J8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX19ZWxzZXt2YXIgbD0hMCx1PSExLGg9dm9pZCAwO3RyeXtmb3IodmFyIGMsZj1wLl9nZXRPcHRpb25zQXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShsPShjPWYubmV4dCgpKS5kb25lKTtsPSEwKXt2YXIgZD1jLnZhbHVlO2QudmFsdWU9PT1lJiYoZC5zZXRBdHRyaWJ1dGUoXCJjaGVja2VkXCIsITApLHQ9ZCl9fWNhdGNoKGUpe3U9ITAsaD1lfWZpbmFsbHl7dHJ5e2x8fG51bGw9PWYucmV0dXJufHxmLnJldHVybigpfWZpbmFsbHl7aWYodSl0aHJvdyBofX19cmV0dXJuIHR9LHAuZGlzYWJsZT1mdW5jdGlvbigpe3ZhciBlPSEoMDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0sdD0hMCxyPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIG4sYT1wLl9nZXRPcHRpb25zQXJyYXkoKVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShuPWEubmV4dCgpKS5kb25lKTt0PSEwKXtuLnZhbHVlLnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsZSl9fWNhdGNoKGUpe3I9ITAsaT1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBpfX19LHB9LGYuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlQ29sb3JQaWNrZXI9ZnVuY3Rpb24oZSl7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVDb2xvclBpY2tlclwiLGFyZ3VtZW50cyk7dmFyIHQscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7cmV0dXJuIHIudHlwZT1cImNvbG9yXCIsZT9lIGluc3RhbmNlb2YgZi5kZWZhdWx0LkNvbG9yP3IudmFsdWU9ZS50b1N0cmluZyhcIiNycmdnYmJcIik6KGYuZGVmYXVsdC5wcm90b3R5cGUuX2NvbG9yTW9kZT1cInJnYlwiLGYuZGVmYXVsdC5wcm90b3R5cGUuX2NvbG9yTWF4ZXM9e3JnYjpbMjU1LDI1NSwyNTUsMjU1XSxoc2I6WzM2MCwxMDAsMTAwLDFdLGhzbDpbMzYwLDEwMCwxMDAsMV19LHIudmFsdWU9Zi5kZWZhdWx0LnByb3RvdHlwZS5jb2xvcihlKS50b1N0cmluZyhcIiNycmdnYmJcIikpOnIudmFsdWU9XCIjMDAwMDAwXCIsKHQ9bShyLHRoaXMpKS5jb2xvcj1mdW5jdGlvbigpe3JldHVybiBlJiYoZS5tb2RlJiYoZi5kZWZhdWx0LnByb3RvdHlwZS5fY29sb3JNb2RlPWUubW9kZSksZS5tYXhlcyYmKGYuZGVmYXVsdC5wcm90b3R5cGUuX2NvbG9yTWF4ZXM9ZS5tYXhlcykpLGYuZGVmYXVsdC5wcm90b3R5cGUuY29sb3IodGhpcy5lbHQudmFsdWUpfSx0fSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZUlucHV0PWZ1bmN0aW9uKCl7dmFyIGU9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlwiXCIsdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06XCJ0ZXh0XCI7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVJbnB1dFwiLGFyZ3VtZW50cyk7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO3JldHVybiByLnNldEF0dHJpYnV0ZShcInZhbHVlXCIsZSksci5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsdCksbShyLHRoaXMpfSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZUZpbGVJbnB1dD1mdW5jdGlvbihzKXt2YXIgZT0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2YuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY3JlYXRlRmlsZUlucHV0XCIsYXJndW1lbnRzKTtpZih3aW5kb3cuRmlsZSYmd2luZG93LkZpbGVSZWFkZXImJndpbmRvdy5GaWxlTGlzdCYmd2luZG93LkJsb2Ipe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJmaWxlXCIpLGUmJnQuc2V0QXR0cmlidXRlKFwibXVsdGlwbGVcIiwhMCksdC5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsZnVuY3Rpb24oZSl7dmFyIHQ9ITAscj0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBuLGE9ZS50YXJnZXQuZmlsZXNbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obj1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIG89bi52YWx1ZTtmLmRlZmF1bHQuRmlsZS5fbG9hZChvLHMpfX1jYXRjaChlKXtyPSEwLGk9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHIpdGhyb3cgaX19fSwhMSksbSh0LHRoaXMpfWNvbnNvbGUubG9nKFwiVGhlIEZpbGUgQVBJcyBhcmUgbm90IGZ1bGx5IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXIuIENhbm5vdCBjcmVhdGUgZWxlbWVudC5cIil9LGYuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlVmlkZW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVWaWRlb1wiLGFyZ3VtZW50cyksbih0aGlzLFwidmlkZW9cIixlLHQpfSxmLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZUF1ZGlvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGYuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY3JlYXRlQXVkaW9cIixhcmd1bWVudHMpLG4odGhpcyxcImF1ZGlvXCIsZSx0KX0sZi5kZWZhdWx0LnByb3RvdHlwZS5WSURFTz1cInZpZGVvXCIsZi5kZWZhdWx0LnByb3RvdHlwZS5BVURJTz1cImF1ZGlvXCIsdm9pZCAwPT09bmF2aWdhdG9yLm1lZGlhRGV2aWNlcyYmKG5hdmlnYXRvci5tZWRpYURldmljZXM9e30pLHZvaWQgMD09PW5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhJiYobmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWE9ZnVuY3Rpb24ocil7dmFyIGk9bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYXx8bmF2aWdhdG9yLm1vekdldFVzZXJNZWRpYTtyZXR1cm4gaT9uZXcgUHJvbWlzZShmdW5jdGlvbihlLHQpe2kuY2FsbChuYXZpZ2F0b3IscixlLHQpfSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiZ2V0VXNlck1lZGlhIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGJyb3dzZXJcIikpfSksZi5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVDYXB0dXJlPWZ1bmN0aW9uKCl7aWYoZi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVDYXB0dXJlXCIsYXJndW1lbnRzKSwhbmF2aWdhdG9yLm1lZGlhRGV2aWNlc3x8IW5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKXRocm93IG5ldyBET01FeGNlcHRpb24oXCJnZXRVc2VyTWVkaWEgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7dmFyIGUsdCxyPSEwLGk9ITAsbj0hMCxhPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHMsbD1hcmd1bWVudHNbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0ocz1sLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIHU9cy52YWx1ZTt1PT09Zi5kZWZhdWx0LnByb3RvdHlwZS5WSURFTz9pPSExOnU9PT1mLmRlZmF1bHQucHJvdG90eXBlLkFVRElPP3I9ITE6XCJvYmplY3RcIj09PWQodSk/ZT11OlwiZnVuY3Rpb25cIj09dHlwZW9mIHUmJih0PXUpfX1jYXRjaChlKXthPSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT1sLnJldHVybnx8bC5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgb319ZT1lfHx7dmlkZW86cixhdWRpbzppfTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidmlkZW9cIik7aC5zZXRBdHRyaWJ1dGUoXCJwbGF5c2lubGluZVwiLFwiXCIpLG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGUpLnRoZW4oZnVuY3Rpb24odCl7dHJ5e1wic3JjT2JqZWN0XCJpbiBoP2guc3JjT2JqZWN0PXQ6aC5zcmM9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwodCl9Y2F0Y2goZSl7aC5zcmM9dH19LGNvbnNvbGUubG9nKTt2YXIgYz1tKGgsdGhpcywhMCk7cmV0dXJuIGMubG9hZGVkbWV0YWRhdGE9ITEsaC5hZGRFdmVudExpc3RlbmVyKFwibG9hZGVkbWV0YWRhdGFcIixmdW5jdGlvbigpe2gucGxheSgpLGgud2lkdGg/KGMud2lkdGg9aC53aWR0aCxjLmhlaWdodD1oLmhlaWdodCk6KGMud2lkdGg9Yy5lbHQud2lkdGg9aC52aWRlb1dpZHRoLGMuaGVpZ2h0PWMuZWx0LmhlaWdodD1oLnZpZGVvSGVpZ2h0KSxjLmxvYWRlZG1ldGFkYXRhPSEwLHQmJnQoaC5zcmNPYmplY3QpfSksY30sZi5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsdCl7Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVFbGVtZW50XCIsYXJndW1lbnRzKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiB2b2lkIDAhPT10JiYoci5pbm5lckhUTUw9dCksbShyLHRoaXMpfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuYWRkQ2xhc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWx0LmNsYXNzTmFtZT90aGlzLmhhc0NsYXNzKGUpfHwodGhpcy5lbHQuY2xhc3NOYW1lPXRoaXMuZWx0LmNsYXNzTmFtZStcIiBcIitlKTp0aGlzLmVsdC5jbGFzc05hbWU9ZSx0aGlzfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWx0LmNsYXNzTGlzdC5yZW1vdmUoZSksdGhpc30sZi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLmhhc0NsYXNzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVsdC5jbGFzc0xpc3QuY29udGFpbnMoZSl9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS50b2dnbGVDbGFzcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbHQuY2xhc3NMaXN0LmNvbnRhaW5zKGUpP3RoaXMuZWx0LmNsYXNzTGlzdC5yZW1vdmUoZSk6dGhpcy5lbHQuY2xhc3NMaXN0LmFkZChlKSx0aGlzfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuY2hpbGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5lbHQuY2hpbGROb2RlczooXCJzdHJpbmdcIj09dHlwZW9mIGU/KFwiI1wiPT09ZVswXSYmKGU9ZS5zdWJzdHJpbmcoMSkpLGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSkpOmUgaW5zdGFuY2VvZiBmLmRlZmF1bHQuRWxlbWVudCYmKGU9ZS5lbHQpLGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdGhpcy5lbHQuYXBwZW5kQ2hpbGQoZSksdGhpcyl9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5jZW50ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbHQuc3R5bGUuZGlzcGxheSxyPVwibm9uZVwiPT09dGhpcy5lbHQuc3R5bGUuZGlzcGxheSxpPVwibm9uZVwiPT09dGhpcy5wYXJlbnQoKS5zdHlsZS5kaXNwbGF5LG49e3g6dGhpcy5lbHQub2Zmc2V0TGVmdCx5OnRoaXMuZWx0Lm9mZnNldFRvcH07ciYmdGhpcy5zaG93KCksaSYmdGhpcy5wYXJlbnQoKS5zaG93KCksdGhpcy5lbHQuc3R5bGUuZGlzcGxheT1cImJsb2NrXCIsdGhpcy5wb3NpdGlvbigwLDApO3ZhciBhPU1hdGguYWJzKHRoaXMucGFyZW50KCkub2Zmc2V0V2lkdGgtdGhpcy5lbHQub2Zmc2V0V2lkdGgpLG89TWF0aC5hYnModGhpcy5wYXJlbnQoKS5vZmZzZXRIZWlnaHQtdGhpcy5lbHQub2Zmc2V0SGVpZ2h0KTtyZXR1cm5cImJvdGhcIj09PWV8fHZvaWQgMD09PWU/dGhpcy5wb3NpdGlvbihhLzIrdGhpcy5wYXJlbnQoKS5vZmZzZXRMZWZ0LG8vMit0aGlzLnBhcmVudCgpLm9mZnNldFRvcCk6XCJob3Jpem9udGFsXCI9PT1lP3RoaXMucG9zaXRpb24oYS8yK3RoaXMucGFyZW50KCkub2Zmc2V0TGVmdCxuLnkpOlwidmVydGljYWxcIj09PWUmJnRoaXMucG9zaXRpb24obi54LG8vMit0aGlzLnBhcmVudCgpLm9mZnNldFRvcCksdGhpcy5zdHlsZShcImRpc3BsYXlcIix0KSxyJiZ0aGlzLmhpZGUoKSxpJiZ0aGlzLnBhcmVudCgpLmhpZGUoKSx0aGlzfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuaHRtbD1mdW5jdGlvbigpe3JldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLmVsdC5pbm5lckhUTUw6KGFyZ3VtZW50c1sxXT90aGlzLmVsdC5pbnNlcnRBZGphY2VudEhUTUwoXCJiZWZvcmVlbmRcIixhcmd1bWVudHNbMF0pOnRoaXMuZWx0LmlubmVySFRNTD1hcmd1bWVudHNbMF0sdGhpcyl9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5wb3NpdGlvbj1mdW5jdGlvbigpe2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybnt4OnRoaXMuZWx0Lm9mZnNldExlZnQseTp0aGlzLmVsdC5vZmZzZXRUb3B9O3ZhciBlPVwiYWJzb2x1dGVcIjtyZXR1cm5cInN0YXRpY1wiIT09YXJndW1lbnRzWzJdJiZcImZpeGVkXCIhPT1hcmd1bWVudHNbMl0mJlwicmVsYXRpdmVcIiE9PWFyZ3VtZW50c1syXSYmXCJzdGlja3lcIiE9PWFyZ3VtZW50c1syXSYmXCJpbml0aWFsXCIhPT1hcmd1bWVudHNbMl0mJlwiaW5oZXJpdFwiIT09YXJndW1lbnRzWzJdfHwoZT1hcmd1bWVudHNbMl0pLHRoaXMuZWx0LnN0eWxlLnBvc2l0aW9uPWUsdGhpcy5lbHQuc3R5bGUubGVmdD1hcmd1bWVudHNbMF0rXCJweFwiLHRoaXMuZWx0LnN0eWxlLnRvcD1hcmd1bWVudHNbMV0rXCJweFwiLHRoaXMueD1hcmd1bWVudHNbMF0sdGhpcy55PWFyZ3VtZW50c1sxXSx0aGlzfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuX3RyYW5zbGF0ZT1mdW5jdGlvbigpe3RoaXMuZWx0LnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIjt2YXIgZT1cIlwiO3JldHVybiB0aGlzLmVsdC5zdHlsZS50cmFuc2Zvcm0mJihlPShlPXRoaXMuZWx0LnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKC90cmFuc2xhdGUzZFxcKC4qXFwpL2csXCJcIikpLnJlcGxhY2UoL3RyYW5zbGF0ZVtYLVpdP1xcKC4qXFwpL2csXCJcIikpLDI9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuZWx0LnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZShcIithcmd1bWVudHNbMF0rXCJweCwgXCIrYXJndW1lbnRzWzFdK1wicHgpXCI6Mjxhcmd1bWVudHMubGVuZ3RoJiYodGhpcy5lbHQuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlM2QoXCIrYXJndW1lbnRzWzBdK1wicHgsXCIrYXJndW1lbnRzWzFdK1wicHgsXCIrYXJndW1lbnRzWzJdK1wicHgpXCIsdGhpcy5lbHQucGFyZW50RWxlbWVudC5zdHlsZS5wZXJzcGVjdGl2ZT0zPT09YXJndW1lbnRzLmxlbmd0aD9cIjEwMDBweFwiOmFyZ3VtZW50c1szXStcInB4XCIpLHRoaXMuZWx0LnN0eWxlLnRyYW5zZm9ybSs9ZSx0aGlzfSxmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUuX3JvdGF0ZT1mdW5jdGlvbigpe3ZhciBlPVwiXCI7cmV0dXJuIHRoaXMuZWx0LnN0eWxlLnRyYW5zZm9ybSYmKGU9KGU9dGhpcy5lbHQuc3R5bGUudHJhbnNmb3JtLnJlcGxhY2UoL3JvdGF0ZTNkXFwoLipcXCkvZyxcIlwiKSkucmVwbGFjZSgvcm90YXRlW1gtWl0/XFwoLipcXCkvZyxcIlwiKSksMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lbHQuc3R5bGUudHJhbnNmb3JtPVwicm90YXRlKFwiK2FyZ3VtZW50c1swXStcImRlZylcIjoyPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLmVsdC5zdHlsZS50cmFuc2Zvcm09XCJyb3RhdGUoXCIrYXJndW1lbnRzWzBdK1wiZGVnLCBcIithcmd1bWVudHNbMV0rXCJkZWcpXCI6Mz09PWFyZ3VtZW50cy5sZW5ndGgmJih0aGlzLmVsdC5zdHlsZS50cmFuc2Zvcm09XCJyb3RhdGVYKFwiK2FyZ3VtZW50c1swXStcImRlZylcIix0aGlzLmVsdC5zdHlsZS50cmFuc2Zvcm0rPVwicm90YXRlWShcIithcmd1bWVudHNbMV0rXCJkZWcpXCIsdGhpcy5lbHQuc3R5bGUudHJhbnNmb3JtKz1cInJvdGF0ZVooXCIrYXJndW1lbnRzWzJdK1wiZGVnKVwiKSx0aGlzLmVsdC5zdHlsZS50cmFuc2Zvcm0rPWUsdGhpc30sZi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnN0eWxlPWZ1bmN0aW9uKGUsdCl7aWYodCBpbnN0YW5jZW9mIGYuZGVmYXVsdC5Db2xvciYmKHQ9XCJyZ2JhKFwiK3QubGV2ZWxzWzBdK1wiLFwiK3QubGV2ZWxzWzFdK1wiLFwiK3QubGV2ZWxzWzJdK1wiLFwiK3QubGV2ZWxzWzNdLzI1NStcIilcIiksdm9pZCAwPT09dCl7aWYoLTE9PT1lLmluZGV4T2YoXCI6XCIpKXJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsdCkuZ2V0UHJvcGVydHlWYWx1ZShlKTtmb3IodmFyIHI9ZS5zcGxpdChcIjtcIiksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbj1yW2ldLnNwbGl0KFwiOlwiKTtuWzBdJiZuWzFdJiYodGhpcy5lbHQuc3R5bGVbblswXS50cmltKCldPW5bMV0udHJpbSgpKX19ZWxzZSBpZih0aGlzLmVsdC5zdHlsZVtlXT10LFwid2lkdGhcIj09PWV8fFwiaGVpZ2h0XCI9PT1lfHxcImxlZnRcIj09PWV8fFwidG9wXCI9PT1lKXt2YXIgYT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsdCkuZ2V0UHJvcGVydHlWYWx1ZShlKS5yZXBsYWNlKC9cXEQrL2csXCJcIik7dGhpc1tlXT1wYXJzZUludChhLDEwKX1yZXR1cm4gdGhpc30sZi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLmF0dHJpYnV0ZT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PXRoaXMuZWx0LmZpcnN0Q2hpbGR8fFwiY2hlY2tib3hcIiE9PXRoaXMuZWx0LmZpcnN0Q2hpbGQudHlwZSYmXCJyYWRpb1wiIT09dGhpcy5lbHQuZmlyc3RDaGlsZC50eXBlKXJldHVybiB2b2lkIDA9PT10P3RoaXMuZWx0LmdldEF0dHJpYnV0ZShlKToodGhpcy5lbHQuc2V0QXR0cmlidXRlKGUsdCksdGhpcyk7aWYodm9pZCAwPT09dClyZXR1cm4gdGhpcy5lbHQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoZSk7Zm9yKHZhciByPTA7cjx0aGlzLmVsdC5jaGlsZE5vZGVzLmxlbmd0aDtyKyspdGhpcy5lbHQuY2hpbGROb2Rlc1tyXS5zZXRBdHRyaWJ1dGUoZSx0KX0sZi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbihlKXtpZihudWxsIT10aGlzLmVsdC5maXJzdENoaWxkJiYoXCJjaGVja2JveFwiPT09dGhpcy5lbHQuZmlyc3RDaGlsZC50eXBlfHxcInJhZGlvXCI9PT10aGlzLmVsdC5maXJzdENoaWxkLnR5cGUpKWZvcih2YXIgdD0wO3Q8dGhpcy5lbHQuY2hpbGROb2Rlcy5sZW5ndGg7dCsrKXRoaXMuZWx0LmNoaWxkTm9kZXNbdF0ucmVtb3ZlQXR0cmlidXRlKGUpO3JldHVybiB0aGlzLmVsdC5yZW1vdmVBdHRyaWJ1dGUoZSksdGhpc30sZi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD8odGhpcy5lbHQudmFsdWU9YXJndW1lbnRzWzBdLHRoaXMpOlwicmFuZ2VcIj09PXRoaXMuZWx0LnR5cGU/cGFyc2VGbG9hdCh0aGlzLmVsdC52YWx1ZSk6dGhpcy5lbHQudmFsdWV9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWx0LnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHRoaXN9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWx0LnN0eWxlLmRpc3BsYXk9XCJub25lXCIsdGhpc30sZi5kZWZhdWx0LkVsZW1lbnQucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oZSx0KXtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm57d2lkdGg6dGhpcy5lbHQub2Zmc2V0V2lkdGgsaGVpZ2h0OnRoaXMuZWx0Lm9mZnNldEhlaWdodH07dmFyIHI9ZSxpPXQsbj1mLmRlZmF1bHQucHJvdG90eXBlLkFVVE87aWYociE9PW58fGkhPT1uKXtpZihyPT09bj9yPXQqdGhpcy53aWR0aC90aGlzLmhlaWdodDppPT09biYmKGk9ZSp0aGlzLmhlaWdodC90aGlzLndpZHRoKSx0aGlzLmVsdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KXt2YXIgYSxvPXt9LHM9dGhpcy5lbHQuZ2V0Q29udGV4dChcIjJkXCIpO2ZvcihhIGluIHMpb1thXT1zW2FdO2ZvcihhIGluIHRoaXMuZWx0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIscip0aGlzLl9wSW5zdC5fcGl4ZWxEZW5zaXR5KSx0aGlzLmVsdC5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIixpKnRoaXMuX3BJbnN0Ll9waXhlbERlbnNpdHkpLHRoaXMuZWx0LnN0eWxlLndpZHRoPXIrXCJweFwiLHRoaXMuZWx0LnN0eWxlLmhlaWdodD1pK1wicHhcIix0aGlzLl9wSW5zdC5zY2FsZSh0aGlzLl9wSW5zdC5fcGl4ZWxEZW5zaXR5LHRoaXMuX3BJbnN0Ll9waXhlbERlbnNpdHkpLG8pdGhpcy5lbHQuZ2V0Q29udGV4dChcIjJkXCIpW2FdPW9bYV19ZWxzZSB0aGlzLmVsdC5zdHlsZS53aWR0aD1yK1wicHhcIix0aGlzLmVsdC5zdHlsZS5oZWlnaHQ9aStcInB4XCIsdGhpcy5lbHQud2lkdGg9cix0aGlzLmVsdC5oZWlnaHQ9aTt0aGlzLndpZHRoPXRoaXMuZWx0Lm9mZnNldFdpZHRoLHRoaXMuaGVpZ2h0PXRoaXMuZWx0Lm9mZnNldEhlaWdodCx0aGlzLl9wSW5zdCYmdGhpcy5fcEluc3QuX2N1ckVsZW1lbnQmJnRoaXMuX3BJbnN0Ll9jdXJFbGVtZW50LmVsdD09PXRoaXMuZWx0JiYodGhpcy5fcEluc3QuX3NldFByb3BlcnR5KFwid2lkdGhcIix0aGlzLmVsdC5vZmZzZXRXaWR0aCksdGhpcy5fcEluc3QuX3NldFByb3BlcnR5KFwiaGVpZ2h0XCIsdGhpcy5lbHQub2Zmc2V0SGVpZ2h0KSl9cmV0dXJuIHRoaXN9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgZi5kZWZhdWx0Lk1lZGlhRWxlbWVudCl7dGhpcy5zdG9wKCk7dmFyIGU9dGhpcy5lbHQuc3JjT2JqZWN0O2lmKG51bGwhPT1lKWUuZ2V0VHJhY2tzKCkuZm9yRWFjaChmdW5jdGlvbihlKXtlLnN0b3AoKX0pfXZhciB0PXRoaXMuX3BJbnN0Ll9lbGVtZW50cy5pbmRleE9mKHRoaXMpO2Zvcih2YXIgciBpbi0xIT09dCYmdGhpcy5fcEluc3QuX2VsZW1lbnRzLnNwbGljZSh0LDEpLHRoaXMuX2V2ZW50cyl0aGlzLmVsdC5yZW1vdmVFdmVudExpc3RlbmVyKHIsdGhpcy5fZXZlbnRzW3JdKTt0aGlzLmVsdCYmdGhpcy5lbHQucGFyZW50Tm9kZSYmdGhpcy5lbHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsdCl9LGYuZGVmYXVsdC5FbGVtZW50LnByb3RvdHlwZS5kcm9wPWZ1bmN0aW9uKG4sYSl7aWYod2luZG93LkZpbGUmJndpbmRvdy5GaWxlUmVhZGVyJiZ3aW5kb3cuRmlsZUxpc3QmJndpbmRvdy5CbG9iKXtpZighdGhpcy5fZHJhZ0Rpc2FibGVkKXt0aGlzLl9kcmFnRGlzYWJsZWQ9ITA7dmFyIGU9ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfTt0aGlzLmVsdC5hZGRFdmVudExpc3RlbmVyKFwiZHJhZ292ZXJcIixlKSx0aGlzLmVsdC5hZGRFdmVudExpc3RlbmVyKFwiZHJhZ2xlYXZlXCIsZSl9Zi5kZWZhdWx0LkVsZW1lbnQuX2F0dGFjaExpc3RlbmVyKFwiZHJvcFwiLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiZhLmNhbGwodGhpcyxlKTtmb3IodmFyIHQ9ZS5kYXRhVHJhbnNmZXIuZmlsZXMscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10W3JdO2YuZGVmYXVsdC5GaWxlLl9sb2FkKGksbil9fSx0aGlzKX1lbHNlIGNvbnNvbGUubG9nKFwiVGhlIEZpbGUgQVBJcyBhcmUgbm90IGZ1bGx5IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXIuXCIpO3JldHVybiB0aGlzfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50PWZ1bmN0aW9uKGksZSl7Zi5kZWZhdWx0LkVsZW1lbnQuY2FsbCh0aGlzLGksZSk7dmFyIG49dGhpczt0aGlzLmVsdC5jcm9zc09yaWdpbj1cImFub255bW91c1wiLHRoaXMuX3ByZXZUaW1lPTAsdGhpcy5fY3VlSURDb3VudGVyPTAsdGhpcy5fY3Vlcz1bXSwodGhpcy5fcGl4ZWxzU3RhdGU9dGhpcykuX3BpeGVsRGVuc2l0eT0xLHRoaXMuX21vZGlmaWVkPSExLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwic3JjXCIse2dldDpmdW5jdGlvbigpe3ZhciBlPW4uZWx0LmNoaWxkcmVuWzBdLnNyYyx0PW4uZWx0LnNyYz09PXdpbmRvdy5sb2NhdGlvbi5ocmVmP1wiXCI6bi5lbHQuc3JjO3JldHVybiBlPT09d2luZG93LmxvY2F0aW9uLmhyZWY/dDplfSxzZXQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxuLmVsdC5jaGlsZHJlbi5sZW5ndGg7dCsrKW4uZWx0LnJlbW92ZUNoaWxkKG4uZWx0LmNoaWxkcmVuW3RdKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic291cmNlXCIpO3Iuc3JjPWUsaS5hcHBlbmRDaGlsZChyKSxuLmVsdC5zcmM9ZSxuLm1vZGlmaWVkPSEwfX0pLG4uX29uZW5kZWQ9ZnVuY3Rpb24oKXt9LG4uZWx0Lm9uZW5kZWQ9ZnVuY3Rpb24oKXtuLl9vbmVuZGVkKG4pfX0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShmLmRlZmF1bHQuRWxlbWVudC5wcm90b3R5cGUpLGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnBsYXk9ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXM7cmV0dXJuIHRoaXMuZWx0LmN1cnJlbnRUaW1lPT09dGhpcy5lbHQuZHVyYXRpb24mJih0aGlzLmVsdC5jdXJyZW50VGltZT0wKSwoZT0oMTx0aGlzLmVsdC5yZWFkeVN0YXRlfHx0aGlzLmVsdC5sb2FkKCksdGhpcy5lbHQucGxheSgpKSkmJmUuY2F0Y2gmJmUuY2F0Y2goZnVuY3Rpb24oZSl7XCJOb3RBbGxvd2VkRXJyb3JcIj09PWUubmFtZT9mLmRlZmF1bHQuX2ZyaWVuZGx5QXV0b3BsYXlFcnJvcih0LnNyYyk6Y29uc29sZS5lcnJvcihcIk1lZGlhIHBsYXkgbWV0aG9kIGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgZXJyb3JcIixlKX0pLHRoaXN9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbHQucGF1c2UoKSx0aGlzLmVsdC5jdXJyZW50VGltZT0wLHRoaXN9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWx0LnBhdXNlKCksdGhpc30sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUubG9vcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsdC5zZXRBdHRyaWJ1dGUoXCJsb29wXCIsITApLHRoaXMucGxheSgpLHRoaXN9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLm5vTG9vcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsdC5yZW1vdmVBdHRyaWJ1dGUoXCJsb29wXCIpLHRoaXN9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLl9zZXR1cEF1dG9wbGF5RmFpbERldGVjdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGYuZGVmYXVsdC5fZnJpZW5kbHlBdXRvcGxheUVycm9yKGUuc3JjKX0sNTAwKTt0aGlzLmVsdC5hZGRFdmVudExpc3RlbmVyKFwicGxheVwiLGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyVGltZW91dCh0KX0se3Bhc3NpdmU6ITAsb25jZTohMH0pfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5hdXRvcGxheT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9dGhpcy5lbHQuZ2V0QXR0cmlidXRlKFwiYXV0b3BsYXlcIik7aWYodGhpcy5lbHQuc2V0QXR0cmlidXRlKFwiYXV0b3BsYXlcIixlKSxlJiYhcil7dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gdC5fc2V0dXBBdXRvcGxheUZhaWxEZXRlY3Rpb24oKX07ND09PXRoaXMuZWx0LnJlYWR5U3RhdGU/aSgpOnRoaXMuZWx0LmFkZEV2ZW50TGlzdGVuZXIoXCJjYW5wbGF5XCIsaSx7cGFzc2l2ZTohMCxvbmNlOiEwfSl9cmV0dXJuIHRoaXN9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnZvbHVtZT1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzLmVsdC52b2x1bWU7dGhpcy5lbHQudm9sdW1lPWV9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnNwZWVkPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIHRoaXMucHJlc2V0UGxheWJhY2tSYXRlfHx0aGlzLmVsdC5wbGF5YmFja1JhdGU7dGhpcy5sb2FkZWRtZXRhZGF0YT90aGlzLmVsdC5wbGF5YmFja1JhdGU9ZTp0aGlzLnByZXNldFBsYXliYWNrUmF0ZT1lfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS50aW1lPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP3RoaXMuZWx0LmN1cnJlbnRUaW1lOih0aGlzLmVsdC5jdXJyZW50VGltZT1lLHRoaXMpfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsdC5kdXJhdGlvbn0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUucGl4ZWxzPVtdLGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLl9lbnN1cmVDYW52YXM9ZnVuY3Rpb24oKXt0aGlzLmNhbnZhc3x8KHRoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIiksdGhpcy5kcmF3aW5nQ29udGV4dD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIiksdGhpcy5zZXRNb2RpZmllZCghMCkpLHRoaXMubG9hZGVkbWV0YWRhdGEmJih0aGlzLmNhbnZhcy53aWR0aCE9PXRoaXMuZWx0LndpZHRoJiYodGhpcy5jYW52YXMud2lkdGg9dGhpcy5lbHQud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuZWx0LmhlaWdodCx0aGlzLndpZHRoPXRoaXMuY2FudmFzLndpZHRoLHRoaXMuaGVpZ2h0PXRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5kcmF3aW5nQ29udGV4dC5kcmF3SW1hZ2UodGhpcy5lbHQsMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5zZXRNb2RpZmllZCghMCkpfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5sb2FkUGl4ZWxzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Vuc3VyZUNhbnZhcygpLGYuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5sb2FkUGl4ZWxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUudXBkYXRlUGl4ZWxzPWZ1bmN0aW9uKGUsdCxyLGkpe3JldHVybiB0aGlzLmxvYWRlZG1ldGFkYXRhJiYodGhpcy5fZW5zdXJlQ2FudmFzKCksZi5kZWZhdWx0LlJlbmRlcmVyMkQucHJvdG90eXBlLnVwZGF0ZVBpeGVscy5jYWxsKHRoaXMsZSx0LHIsaSkpLHRoaXMuc2V0TW9kaWZpZWQoITApLHRoaXN9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbnN1cmVDYW52YXMoKSxmLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuZ2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUuX2dldFBpeGVsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9hZFBpeGVscygpLGYuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5fZ2V0UGl4ZWwuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0LHIpe3RoaXMubG9hZGVkbWV0YWRhdGEmJih0aGlzLl9lbnN1cmVDYW52YXMoKSxmLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuc2V0LmNhbGwodGhpcyxlLHQsciksdGhpcy5zZXRNb2RpZmllZCghMCkpfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKCl7dGhpcy5fZW5zdXJlQ2FudmFzKCksZi5kZWZhdWx0LnByb3RvdHlwZS5jb3B5LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUubWFzaz1mdW5jdGlvbigpe3RoaXMubG9hZFBpeGVscygpLHRoaXMuc2V0TW9kaWZpZWQoITApLGYuZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUubWFzay5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLmlzTW9kaWZpZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW9kaWZpZWR9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnNldE1vZGlmaWVkPWZ1bmN0aW9uKGUpe3RoaXMuX21vZGlmaWVkPWV9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLm9uZW5kZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX29uZW5kZWQ9ZSx0aGlzfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKGUpe3ZhciB0LHI7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZi5kZWZhdWx0LnByb3RvdHlwZS5nZXRBdWRpb0NvbnRleHQpdD1mLmRlZmF1bHQucHJvdG90eXBlLmdldEF1ZGlvQ29udGV4dCgpLHI9Zi5kZWZhdWx0LnNvdW5kT3V0LmlucHV0O2Vsc2UgdHJ5e3I9KHQ9ZS5jb250ZXh0KS5kZXN0aW5hdGlvbn1jYXRjaChlKXt0aHJvd1wiY29ubmVjdCgpIGlzIG1lYW50IHRvIGJlIHVzZWQgd2l0aCBXZWIgQXVkaW8gQVBJIG9yIHA1LnNvdW5kLmpzXCJ9dGhpcy5hdWRpb1NvdXJjZU5vZGV8fCh0aGlzLmF1ZGlvU291cmNlTm9kZT10LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSh0aGlzLmVsdCksdGhpcy5hdWRpb1NvdXJjZU5vZGUuY29ubmVjdChyKSksZT9lLmlucHV0P3RoaXMuYXVkaW9Tb3VyY2VOb2RlLmNvbm5lY3QoZS5pbnB1dCk6dGhpcy5hdWRpb1NvdXJjZU5vZGUuY29ubmVjdChlKTp0aGlzLmF1ZGlvU291cmNlTm9kZS5jb25uZWN0KHIpfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKCl7aWYoIXRoaXMuYXVkaW9Tb3VyY2VOb2RlKXRocm93XCJub3RoaW5nIHRvIGRpc2Nvbm5lY3RcIjt0aGlzLmF1ZGlvU291cmNlTm9kZS5kaXNjb25uZWN0KCl9LGYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLnNob3dDb250cm9scz1mdW5jdGlvbigpe3RoaXMuZWx0LnN0eWxlW1widGV4dC1hbGlnblwiXT1cImluaGVyaXRcIix0aGlzLmVsdC5jb250cm9scz0hMH0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUuaGlkZUNvbnRyb2xzPWZ1bmN0aW9uKCl7dGhpcy5lbHQuY29udHJvbHM9ITF9O2Z1bmN0aW9uIGEoZSx0LHIsaSl7dGhpcy5jYWxsYmFjaz1lLHRoaXMudGltZT10LHRoaXMuaWQ9cix0aGlzLnZhbD1pfWYuZGVmYXVsdC5NZWRpYUVsZW1lbnQucHJvdG90eXBlLmFkZEN1ZT1mdW5jdGlvbihlLHQscil7dmFyIGk9dGhpcy5fY3VlSURDb3VudGVyKyssbj1uZXcgYSh0LGUsaSxyKTtyZXR1cm4gdGhpcy5fY3Vlcy5wdXNoKG4pLHRoaXMuZWx0Lm9udGltZXVwZGF0ZXx8KHRoaXMuZWx0Lm9udGltZXVwZGF0ZT10aGlzLl9vblRpbWVVcGRhdGUuYmluZCh0aGlzKSksaX0sZi5kZWZhdWx0Lk1lZGlhRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ3VlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8dGhpcy5fY3Vlcy5sZW5ndGg7dCsrKXRoaXMuX2N1ZXNbdF0uaWQ9PT1lJiYoY29uc29sZS5sb2coZSksdGhpcy5fY3Vlcy5zcGxpY2UodCwxKSk7MD09PXRoaXMuX2N1ZXMubGVuZ3RoJiYodGhpcy5lbHQub250aW1ldXBkYXRlPW51bGwpfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5jbGVhckN1ZXM9ZnVuY3Rpb24oKXt0aGlzLl9jdWVzPVtdLHRoaXMuZWx0Lm9udGltZXVwZGF0ZT1udWxsfSxmLmRlZmF1bHQuTWVkaWFFbGVtZW50LnByb3RvdHlwZS5fb25UaW1lVXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMudGltZSgpLHQ9MDt0PHRoaXMuX2N1ZXMubGVuZ3RoO3QrKyl7dmFyIHI9dGhpcy5fY3Vlc1t0XS50aW1lLGk9dGhpcy5fY3Vlc1t0XS52YWw7dGhpcy5fcHJldlRpbWU8ciYmcjw9ZSYmdGhpcy5fY3Vlc1t0XS5jYWxsYmFjayhpKX10aGlzLl9wcmV2VGltZT1lfSxmLmRlZmF1bHQuRmlsZT1mdW5jdGlvbihlLHQpe3RoaXMuZmlsZT1lLHRoaXMuX3BJbnN0PXQ7dmFyIHI9ZS50eXBlLnNwbGl0KFwiL1wiKTt0aGlzLnR5cGU9clswXSx0aGlzLnN1YnR5cGU9clsxXSx0aGlzLm5hbWU9ZS5uYW1lLHRoaXMuc2l6ZT1lLnNpemUsdGhpcy5kYXRhPXZvaWQgMH0sZi5kZWZhdWx0LkZpbGUuX2NyZWF0ZUxvYWRlcj1mdW5jdGlvbihpLG4pe3ZhciBlPW5ldyBGaWxlUmVhZGVyO3JldHVybiBlLm9ubG9hZD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgZi5kZWZhdWx0LkZpbGUoaSk7aWYoXCJhcHBsaWNhdGlvbi9qc29uXCI9PT10LmZpbGUudHlwZSl0LmRhdGE9SlNPTi5wYXJzZShlLnRhcmdldC5yZXN1bHQpO2Vsc2UgaWYoXCJ0ZXh0L3htbFwiPT09dC5maWxlLnR5cGUpe3ZhciByPShuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZS50YXJnZXQucmVzdWx0LFwidGV4dC94bWxcIik7dC5kYXRhPW5ldyBmLmRlZmF1bHQuWE1MKHIuZG9jdW1lbnRFbGVtZW50KX1lbHNlIHQuZGF0YT1lLnRhcmdldC5yZXN1bHQ7bih0KX0sZX0sZi5kZWZhdWx0LkZpbGUuX2xvYWQ9ZnVuY3Rpb24oZSx0KXtpZigvXnRleHRcXC8vLnRlc3QoZS50eXBlKXx8XCJhcHBsaWNhdGlvbi9qc29uXCI9PT1lLnR5cGUpZi5kZWZhdWx0LkZpbGUuX2NyZWF0ZUxvYWRlcihlLHQpLnJlYWRBc1RleHQoZSk7ZWxzZSBpZigvXih2aWRlb3xhdWRpbylcXC8vLnRlc3QoZS50eXBlKSl7dmFyIHI9bmV3IGYuZGVmYXVsdC5GaWxlKGUpO3IuZGF0YT1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpLHQocil9ZWxzZSBmLmRlZmF1bHQuRmlsZS5fY3JlYXRlTG9hZGVyKGUsdCkucmVhZEFzRGF0YVVSTChlKX07dmFyIG89Zi5kZWZhdWx0O3IuZGVmYXVsdD1vfSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDUzOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxhPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29yZS9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHMoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9bi5kZWZhdWx0LnByb3RvdHlwZS5kZXZpY2VPcmllbnRhdGlvbj0xPHdpbmRvdy5pbm5lcldpZHRoL3dpbmRvdy5pbm5lckhlaWdodD9cImxhbmRzY2FwZVwiOlwicG9ydHJhaXRcIixuLmRlZmF1bHQucHJvdG90eXBlLmFjY2VsZXJhdGlvblg9MCxuLmRlZmF1bHQucHJvdG90eXBlLmFjY2VsZXJhdGlvblk9MCxuLmRlZmF1bHQucHJvdG90eXBlLmFjY2VsZXJhdGlvblo9MCxuLmRlZmF1bHQucHJvdG90eXBlLnBBY2NlbGVyYXRpb25YPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5wQWNjZWxlcmF0aW9uWT0wLG4uZGVmYXVsdC5wcm90b3R5cGUucEFjY2VsZXJhdGlvblo9MCxuLmRlZmF1bHQucHJvdG90eXBlLl91cGRhdGVQQWNjZWxlcmF0aW9ucz1mdW5jdGlvbigpe3RoaXMuX3NldFByb3BlcnR5KFwicEFjY2VsZXJhdGlvblhcIix0aGlzLmFjY2VsZXJhdGlvblgpLHRoaXMuX3NldFByb3BlcnR5KFwicEFjY2VsZXJhdGlvbllcIix0aGlzLmFjY2VsZXJhdGlvblkpLHRoaXMuX3NldFByb3BlcnR5KFwicEFjY2VsZXJhdGlvblpcIix0aGlzLmFjY2VsZXJhdGlvblopfSxuLmRlZmF1bHQucHJvdG90eXBlLnJvdGF0aW9uWD0wLG4uZGVmYXVsdC5wcm90b3R5cGUucm90YXRpb25ZPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5yb3RhdGlvblo9MCxuLmRlZmF1bHQucHJvdG90eXBlLnBSb3RhdGlvblg9MCxuLmRlZmF1bHQucHJvdG90eXBlLnBSb3RhdGlvblk9MDt2YXIgdT1uLmRlZmF1bHQucHJvdG90eXBlLnBSb3RhdGlvblo9MCxoPTAsYz0wLGY9XCJjbG9ja3dpc2VcIixkPVwiY2xvY2t3aXNlXCIscD1cImNsb2Nrd2lzZVwiO24uZGVmYXVsdC5wcm90b3R5cGUucFJvdGF0ZURpcmVjdGlvblg9dm9pZCAwLG4uZGVmYXVsdC5wcm90b3R5cGUucFJvdGF0ZURpcmVjdGlvblk9dm9pZCAwLG4uZGVmYXVsdC5wcm90b3R5cGUucFJvdGF0ZURpcmVjdGlvblo9dm9pZCAwLG4uZGVmYXVsdC5wcm90b3R5cGUuX3VwZGF0ZVBSb3RhdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLl9zZXRQcm9wZXJ0eShcInBSb3RhdGlvblhcIix0aGlzLnJvdGF0aW9uWCksdGhpcy5fc2V0UHJvcGVydHkoXCJwUm90YXRpb25ZXCIsdGhpcy5yb3RhdGlvblkpLHRoaXMuX3NldFByb3BlcnR5KFwicFJvdGF0aW9uWlwiLHRoaXMucm90YXRpb25aKX0sbi5kZWZhdWx0LnByb3RvdHlwZS50dXJuQXhpcz12b2lkIDA7dmFyIG09LjUsdj0zMDtuLmRlZmF1bHQucHJvdG90eXBlLnNldE1vdmVUaHJlc2hvbGQ9ZnVuY3Rpb24oZSl7bi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzZXRNb3ZlVGhyZXNob2xkXCIsYXJndW1lbnRzKSxtPWV9LG4uZGVmYXVsdC5wcm90b3R5cGUuc2V0U2hha2VUaHJlc2hvbGQ9ZnVuY3Rpb24oZSl7bi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzZXRTaGFrZVRocmVzaG9sZFwiLGFyZ3VtZW50cyksdj1lfSxuLmRlZmF1bHQucHJvdG90eXBlLl9vbmRldmljZW9yaWVudGF0aW9uPWZ1bmN0aW9uKGUpe3RoaXMuX3VwZGF0ZVBSb3RhdGlvbnMoKSx0aGlzLl9hbmdsZU1vZGU9PT1hLnJhZGlhbnMmJihlLmJldGE9ZS5iZXRhKihfUEkvMTgwKSxlLmdhbW1hPWUuZ2FtbWEqKF9QSS8xODApLGUuYWxwaGE9ZS5hbHBoYSooX1BJLzE4MCkpLHRoaXMuX3NldFByb3BlcnR5KFwicm90YXRpb25YXCIsZS5iZXRhKSx0aGlzLl9zZXRQcm9wZXJ0eShcInJvdGF0aW9uWVwiLGUuZ2FtbWEpLHRoaXMuX3NldFByb3BlcnR5KFwicm90YXRpb25aXCIsZS5hbHBoYSksdGhpcy5faGFuZGxlTW90aW9uKCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX29uZGV2aWNlbW90aW9uPWZ1bmN0aW9uKGUpe3RoaXMuX3VwZGF0ZVBBY2NlbGVyYXRpb25zKCksdGhpcy5fc2V0UHJvcGVydHkoXCJhY2NlbGVyYXRpb25YXCIsMiplLmFjY2VsZXJhdGlvbi54KSx0aGlzLl9zZXRQcm9wZXJ0eShcImFjY2VsZXJhdGlvbllcIiwyKmUuYWNjZWxlcmF0aW9uLnkpLHRoaXMuX3NldFByb3BlcnR5KFwiYWNjZWxlcmF0aW9uWlwiLDIqZS5hY2NlbGVyYXRpb24ueiksdGhpcy5faGFuZGxlTW90aW9uKCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX2hhbmRsZU1vdGlvbj1mdW5jdGlvbigpezkwPT09d2luZG93Lm9yaWVudGF0aW9ufHwtOTA9PT13aW5kb3cub3JpZW50YXRpb24/dGhpcy5fc2V0UHJvcGVydHkoXCJkZXZpY2VPcmllbnRhdGlvblwiLFwibGFuZHNjYXBlXCIpOjA9PT13aW5kb3cub3JpZW50YXRpb24/dGhpcy5fc2V0UHJvcGVydHkoXCJkZXZpY2VPcmllbnRhdGlvblwiLFwicG9ydHJhaXRcIik6dm9pZCAwPT09d2luZG93Lm9yaWVudGF0aW9uJiZ0aGlzLl9zZXRQcm9wZXJ0eShcImRldmljZU9yaWVudGF0aW9uXCIsXCJ1bmRlZmluZWRcIik7dmFyIGUsdCxyPXRoaXMuX2lzR2xvYmFsP3dpbmRvdzp0aGlzO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIuZGV2aWNlTW92ZWQmJihNYXRoLmFicyh0aGlzLmFjY2VsZXJhdGlvblgtdGhpcy5wQWNjZWxlcmF0aW9uWCk+bXx8TWF0aC5hYnModGhpcy5hY2NlbGVyYXRpb25ZLXRoaXMucEFjY2VsZXJhdGlvblkpPm18fE1hdGguYWJzKHRoaXMuYWNjZWxlcmF0aW9uWi10aGlzLnBBY2NlbGVyYXRpb25aKT5tKSYmci5kZXZpY2VNb3ZlZCgpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIuZGV2aWNlVHVybmVkKXt2YXIgaT10aGlzLnJvdGF0aW9uWCsxODAsbj10aGlzLnBSb3RhdGlvblgrMTgwLGE9dSsxODA7MDxpLW4mJmktbjwyNzB8fGktbjwtMjcwP2Y9XCJjbG9ja3dpc2VcIjooaS1uPDB8fDI3MDxpLW4pJiYoZj1cImNvdW50ZXItY2xvY2t3aXNlXCIpLGYhPT10aGlzLnBSb3RhdGVEaXJlY3Rpb25YJiYoYT1pKSw5MDxNYXRoLmFicyhpLWEpJiZNYXRoLmFicyhpLWEpPDI3MCYmKGE9aSx0aGlzLl9zZXRQcm9wZXJ0eShcInR1cm5BeGlzXCIsXCJYXCIpLHIuZGV2aWNlVHVybmVkKCkpLHRoaXMucFJvdGF0ZURpcmVjdGlvblg9Zix1PWEtMTgwO3ZhciBvPXRoaXMucm90YXRpb25ZKzE4MCxzPXRoaXMucFJvdGF0aW9uWSsxODAsbD1oKzE4MDswPG8tcyYmby1zPDI3MHx8by1zPC0yNzA/ZD1cImNsb2Nrd2lzZVwiOihvLXM8MHx8MjcwPG8tdGhpcy5wUm90YXRpb25ZKSYmKGQ9XCJjb3VudGVyLWNsb2Nrd2lzZVwiKSxkIT09dGhpcy5wUm90YXRlRGlyZWN0aW9uWSYmKGw9byksOTA8TWF0aC5hYnMoby1sKSYmTWF0aC5hYnMoby1sKTwyNzAmJihsPW8sdGhpcy5fc2V0UHJvcGVydHkoXCJ0dXJuQXhpc1wiLFwiWVwiKSxyLmRldmljZVR1cm5lZCgpKSx0aGlzLnBSb3RhdGVEaXJlY3Rpb25ZPWQsaD1sLTE4MCwwPHRoaXMucm90YXRpb25aLXRoaXMucFJvdGF0aW9uWiYmdGhpcy5yb3RhdGlvblotdGhpcy5wUm90YXRpb25aPDI3MHx8dGhpcy5yb3RhdGlvblotdGhpcy5wUm90YXRpb25aPC0yNzA/cD1cImNsb2Nrd2lzZVwiOih0aGlzLnJvdGF0aW9uWi10aGlzLnBSb3RhdGlvblo8MHx8MjcwPHRoaXMucm90YXRpb25aLXRoaXMucFJvdGF0aW9uWikmJihwPVwiY291bnRlci1jbG9ja3dpc2VcIikscCE9PXRoaXMucFJvdGF0ZURpcmVjdGlvblomJihjPXRoaXMucm90YXRpb25aKSw5MDxNYXRoLmFicyh0aGlzLnJvdGF0aW9uWi1jKSYmTWF0aC5hYnModGhpcy5yb3RhdGlvblotYyk8MjcwJiYoYz10aGlzLnJvdGF0aW9uWix0aGlzLl9zZXRQcm9wZXJ0eShcInR1cm5BeGlzXCIsXCJaXCIpLHIuZGV2aWNlVHVybmVkKCkpLHRoaXMucFJvdGF0ZURpcmVjdGlvblo9cCx0aGlzLl9zZXRQcm9wZXJ0eShcInR1cm5BeGlzXCIsdm9pZCAwKX1cImZ1bmN0aW9uXCI9PXR5cGVvZiByLmRldmljZVNoYWtlbiYmKG51bGwhPT10aGlzLnBBY2NlbGVyYXRpb25YJiYoZT1NYXRoLmFicyh0aGlzLmFjY2VsZXJhdGlvblgtdGhpcy5wQWNjZWxlcmF0aW9uWCksdD1NYXRoLmFicyh0aGlzLmFjY2VsZXJhdGlvblktdGhpcy5wQWNjZWxlcmF0aW9uWSkpLHY8ZSt0JiZyLmRldmljZVNoYWtlbigpKX07dmFyIGw9bi5kZWZhdWx0O3IuZGVmYXVsdD1sfSx7XCIuLi9jb3JlL2NvbnN0YW50c1wiOjI2LFwiLi4vY29yZS9tYWluXCI6MzZ9XSw1NDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LnByb3RvdHlwZS5pc0tleVByZXNzZWQ9ITEsbi5kZWZhdWx0LnByb3RvdHlwZS5rZXlJc1ByZXNzZWQ9ITEsbi5kZWZhdWx0LnByb3RvdHlwZS5rZXk9XCJcIixuLmRlZmF1bHQucHJvdG90eXBlLmtleUNvZGU9MCxuLmRlZmF1bHQucHJvdG90eXBlLl9vbmtleWRvd249ZnVuY3Rpb24oZSl7aWYoIXRoaXMuX2Rvd25LZXlzW2Uud2hpY2hdKXt0aGlzLl9zZXRQcm9wZXJ0eShcImlzS2V5UHJlc3NlZFwiLCEwKSx0aGlzLl9zZXRQcm9wZXJ0eShcImtleUlzUHJlc3NlZFwiLCEwKSx0aGlzLl9zZXRQcm9wZXJ0eShcImtleUNvZGVcIixlLndoaWNoKSx0aGlzLl9kb3duS2V5c1tlLndoaWNoXT0hMCx0aGlzLl9zZXRQcm9wZXJ0eShcImtleVwiLGUua2V5fHxTdHJpbmcuZnJvbUNoYXJDb2RlKGUud2hpY2gpfHxlLndoaWNoKTt2YXIgdD10aGlzLl9pc0dsb2JhbD93aW5kb3c6dGhpcztpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmtleVByZXNzZWQmJiFlLmNoYXJDb2RlKSExPT09dC5rZXlQcmVzc2VkKGUpJiZlLnByZXZlbnREZWZhdWx0KCl9fSxuLmRlZmF1bHQucHJvdG90eXBlLl9vbmtleXVwPWZ1bmN0aW9uKGUpe3RoaXMuX2Rvd25LZXlzW2Uud2hpY2hdPSExLHRoaXMuX2FyZURvd25LZXlzKCl8fCh0aGlzLl9zZXRQcm9wZXJ0eShcImlzS2V5UHJlc3NlZFwiLCExKSx0aGlzLl9zZXRQcm9wZXJ0eShcImtleUlzUHJlc3NlZFwiLCExKSksdGhpcy5fc2V0UHJvcGVydHkoXCJfbGFzdEtleUNvZGVUeXBlZFwiLG51bGwpLHRoaXMuX3NldFByb3BlcnR5KFwia2V5XCIsZS5rZXl8fFN0cmluZy5mcm9tQ2hhckNvZGUoZS53aGljaCl8fGUud2hpY2gpLHRoaXMuX3NldFByb3BlcnR5KFwia2V5Q29kZVwiLGUud2hpY2gpO3ZhciB0PXRoaXMuX2lzR2xvYmFsP3dpbmRvdzp0aGlzO1wiZnVuY3Rpb25cIj09dHlwZW9mIHQua2V5UmVsZWFzZWQmJiExPT09dC5rZXlSZWxlYXNlZChlKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSxuLmRlZmF1bHQucHJvdG90eXBlLl9vbmtleXByZXNzPWZ1bmN0aW9uKGUpe2lmKGUud2hpY2ghPT10aGlzLl9sYXN0S2V5Q29kZVR5cGVkKXt0aGlzLl9zZXRQcm9wZXJ0eShcIl9sYXN0S2V5Q29kZVR5cGVkXCIsZS53aGljaCksdGhpcy5fc2V0UHJvcGVydHkoXCJrZXlcIixlLmtleXx8U3RyaW5nLmZyb21DaGFyQ29kZShlLndoaWNoKXx8ZS53aGljaCk7dmFyIHQ9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdC5rZXlUeXBlZCkhMT09PXQua2V5VHlwZWQoZSkmJmUucHJldmVudERlZmF1bHQoKX19LG4uZGVmYXVsdC5wcm90b3R5cGUuX29uYmx1cj1mdW5jdGlvbihlKXt0aGlzLl9kb3duS2V5cz17fX0sbi5kZWZhdWx0LnByb3RvdHlwZS5rZXlJc0Rvd249ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwia2V5SXNEb3duXCIsYXJndW1lbnRzKSx0aGlzLl9kb3duS2V5c1tlXXx8ITF9LG4uZGVmYXVsdC5wcm90b3R5cGUuX2FyZURvd25LZXlzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuX2Rvd25LZXlzKWlmKHRoaXMuX2Rvd25LZXlzLmhhc093blByb3BlcnR5KGUpJiYhMD09PXRoaXMuX2Rvd25LZXlzW2VdKXJldHVybiEwO3JldHVybiExfTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sNTU6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LGE9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1uLmRlZmF1bHQucHJvdG90eXBlLm1vdmVkWD0wLG4uZGVmYXVsdC5wcm90b3R5cGUubW92ZWRZPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5faGFzTW91c2VJbnRlcmFjdGVkPSExLG4uZGVmYXVsdC5wcm90b3R5cGUubW91c2VYPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5tb3VzZVk9MCxuLmRlZmF1bHQucHJvdG90eXBlLnBtb3VzZVg9MCxuLmRlZmF1bHQucHJvdG90eXBlLnBtb3VzZVk9MCxuLmRlZmF1bHQucHJvdG90eXBlLndpbk1vdXNlWD0wLG4uZGVmYXVsdC5wcm90b3R5cGUud2luTW91c2VZPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5wd2luTW91c2VYPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5wd2luTW91c2VZPTAsbi5kZWZhdWx0LnByb3RvdHlwZS5tb3VzZUJ1dHRvbj0wLG4uZGVmYXVsdC5wcm90b3R5cGUubW91c2VJc1ByZXNzZWQ9ITEsbi5kZWZhdWx0LnByb3RvdHlwZS5fdXBkYXRlTmV4dE1vdXNlQ29vcmRzPWZ1bmN0aW9uKGUpe2lmKG51bGwhPT10aGlzLl9jdXJFbGVtZW50JiYoIWUudG91Y2hlc3x8MDxlLnRvdWNoZXMubGVuZ3RoKSl7dmFyIHQ9ZnVuY3Rpb24oZSx0LHIsaSl7aSYmIWkuY2xpZW50WCYmKGkudG91Y2hlcz9pPWkudG91Y2hlc1swXTppLmNoYW5nZWRUb3VjaGVzJiYoaT1pLmNoYW5nZWRUb3VjaGVzWzBdKSk7dmFyIG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWUuc2Nyb2xsV2lkdGgvdHx8MSxvPWUuc2Nyb2xsSGVpZ2h0L3J8fDE7cmV0dXJue3g6KGkuY2xpZW50WC1uLmxlZnQpL2EseTooaS5jbGllbnRZLW4udG9wKS9vLHdpblg6aS5jbGllbnRYLHdpblk6aS5jbGllbnRZLGlkOmkuaWRlbnRpZmllcn19KHRoaXMuX2N1ckVsZW1lbnQuZWx0LHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsZSk7dGhpcy5fc2V0UHJvcGVydHkoXCJtb3ZlZFhcIixlLm1vdmVtZW50WCksdGhpcy5fc2V0UHJvcGVydHkoXCJtb3ZlZFlcIixlLm1vdmVtZW50WSksdGhpcy5fc2V0UHJvcGVydHkoXCJtb3VzZVhcIix0LngpLHRoaXMuX3NldFByb3BlcnR5KFwibW91c2VZXCIsdC55KSx0aGlzLl9zZXRQcm9wZXJ0eShcIndpbk1vdXNlWFwiLHQud2luWCksdGhpcy5fc2V0UHJvcGVydHkoXCJ3aW5Nb3VzZVlcIix0LndpblkpfXRoaXMuX2hhc01vdXNlSW50ZXJhY3RlZHx8KHRoaXMuX3VwZGF0ZU1vdXNlQ29vcmRzKCksdGhpcy5fc2V0UHJvcGVydHkoXCJfaGFzTW91c2VJbnRlcmFjdGVkXCIsITApKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fdXBkYXRlTW91c2VDb29yZHM9ZnVuY3Rpb24oKXt0aGlzLl9zZXRQcm9wZXJ0eShcInBtb3VzZVhcIix0aGlzLm1vdXNlWCksdGhpcy5fc2V0UHJvcGVydHkoXCJwbW91c2VZXCIsdGhpcy5tb3VzZVkpLHRoaXMuX3NldFByb3BlcnR5KFwicHdpbk1vdXNlWFwiLHRoaXMud2luTW91c2VYKSx0aGlzLl9zZXRQcm9wZXJ0eShcInB3aW5Nb3VzZVlcIix0aGlzLndpbk1vdXNlWSksdGhpcy5fc2V0UHJvcGVydHkoXCJfcG1vdXNlV2hlZWxEZWx0YVlcIix0aGlzLl9tb3VzZVdoZWVsRGVsdGFZKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fc2V0TW91c2VCdXR0b249ZnVuY3Rpb24oZSl7MT09PWUuYnV0dG9uP3RoaXMuX3NldFByb3BlcnR5KFwibW91c2VCdXR0b25cIixhLkNFTlRFUik6Mj09PWUuYnV0dG9uP3RoaXMuX3NldFByb3BlcnR5KFwibW91c2VCdXR0b25cIixhLlJJR0hUKTp0aGlzLl9zZXRQcm9wZXJ0eShcIm1vdXNlQnV0dG9uXCIsYS5MRUZUKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fb25tb3VzZW1vdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7dGhpcy5fdXBkYXRlTmV4dE1vdXNlQ29vcmRzKGUpLHRoaXMubW91c2VJc1ByZXNzZWQ/XCJmdW5jdGlvblwiPT10eXBlb2YgdC5tb3VzZURyYWdnZWQ/ITE9PT10Lm1vdXNlRHJhZ2dlZChlKSYmZS5wcmV2ZW50RGVmYXVsdCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIHQudG91Y2hNb3ZlZCYmITE9PT10LnRvdWNoTW92ZWQoZSkmJmUucHJldmVudERlZmF1bHQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lm1vdXNlTW92ZWQmJiExPT09dC5tb3VzZU1vdmVkKGUpJiZlLnByZXZlbnREZWZhdWx0KCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX29ubW91c2Vkb3duPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lzR2xvYmFsP3dpbmRvdzp0aGlzO3RoaXMuX3NldFByb3BlcnR5KFwibW91c2VJc1ByZXNzZWRcIiwhMCksdGhpcy5fc2V0TW91c2VCdXR0b24oZSksdGhpcy5fdXBkYXRlTmV4dE1vdXNlQ29vcmRzKGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQubW91c2VQcmVzc2VkPyExPT09dC5tb3VzZVByZXNzZWQoZSkmJmUucHJldmVudERlZmF1bHQoKTpuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJzYWZhcmlcIikmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQudG91Y2hTdGFydGVkJiYhMT09PXQudG91Y2hTdGFydGVkKGUpJiZlLnByZXZlbnREZWZhdWx0KCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX29ubW91c2V1cD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pc0dsb2JhbD93aW5kb3c6dGhpczt0aGlzLl9zZXRQcm9wZXJ0eShcIm1vdXNlSXNQcmVzc2VkXCIsITEpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQubW91c2VSZWxlYXNlZD8hMT09PXQubW91c2VSZWxlYXNlZChlKSYmZS5wcmV2ZW50RGVmYXVsdCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIHQudG91Y2hFbmRlZCYmITE9PT10LnRvdWNoRW5kZWQoZSkmJmUucHJldmVudERlZmF1bHQoKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fb25kcmFnZW5kPW4uZGVmYXVsdC5wcm90b3R5cGUuX29ubW91c2V1cCxuLmRlZmF1bHQucHJvdG90eXBlLl9vbmRyYWdvdmVyPW4uZGVmYXVsdC5wcm90b3R5cGUuX29ubW91c2Vtb3ZlLG4uZGVmYXVsdC5wcm90b3R5cGUuX29uY2xpY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7XCJmdW5jdGlvblwiPT10eXBlb2YgdC5tb3VzZUNsaWNrZWQmJiExPT09dC5tb3VzZUNsaWNrZWQoZSkmJmUucHJldmVudERlZmF1bHQoKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fb25kYmxjbGljaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pc0dsb2JhbD93aW5kb3c6dGhpcztcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmRvdWJsZUNsaWNrZWQmJiExPT09dC5kb3VibGVDbGlja2VkKGUpJiZlLnByZXZlbnREZWZhdWx0KCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX21vdXNlV2hlZWxEZWx0YVk9MCxuLmRlZmF1bHQucHJvdG90eXBlLl9wbW91c2VXaGVlbERlbHRhWT0wLG4uZGVmYXVsdC5wcm90b3R5cGUuX29ud2hlZWw9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7dGhpcy5fc2V0UHJvcGVydHkoXCJfbW91c2VXaGVlbERlbHRhWVwiLGUuZGVsdGFZKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lm1vdXNlV2hlZWwmJihlLmRlbHRhPWUuZGVsdGFZLCExPT09dC5tb3VzZVdoZWVsKGUpJiZlLnByZXZlbnREZWZhdWx0KCkpfSxuLmRlZmF1bHQucHJvdG90eXBlLnJlcXVlc3RQb2ludGVyTG9jaz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2N1ckVsZW1lbnQuZWx0O3JldHVybiBlLnJlcXVlc3RQb2ludGVyTG9jaz1lLnJlcXVlc3RQb2ludGVyTG9ja3x8ZS5tb3pSZXF1ZXN0UG9pbnRlckxvY2ssZS5yZXF1ZXN0UG9pbnRlckxvY2s/KGUucmVxdWVzdFBvaW50ZXJMb2NrKCksITApOihjb25zb2xlLmxvZyhcInJlcXVlc3RQb2ludGVyTG9jayBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBicm93c2VyXCIpLCExKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5leGl0UG9pbnRlckxvY2s9ZnVuY3Rpb24oKXtkb2N1bWVudC5leGl0UG9pbnRlckxvY2soKX07dmFyIGw9bi5kZWZhdWx0O3IuZGVmYXVsdD1sfSx7XCIuLi9jb3JlL2NvbnN0YW50c1wiOjI2LFwiLi4vY29yZS9tYWluXCI6MzZ9XSw1NjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07ZnVuY3Rpb24gYShlLHQscixpLG4pe3ZhciBhPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09bj9uOjAsbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9ZS5zY3JvbGxXaWR0aC90fHwxLGw9ZS5zY3JvbGxIZWlnaHQvcnx8MSx1PWkudG91Y2hlc1thXXx8aS5jaGFuZ2VkVG91Y2hlc1thXTtyZXR1cm57eDoodS5jbGllbnRYLW8ubGVmdCkvcyx5Oih1LmNsaWVudFktby50b3ApL2wsd2luWDp1LmNsaWVudFgsd2luWTp1LmNsaWVudFksaWQ6dS5pZGVudGlmaWVyfX1uLmRlZmF1bHQucHJvdG90eXBlLnRvdWNoZXM9W10sbi5kZWZhdWx0LnByb3RvdHlwZS5fdXBkYXRlVG91Y2hDb29yZHM9ZnVuY3Rpb24oZSl7aWYobnVsbCE9PXRoaXMuX2N1ckVsZW1lbnQpe2Zvcih2YXIgdD1bXSxyPTA7cjxlLnRvdWNoZXMubGVuZ3RoO3IrKyl0W3JdPWEodGhpcy5fY3VyRWxlbWVudC5lbHQsdGhpcy53aWR0aCx0aGlzLmhlaWdodCxlLHIpO3RoaXMuX3NldFByb3BlcnR5KFwidG91Y2hlc1wiLHQpfX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fb250b3VjaHN0YXJ0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lzR2xvYmFsP3dpbmRvdzp0aGlzO3RoaXMuX3NldFByb3BlcnR5KFwibW91c2VJc1ByZXNzZWRcIiwhMCksdGhpcy5fdXBkYXRlVG91Y2hDb29yZHMoZSksdGhpcy5fdXBkYXRlTmV4dE1vdXNlQ29vcmRzKGUpLHRoaXMuX3VwZGF0ZU1vdXNlQ29vcmRzKCksXCJmdW5jdGlvblwiPT10eXBlb2YgdC50b3VjaFN0YXJ0ZWQ/ITE9PT10LnRvdWNoU3RhcnRlZChlKSYmZS5wcmV2ZW50RGVmYXVsdCgpOm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcInNhZmFyaVwiKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC5tb3VzZVByZXNzZWQmJiExPT09dC5tb3VzZVByZXNzZWQoZSkmJmUucHJldmVudERlZmF1bHQoKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fb250b3VjaG1vdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7dGhpcy5fdXBkYXRlVG91Y2hDb29yZHMoZSksdGhpcy5fdXBkYXRlTmV4dE1vdXNlQ29vcmRzKGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQudG91Y2hNb3ZlZD8hMT09PXQudG91Y2hNb3ZlZChlKSYmZS5wcmV2ZW50RGVmYXVsdCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIHQubW91c2VEcmFnZ2VkJiYhMT09PXQubW91c2VEcmFnZ2VkKGUpJiZlLnByZXZlbnREZWZhdWx0KCl9LG4uZGVmYXVsdC5wcm90b3R5cGUuX29udG91Y2hlbmQ9ZnVuY3Rpb24oZSl7dGhpcy5fc2V0UHJvcGVydHkoXCJtb3VzZUlzUHJlc3NlZFwiLCExKSx0aGlzLl91cGRhdGVUb3VjaENvb3JkcyhlKSx0aGlzLl91cGRhdGVOZXh0TW91c2VDb29yZHMoZSk7dmFyIHQ9dGhpcy5faXNHbG9iYWw/d2luZG93OnRoaXM7XCJmdW5jdGlvblwiPT10eXBlb2YgdC50b3VjaEVuZGVkPyExPT09dC50b3VjaEVuZGVkKGUpJiZlLnByZXZlbnREZWZhdWx0KCk6XCJmdW5jdGlvblwiPT10eXBlb2YgdC5tb3VzZVJlbGVhc2VkJiYhMT09PXQubW91c2VSZWxlYXNlZChlKSYmZS5wcmV2ZW50RGVmYXVsdCgpfTt2YXIgbz1uLmRlZmF1bHQ7ci5kZWZhdWx0PW99LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sNTc6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBMLE8sUCxSLEQ9e307ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgcixpLG4sYSxvLHMsbCx1LGgsYyxmPUQuX3RvUGl4ZWxzKGUpLGQ9ZS53aWR0aCxwPWUuaGVpZ2h0LG09ZCpwLHY9bmV3IEludDMyQXJyYXkobSkseT0wO3k8bTt5Kyspdlt5XT1ELl9nZXRBUkdCKGYseSk7dmFyIGcsYixfLHgsdz1uZXcgSW50MzJBcnJheShtKSxTPW5ldyBJbnQzMkFycmF5KG0pLE09bmV3IEludDMyQXJyYXkobSksVD1uZXcgSW50MzJBcnJheShtKSxFPTA7Zm9yKCFmdW5jdGlvbihlKXt2YXIgdD0zLjUqZXwwO2lmKEwhPT0odD10PDE/MTp0PDI0OD90OjI0OCkpe089MSsoTD10KTw8MSxQPW5ldyBJbnQzMkFycmF5KE8pLFI9bmV3IEFycmF5KE8pO2Zvcih2YXIgcj0wO3I8TztyKyspUltyXT1uZXcgSW50MzJBcnJheSgyNTYpO2Zvcih2YXIgaSxuLGEsbyxzPTEsbD10LTE7czx0O3MrKyl7UFt0K3NdPVBbbF09bj1sKmwsYT1SW3Qrc10sbz1SW2wtLV07Zm9yKHZhciB1PTA7dTwyNTY7dSsrKWFbdV09b1t1XT1uKnV9aT1QW3RdPXQqdCxhPVJbdF07Zm9yKHZhciBoPTA7aDwyNTY7aCsrKWFbaF09aSpofX0odCksYj0wO2I8cDtiKyspe2ZvcihnPTA7ZzxkO2crKyl7aWYoYT1uPWk9bz1yPTAsKHM9Zy1MKTwwKWM9LXMscz0wO2Vsc2V7aWYoZDw9cylicmVhaztjPTB9Zm9yKF89YztfPE8mJiEoZDw9cyk7XysrKXt2YXIgQz12W3MrRV07bys9KHg9UltfXSlbKC0xNjc3NzIxNiZDKT4+PjI0XSxpKz14WygxNjcxMTY4MCZDKT4+MTZdLG4rPXhbKDY1MjgwJkMpPj44XSxhKz14WzI1NSZDXSxyKz1QW19dLHMrK313W2w9RStnXT1vL3IsU1tsXT1pL3IsTVtsXT1uL3IsVFtsXT1hL3J9RSs9ZH1mb3IoaD0odT0tTCkqZCxiPUU9MDtiPHA7YisrKXtmb3IoZz0wO2c8ZDtnKyspe2lmKGE9bj1pPW89cj0wLHU8MCljPWw9LXUscz1nO2Vsc2V7aWYocDw9dSlicmVhaztjPTAsbD11LHM9ZytofWZvcihfPWM7XzxPJiYhKHA8PWwpO18rKylvKz0oeD1SW19dKVt3W3NdXSxpKz14W1Nbc11dLG4rPXhbTVtzXV0sYSs9eFtUW3NdXSxyKz1QW19dLGwrKyxzKz1kO3ZbZytFXT1vL3I8PDI0fGkvcjw8MTZ8bi9yPDw4fGEvcn1FKz1kLGgrPWQsdSsrfUQuX3NldFBpeGVscyhmLHYpfUQuX3RvUGl4ZWxzPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSW1hZ2VEYXRhP2UuZGF0YTplLmdldENvbnRleHQoXCIyZFwiKS5nZXRJbWFnZURhdGEoMCwwLGUud2lkdGgsZS5oZWlnaHQpLmRhdGF9LEQuX2dldEFSR0I9ZnVuY3Rpb24oZSx0KXt2YXIgcj00KnQ7cmV0dXJuIGVbMytyXTw8MjQmNDI3ODE5MDA4MHxlW3JdPDwxNiYxNjcxMTY4MHxlWzErcl08PDgmNjUyODB8MjU1JmVbMityXX0sRC5fc2V0UGl4ZWxzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTAsaT0wLG49ZS5sZW5ndGg7aTxuO2krKyllWyhyPTQqaSkrMF09KDE2NzExNjgwJnRbaV0pPj4+MTYsZVtyKzFdPSg2NTI4MCZ0W2ldKT4+PjgsZVtyKzJdPTI1NSZ0W2ldLGVbciszXT0oNDI3ODE5MDA4MCZ0W2ldKT4+PjI0fSxELl90b0ltYWdlRGF0YT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEltYWdlRGF0YT9lOmUuZ2V0Q29udGV4dChcIjJkXCIpLmdldEltYWdlRGF0YSgwLDAsZS53aWR0aCxlLmhlaWdodCl9LEQuX2NyZWF0ZUltYWdlRGF0YT1mdW5jdGlvbihlLHQpe3JldHVybiBELl90bXBDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKSxELl90bXBDdHg9RC5fdG1wQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKSx0aGlzLl90bXBDdHguY3JlYXRlSW1hZ2VEYXRhKGUsdCl9LEQuYXBwbHk9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWUuZ2V0Q29udGV4dChcIjJkXCIpLG49aS5nZXRJbWFnZURhdGEoMCwwLGUud2lkdGgsZS5oZWlnaHQpLGE9dChuLHIpO2EgaW5zdGFuY2VvZiBJbWFnZURhdGE/aS5wdXRJbWFnZURhdGEoYSwwLDAsMCwwLGUud2lkdGgsZS5oZWlnaHQpOmkucHV0SW1hZ2VEYXRhKG4sMCwwLDAsMCxlLndpZHRoLGUuaGVpZ2h0KX0sRC50aHJlc2hvbGQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1ELl90b1BpeGVscyhlKTt2b2lkIDA9PT10JiYodD0uNSk7Zm9yKHZhciBpPU1hdGguZmxvb3IoMjU1KnQpLG49MDtuPHIubGVuZ3RoO24rPTQpe3ZhciBhPXZvaWQgMDthPWk8PS4yMTI2KnJbbl0rLjcxNTIqcltuKzFdKy4wNzIyKnJbbisyXT8yNTU6MCxyW25dPXJbbisxXT1yW24rMl09YX19LEQuZ3JheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9RC5fdG9QaXhlbHMoZSkscj0wO3I8dC5sZW5ndGg7cis9NCl7dmFyIGk9LjIxMjYqdFtyXSsuNzE1Mip0W3IrMV0rLjA3MjIqdFtyKzJdO3Rbcl09dFtyKzFdPXRbcisyXT1pfX0sRC5vcGFxdWU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PUQuX3RvUGl4ZWxzKGUpLHI9MDtyPHQubGVuZ3RoO3IrPTQpdFtyKzNdPTI1NTtyZXR1cm4gdH0sRC5pbnZlcnQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PUQuX3RvUGl4ZWxzKGUpLHI9MDtyPHQubGVuZ3RoO3IrPTQpdFtyXT0yNTUtdFtyXSx0W3IrMV09MjU1LXRbcisxXSx0W3IrMl09MjU1LXRbcisyXX0sRC5wb3N0ZXJpemU9ZnVuY3Rpb24oZSx0KXt2YXIgcj1ELl90b1BpeGVscyhlKTtpZih0PDJ8fDI1NTx0KXRocm93IG5ldyBFcnJvcihcIkxldmVsIG11c3QgYmUgZ3JlYXRlciB0aGFuIDIgYW5kIGxlc3MgdGhhbiAyNTUgZm9yIHBvc3Rlcml6ZVwiKTtmb3IodmFyIGk9dC0xLG49MDtuPHIubGVuZ3RoO24rPTQpe3ZhciBhPXJbbl0sbz1yW24rMV0scz1yW24rMl07cltuXT0yNTUqKGEqdD4+OCkvaSxyW24rMV09MjU1KihvKnQ+PjgpL2kscltuKzJdPTI1NSoocyp0Pj44KS9pfX0sRC5kaWxhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHIsaSxuLGEsbyxzLGwsdSxoLGMsZixkLHAsbSx2LHksZz1ELl90b1BpeGVscyhlKSxiPTAsXz1nLmxlbmd0aD9nLmxlbmd0aC80OjAseD1uZXcgSW50MzJBcnJheShfKTtiPF87KWZvcihyPSh0PWIpK2Uud2lkdGg7YjxyOylpPW49RC5fZ2V0QVJHQihnLGIpLChzPWItMSk8dCYmKHM9Yikscjw9KG89YisxKSYmKG89YiksKGw9Yi1lLndpZHRoKTwwJiYobD0wKSxfPD0odT1iK2Uud2lkdGgpJiYodT1iKSxmPUQuX2dldEFSR0IoZyxsKSxjPUQuX2dldEFSR0IoZyxzKSxkPUQuX2dldEFSR0IoZyx1KSwoYT03NyooaT4+MTYmMjU1KSsxNTEqKGk+PjgmMjU1KSsyOCooMjU1JmkpKTwobT03NyooYz4+MTYmMjU1KSsxNTEqKGM+PjgmMjU1KSsyOCooMjU1JmMpKSYmKG49YyxhPW0pLGE8KHA9NzcqKChoPUQuX2dldEFSR0IoZyxvKSk+PjE2JjI1NSkrMTUxKihoPj44JjI1NSkrMjgqKDI1NSZoKSkmJihuPWgsYT1wKSxhPCh2PTc3KihmPj4xNiYyNTUpKzE1MSooZj4+OCYyNTUpKzI4KigyNTUmZikpJiYobj1mLGE9diksYTwoeT03NyooZD4+MTYmMjU1KSsxNTEqKGQ+PjgmMjU1KSsyOCooMjU1JmQpKSYmKG49ZCxhPXkpLHhbYisrXT1uO0QuX3NldFBpeGVscyhnLHgpfSxELmVyb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyLGksbixhLG8scyxsLHUsaCxjLGYsZCxwLG0sdix5LGc9RC5fdG9QaXhlbHMoZSksYj0wLF89Zy5sZW5ndGg/Zy5sZW5ndGgvNDowLHg9bmV3IEludDMyQXJyYXkoXyk7YjxfOylmb3Iocj0odD1iKStlLndpZHRoO2I8cjspaT1uPUQuX2dldEFSR0IoZyxiKSwocz1iLTEpPHQmJihzPWIpLHI8PShvPWIrMSkmJihvPWIpLChsPWItZS53aWR0aCk8MCYmKGw9MCksXzw9KHU9YitlLndpZHRoKSYmKHU9YiksZj1ELl9nZXRBUkdCKGcsbCksYz1ELl9nZXRBUkdCKGcscyksZD1ELl9nZXRBUkdCKGcsdSksKG09NzcqKGM+PjE2JjI1NSkrMTUxKihjPj44JjI1NSkrMjgqKDI1NSZjKSk8KGE9NzcqKGk+PjE2JjI1NSkrMTUxKihpPj44JjI1NSkrMjgqKDI1NSZpKSkmJihuPWMsYT1tKSwocD03NyooKGg9RC5fZ2V0QVJHQihnLG8pKT4+MTYmMjU1KSsxNTEqKGg+PjgmMjU1KSsyOCooMjU1JmgpKTxhJiYobj1oLGE9cCksKHY9NzcqKGY+PjE2JjI1NSkrMTUxKihmPj44JjI1NSkrMjgqKDI1NSZmKSk8YSYmKG49ZixhPXYpLCh5PTc3KihkPj4xNiYyNTUpKzE1MSooZD4+OCYyNTUpKzI4KigyNTUmZCkpPGEmJihuPWQsYT15KSx4W2IrK109bjtELl9zZXRQaXhlbHMoZyx4KX0sRC5ibHVyPWZ1bmN0aW9uKGUsdCl7aShlLHQpfTt2YXIgbj1EO3IuZGVmYXVsdD1ufSx7fV0sNTg6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBEPWkoZShcIi4uL2NvcmUvbWFpblwiKSksaz1pKGUoXCJvbWdnaWZcIikpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIEEoZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLHI9bmV3IEFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9fShlKXx8ZnVuY3Rpb24oZSl7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKXx8XCJbb2JqZWN0IEFyZ3VtZW50c11cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpfSgpfUQuZGVmYXVsdC5wcm90b3R5cGUuY3JlYXRlSW1hZ2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjcmVhdGVJbWFnZVwiLGFyZ3VtZW50cyksbmV3IEQuZGVmYXVsdC5JbWFnZShlLHQpfSxELmRlZmF1bHQucHJvdG90eXBlLnNhdmVDYW52YXM9ZnVuY3Rpb24oKXtELmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInNhdmVDYW52YXNcIixhcmd1bWVudHMpO3ZhciBlLHQscixpLG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO3N3aXRjaChhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50PyhlPWFyZ3VtZW50c1swXSxuLnNoaWZ0KCkpOmFyZ3VtZW50c1swXWluc3RhbmNlb2YgRC5kZWZhdWx0LkVsZW1lbnQ/KGU9YXJndW1lbnRzWzBdLmVsdCxuLnNoaWZ0KCkpOmU9dGhpcy5fY3VyRWxlbWVudCYmdGhpcy5fY3VyRWxlbWVudC5lbHQsMTw9bi5sZW5ndGgmJih0PW5bMF0pLDI8PW4ubGVuZ3RoJiYocj1uWzFdKSxyPXJ8fEQuZGVmYXVsdC5wcm90b3R5cGUuX2NoZWNrRmlsZUV4dGVuc2lvbih0LHIpWzFdfHxcInBuZ1wiKXtkZWZhdWx0Omk9XCJpbWFnZS9wbmdcIjticmVhaztjYXNlXCJqcGVnXCI6Y2FzZVwianBnXCI6aT1cImltYWdlL2pwZWdcIn1lLnRvQmxvYihmdW5jdGlvbihlKXtELmRlZmF1bHQucHJvdG90eXBlLmRvd25sb2FkRmlsZShlLHQscil9LGkpfSxELmRlZmF1bHQucHJvdG90eXBlLnNhdmVHaWY9ZnVuY3Rpb24ocCxlKXt2YXIgbT1wLmdpZlByb3BlcnRpZXMsdD1tLmxvb3BMaW1pdDsxPT09dD90PW51bGw6bnVsbD09PXQmJih0PTApO2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShwLndpZHRoKnAuaGVpZ2h0Km0ubnVtRnJhbWVzKSx2PVtdLGk9e30sbj0wO248bS5udW1GcmFtZXM7bisrKXtmb3IodmFyIGE9bmV3IFNldCxvPW0uZnJhbWVzW25dLmltYWdlLmRhdGEscz1vLmxlbmd0aCxsPW5ldyBVaW50MzJBcnJheShwLndpZHRoKnAuaGVpZ2h0KSx1PTAsaD0wO3U8czt1Kz00LGgrKyl7dmFyIGM9b1t1KzBdPDwxNnxvW3UrMV08PDh8b1t1KzJdPDwwO2EuYWRkKGMpLGxbaF09Y312YXIgZj1BKGEpLnNvcnQoKS50b1N0cmluZygpO3ZvaWQgMD09PWlbZl0/aVtmXT17ZnJlcToxLGZyYW1lczpbbl19OihpW2ZdLmZyZXErPTEsaVtmXS5mcmFtZXMucHVzaChuKSksdi5wdXNoKGwpfXZhciB5PVtdLGQ9T2JqZWN0LmtleXMoaSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBpW3RdLmZyZXEtaVtlXS5mcmVxfSksZz1kWzBdLnNwbGl0KFwiLFwiKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUpfSk7eT15LmNvbmNhdChpW2ddLmZyYW1lcyk7Zm9yKHZhciBiPW5ldyBTZXQoZyksXz0xO188ZC5sZW5ndGg7XysrKXt2YXIgeD1kW19dLnNwbGl0KFwiLFwiKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUpfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFiLmhhcyhlKX0pO2lmKGcubGVuZ3RoK3gubGVuZ3RoPD0yNTYpe2Zvcih2YXIgdz0wO3c8eC5sZW5ndGg7dysrKWcucHVzaCh4W3ddKSxiLmFkZCh4W3ddKTt5PXkuY29uY2F0KGlbZFtfXV0uZnJhbWVzKX19eT1uZXcgU2V0KHkpO2Zvcih2YXIgUz17fSxNPTA7TTxnLmxlbmd0aDtNKyspU1tnW01dXXx8KFNbZ1tNXV09TSk7Zm9yKHZhciBUPTE7VDxnLmxlbmd0aDspVDw8PTE7Zy5sZW5ndGg9VDtmb3IodmFyIEU9e2xvb3A6dCxwYWxldHRlOm5ldyBVaW50MzJBcnJheShnKX0sQz1uZXcgay5kZWZhdWx0LkdpZldyaXRlcihyLHAud2lkdGgscC5oZWlnaHQsRSksTD17fSxPPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0heS5oYXMoZSkscj10P1tdOmcsaT1uZXcgVWludDhBcnJheShwLndpZHRoKnAuaGVpZ2h0KSxuPXt9LGE9bmV3IFNldCxvPTA7bzx2W2VdLmxlbmd0aDtvKyspe3ZhciBzPXZbZV1bb107dD8odm9pZCAwPT09bltzXSYmKG5bc109ci5sZW5ndGgsci5wdXNoKHMpKSxpW29dPW5bc10pOmlbb109U1tzXSwwPGUmJnZbZS0xXVtvXSE9PXMmJmEuYWRkKHMpfXZhciBsPXt9LHU9ci5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWEuaGFzKGUpfSk7aWYoMDx1Lmxlbmd0aCl7dmFyIGg9dVswXSxjPXQ/bltoXTpTW2hdO2lmKDA8ZSl7Zm9yKHZhciBmPTA7Zjx2W2VdLmxlbmd0aDtmKyspdltlLTFdW2ZdPT09dltlXVtmXSYmKGlbZl09Yyk7bC50cmFuc3BhcmVudD1jLEwuZnJhbWVPcHRzLmRpc3Bvc2FsPTF9fWlmKGwuZGVsYXk9bS5mcmFtZXNbZV0uZGVsYXkvMTAsdCl7Zm9yKHZhciBkPTE7ZDxyLmxlbmd0aDspZDw8PTE7ci5sZW5ndGg9ZCxsLnBhbGV0dGU9bmV3IFVpbnQzMkFycmF5KHIpfTA8ZSYmQy5hZGRGcmFtZSgwLDAscC53aWR0aCxwLmhlaWdodCxMLnBpeGVsUGFsZXR0ZUluZGV4LEwuZnJhbWVPcHRzKSxMPXtwaXhlbFBhbGV0dGVJbmRleDppLGZyYW1lT3B0czpsfX0sUD0wO1A8bS5udW1GcmFtZXM7UCsrKU8oUCk7TC5mcmFtZU9wdHMuZGlzcG9zYWw9MSxDLmFkZEZyYW1lKDAsMCxwLndpZHRoLHAuaGVpZ2h0LEwucGl4ZWxQYWxldHRlSW5kZXgsTC5mcmFtZU9wdHMpO3ZhciBSPW5ldyBCbG9iKFtyLnNsaWNlKDAsQy5lbmQoKSldLHt0eXBlOlwiaW1hZ2UvZ2lmXCJ9KTtELmRlZmF1bHQucHJvdG90eXBlLmRvd25sb2FkRmlsZShSLGUsXCJnaWZcIil9LEQuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUZyYW1lcz1mdW5jdGlvbihlLHQscixpLG8pe0QuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic2F2ZUZyYW1lc1wiLGFyZ3VtZW50cyk7dmFyIG49cnx8MztuPUQuZGVmYXVsdC5wcm90b3R5cGUuY29uc3RyYWluKG4sMCwxNSksbio9MWUzO3ZhciBhPWl8fDE1O2E9RC5kZWZhdWx0LnByb3RvdHlwZS5jb25zdHJhaW4oYSwwLDIyKTt2YXIgcz0wLGw9RC5kZWZhdWx0LnByb3RvdHlwZS5fbWFrZUZyYW1lLHU9dGhpcy5fY3VyRWxlbWVudC5lbHQsaD1bXSxjPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aC5wdXNoKGwoZStzLHQsdSkpLHMrK30sMWUzL2EpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihjbGVhckludGVydmFsKGMpLG8pbyhoKTtlbHNle3ZhciBlPSEwLHQ9ITEscj12b2lkIDA7dHJ5e2Zvcih2YXIgaSxuPWhbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZT0oaT1uLm5leHQoKSkuZG9uZSk7ZT0hMCl7dmFyIGE9aS52YWx1ZTtELmRlZmF1bHQucHJvdG90eXBlLmRvd25sb2FkRmlsZShhLmltYWdlRGF0YSxhLmZpbGVuYW1lLGEuZXh0KX19Y2F0Y2goZSl7dD0hMCxyPWV9ZmluYWxseXt0cnl7ZXx8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZih0KXRocm93IHJ9fX1oPVtdfSxuKy4wMSl9LEQuZGVmYXVsdC5wcm90b3R5cGUuX21ha2VGcmFtZT1mdW5jdGlvbihlLHQscil7dmFyIGksbjtpZihpPXRoaXM/dGhpcy5fY3VyRWxlbWVudC5lbHQ6cix0KXN3aXRjaCh0LnRvTG93ZXJDYXNlKCkpe2Nhc2VcInBuZ1wiOm49XCJpbWFnZS9wbmdcIjticmVhaztjYXNlXCJqcGVnXCI6Y2FzZVwianBnXCI6bj1cImltYWdlL2pwZWdcIjticmVhaztkZWZhdWx0Om49XCJpbWFnZS9wbmdcIn1lbHNlIHQ9XCJwbmdcIixuPVwiaW1hZ2UvcG5nXCI7dmFyIGE9aS50b0RhdGFVUkwobik7YT1hLnJlcGxhY2UobixcImltYWdlL29jdGV0LXN0cmVhbVwiKTt2YXIgbz17fTtyZXR1cm4gby5pbWFnZURhdGE9YSxvLmZpbGVuYW1lPWUsby5leHQ9dCxvfTt2YXIgbj1ELmRlZmF1bHQ7ci5kZWZhdWx0PW59LHtcIi4uL2NvcmUvbWFpblwiOjM2LG9tZ2dpZjoxMX1dLDU5OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgeD1uKGUoXCIuLi9jb3JlL21haW5cIikpLGM9bihlKFwiLi9maWx0ZXJzXCIpKSx3PW4oZShcIi4uL2NvcmUvaGVscGVyc1wiKSksaT1mdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT1vKGUpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXMoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBuIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikpe3ZhciBhPWk/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLG4pOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbixhKTpyW25dPWVbbl19ci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKTtyZXR1cm4gcn0oZShcIi4uL2NvcmUvY29uc3RhbnRzXCIpKSxwPW4oZShcIm9tZ2dpZlwiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBuKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIDA8ZSYmZTx0P2U6dH1lKFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvdmFsaWRhdGVfcGFyYW1zXCIpLGUoXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiKSxlKFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIikseC5kZWZhdWx0LnByb3RvdHlwZS5sb2FkSW1hZ2U9ZnVuY3Rpb24oaSxuLGEpe3guZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibG9hZEltYWdlXCIsYXJndW1lbnRzKTt2YXIgbz1uZXcgeC5kZWZhdWx0LkltYWdlKDEsMSx0aGlzKSxzPXRoaXMsZT1uZXcgUmVxdWVzdChpLHttZXRob2Q6XCJHRVRcIixtb2RlOlwiY29yc1wifSk7cmV0dXJuIGZldGNoKGksZSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1lLmhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpO2lmKG51bGw9PT10JiZjb25zb2xlLndhcm4oXCJUaGUgaW1hZ2UgeW91IGxvYWRlZCBkb2VzIG5vdCBoYXZlIGEgQ29udGVudC1UeXBlIGhlYWRlci4gSWYgeW91IGFyZSB1c2luZyB0aGUgb25saW5lIGVkaXRvciBjb25zaWRlciByZXVwbG9hZGluZyB0aGUgYXNzZXQuXCIpLHQmJnQuaW5jbHVkZXMoXCJpbWFnZS9naWZcIikpZS5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmZnVuY3Rpb24oZSxyLHQsaSxuKXt2YXIgYT1uZXcgcC5kZWZhdWx0LkdpZlJlYWRlcihlKTtyLndpZHRoPXIuY2FudmFzLndpZHRoPWEud2lkdGgsci5oZWlnaHQ9ci5jYW52YXMuaGVpZ2h0PWEuaGVpZ2h0O3ZhciBvPVtdLHM9YS5udW1GcmFtZXMoKSxsPW5ldyBVaW50OENsYW1wZWRBcnJheShyLndpZHRoKnIuaGVpZ2h0KjQpO2lmKDE8cyl7Zm9yKHZhciB1PWZ1bmN0aW9uKGUsdCl7dHJ5e3QuZGVjb2RlQW5kQmxpdEZyYW1lUkdCQShlLGwpfWNhdGNoKGUpe3guZGVmYXVsdC5fZnJpZW5kbHlGaWxlTG9hZEVycm9yKDgsci5zcmMpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGk/aShlKTpjb25zb2xlLmVycm9yKGUpfX0saD0wO2g8cztoKyspe3ZhciBjPWEuZnJhbWVJbmZvKGgpOzE9PT1hLmZyYW1lSW5mbyhoKS5kaXNwb3NhbCYmMDxoP3IuZHJhd2luZ0NvbnRleHQucHV0SW1hZ2VEYXRhKG9baC0xXS5pbWFnZSwwLDApOihyLmRyYXdpbmdDb250ZXh0LmNsZWFyUmVjdCgwLDAsci53aWR0aCxyLmhlaWdodCksbD1uZXcgVWludDhDbGFtcGVkQXJyYXkoci53aWR0aCpyLmhlaWdodCo0KSksdShoLGEpO3ZhciBmPW5ldyBJbWFnZURhdGEobCxyLndpZHRoLHIuaGVpZ2h0KTtyLmRyYXdpbmdDb250ZXh0LnB1dEltYWdlRGF0YShmLDAsMCksby5wdXNoKHtpbWFnZTpyLmRyYXdpbmdDb250ZXh0LmdldEltYWdlRGF0YSgwLDAsci53aWR0aCxyLmhlaWdodCksZGVsYXk6MTAqYy5kZWxheX0pfXZhciBkPWEubG9vcENvdW50KCk7bnVsbD09PWQ/ZD0xOjA9PT1kJiYoZD1udWxsKSxyLmRyYXdpbmdDb250ZXh0LnB1dEltYWdlRGF0YShvWzBdLmltYWdlLDAsMCksci5naWZQcm9wZXJ0aWVzPXtkaXNwbGF5SW5kZXg6MCxsb29wTGltaXQ6ZCxsb29wQ291bnQ6MCxmcmFtZXM6byxudW1GcmFtZXM6cyxwbGF5aW5nOiEwLHRpbWVEaXNwbGF5ZWQ6MCxsYXN0Q2hhbmdlVGltZTowfX1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZ0KHIpO24oKX0obmV3IFVpbnQ4QXJyYXkoZSksbyxuLGEsZnVuY3Rpb24oZSl7cy5fZGVjcmVtZW50UHJlbG9hZCgpfS5iaW5kKHMpKX0sZnVuY3Rpb24oZSl7XCJmdW5jdGlvblwiPT10eXBlb2YgYT9hKGUpOmNvbnNvbGUuZXJyb3IoZSl9KTtlbHNle3ZhciByPW5ldyBJbWFnZTtyLm9ubG9hZD1mdW5jdGlvbigpe28ud2lkdGg9by5jYW52YXMud2lkdGg9ci53aWR0aCxvLmhlaWdodD1vLmNhbnZhcy5oZWlnaHQ9ci5oZWlnaHQsby5kcmF3aW5nQ29udGV4dC5kcmF3SW1hZ2UociwwLDApLG8ubW9kaWZpZWQ9ITAsXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmbihvKSxzLl9kZWNyZW1lbnRQcmVsb2FkKCl9LHIub25lcnJvcj1mdW5jdGlvbihlKXt4LmRlZmF1bHQuX2ZyaWVuZGx5RmlsZUxvYWRFcnJvcigwLHIuc3JjKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhP2EoZSk6Y29uc29sZS5lcnJvcihlKX0sMCE9PWkuaW5kZXhPZihcImRhdGE6aW1hZ2UvXCIpJiYoci5jcm9zc09yaWdpbj1cIkFub255bW91c1wiKSxyLnNyYz1pfW8ubW9kaWZpZWQ9ITB9KSxvfSx4LmRlZmF1bHQucHJvdG90eXBlLmltYWdlPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyxsKXt4LmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImltYWdlXCIsYXJndW1lbnRzKTt2YXIgdT1lLndpZHRoLGg9ZS5oZWlnaHQ7ZS5lbHQmJmUuZWx0LnZpZGVvV2lkdGgmJiFlLmNhbnZhcyYmKHU9ZS5lbHQudmlkZW9XaWR0aCxoPWUuZWx0LnZpZGVvSGVpZ2h0KTt2YXIgYz10LGY9cixkPWl8fHUscD1ufHxoLG09YXx8MCx2PW98fDAseT1zfHx1LGc9bHx8aDt5PVMoeSx1KSxnPVMoZyxoKTt2YXIgYj0xO2UuZWx0JiYhZS5jYW52YXMmJmUuZWx0LnN0eWxlLndpZHRoJiYoYj1lLmVsdC52aWRlb1dpZHRoJiYhaT9lLmVsdC52aWRlb1dpZHRoOmUuZWx0LndpZHRoLGIvPXBhcnNlSW50KGUuZWx0LnN0eWxlLndpZHRoLDEwKSksbSo9Yix2Kj1iLGcqPWIseSo9Yjt2YXIgXz13LmRlZmF1bHQubW9kZUFkanVzdChjLGYsZCxwLHRoaXMuX3JlbmRlcmVyLl9pbWFnZU1vZGUpO3RoaXMuX3JlbmRlcmVyLmltYWdlKGUsbSx2LHksZyxfLngsXy55LF8udyxfLmgpfSx4LmRlZmF1bHQucHJvdG90eXBlLnRpbnQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt4LmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRpbnRcIix0KTt2YXIgaT10aGlzLmNvbG9yLmFwcGx5KHRoaXMsdCk7dGhpcy5fcmVuZGVyZXIuX3RpbnQ9aS5sZXZlbHN9LHguZGVmYXVsdC5wcm90b3R5cGUubm9UaW50PWZ1bmN0aW9uKCl7dGhpcy5fcmVuZGVyZXIuX3RpbnQ9bnVsbH0seC5kZWZhdWx0LnByb3RvdHlwZS5fZ2V0VGludGVkSW1hZ2VDYW52YXM9ZnVuY3Rpb24oZSl7aWYoIWUuY2FudmFzKXJldHVybiBlO3ZhciB0PWMuZGVmYXVsdC5fdG9QaXhlbHMoZS5jYW52YXMpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtyLndpZHRoPWUuY2FudmFzLndpZHRoLHIuaGVpZ2h0PWUuY2FudmFzLmhlaWdodDtmb3IodmFyIGk9ci5nZXRDb250ZXh0KFwiMmRcIiksbj1pLmNyZWF0ZUltYWdlRGF0YShlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpLGE9bi5kYXRhLG89MDtvPHQubGVuZ3RoO28rPTQpe3ZhciBzPXRbb10sbD10W28rMV0sdT10W28rMl0saD10W28rM107YVtvXT1zKnRoaXMuX3JlbmRlcmVyLl90aW50WzBdLzI1NSxhW28rMV09bCp0aGlzLl9yZW5kZXJlci5fdGludFsxXS8yNTUsYVtvKzJdPXUqdGhpcy5fcmVuZGVyZXIuX3RpbnRbMl0vMjU1LGFbbyszXT1oKnRoaXMuX3JlbmRlcmVyLl90aW50WzNdLzI1NX1yZXR1cm4gaS5wdXRJbWFnZURhdGEobiwwLDApLHJ9LHguZGVmYXVsdC5wcm90b3R5cGUuaW1hZ2VNb2RlPWZ1bmN0aW9uKGUpe3guZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiaW1hZ2VNb2RlXCIsYXJndW1lbnRzKSxlIT09aS5DT1JORVImJmUhPT1pLkNPUk5FUlMmJmUhPT1pLkNFTlRFUnx8KHRoaXMuX3JlbmRlcmVyLl9pbWFnZU1vZGU9ZSl9O3ZhciBhPXguZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9jb25zdGFudHNcIjoyNixcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2Zlc19jb3JlXCI6MjgsXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiOjI5LFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvdmFsaWRhdGVfcGFyYW1zXCI6MzEsXCIuLi9jb3JlL2hlbHBlcnNcIjozMixcIi4uL2NvcmUvbWFpblwiOjM2LFwiLi9maWx0ZXJzXCI6NTcsb21nZ2lmOjExfV0sNjA6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBuPWEoZShcIi4uL2NvcmUvbWFpblwiKSksaT1hKGUoXCIuL2ZpbHRlcnNcIikpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fW4uZGVmYXVsdC5JbWFnZT1mdW5jdGlvbihlLHQpe3RoaXMud2lkdGg9ZSx0aGlzLmhlaWdodD10LHRoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIiksdGhpcy5jYW52YXMud2lkdGg9dGhpcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQ9dGhpcy5oZWlnaHQsdGhpcy5kcmF3aW5nQ29udGV4dD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIiksKHRoaXMuX3BpeGVsc1N0YXRlPXRoaXMpLl9waXhlbERlbnNpdHk9MSx0aGlzLmdpZlByb3BlcnRpZXM9bnVsbCx0aGlzLl9tb2RpZmllZD0hMSx0aGlzLnBpeGVscz1bXX0sbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5fYW5pbWF0ZUdpZj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmdpZlByb3BlcnRpZXMscj1lLl9sYXN0RnJhbWVUaW1lK2UuZGVsdGFUaW1lO2lmKDA9PT10Lmxhc3RDaGFuZ2VUaW1lJiYodC5sYXN0Q2hhbmdlVGltZT1yKSx0LnBsYXlpbmcpe3QudGltZURpc3BsYXllZD1yLXQubGFzdENoYW5nZVRpbWU7dmFyIGk9dC5mcmFtZXNbdC5kaXNwbGF5SW5kZXhdLmRlbGF5O2lmKHQudGltZURpc3BsYXllZD49aSl7dmFyIG49TWF0aC5mbG9vcih0LnRpbWVEaXNwbGF5ZWQvaSk7aWYodC50aW1lRGlzcGxheWVkPTAsdC5sYXN0Q2hhbmdlVGltZT1yLHQuZGlzcGxheUluZGV4Kz1uLHQubG9vcENvdW50PU1hdGguZmxvb3IodC5kaXNwbGF5SW5kZXgvdC5udW1GcmFtZXMpLG51bGwhPT10Lmxvb3BMaW1pdCYmdC5sb29wQ291bnQ+PXQubG9vcExpbWl0KXQucGxheWluZz0hMTtlbHNle3ZhciBhPXQuZGlzcGxheUluZGV4JXQubnVtRnJhbWVzO3RoaXMuZHJhd2luZ0NvbnRleHQucHV0SW1hZ2VEYXRhKHQuZnJhbWVzW2FdLmltYWdlLDAsMCksdC5kaXNwbGF5SW5kZXg9YSx0aGlzLnNldE1vZGlmaWVkKCEwKX19fX0sbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5fc2V0UHJvcGVydHk9ZnVuY3Rpb24oZSx0KXt0aGlzW2VdPXQsdGhpcy5zZXRNb2RpZmllZCghMCl9LG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUubG9hZFBpeGVscz1mdW5jdGlvbigpe24uZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5sb2FkUGl4ZWxzLmNhbGwodGhpcyksdGhpcy5zZXRNb2RpZmllZCghMCl9LG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUudXBkYXRlUGl4ZWxzPWZ1bmN0aW9uKGUsdCxyLGkpe24uZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS51cGRhdGVQaXhlbHMuY2FsbCh0aGlzLGUsdCxyLGkpLHRoaXMuc2V0TW9kaWZpZWQoITApfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLmdldD1mdW5jdGlvbihlLHQscixpKXtyZXR1cm4gbi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJwNS5JbWFnZS5nZXRcIixhcmd1bWVudHMpLG4uZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5nZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLl9nZXRQaXhlbD1uLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuX2dldFBpeGVsLG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCxyKXtuLmRlZmF1bHQuUmVuZGVyZXIyRC5wcm90b3R5cGUuc2V0LmNhbGwodGhpcyxlLHQsciksdGhpcy5zZXRNb2RpZmllZCghMCl9LG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKGUsdCl7MD09PWUmJjA9PT10PyhlPXRoaXMuY2FudmFzLndpZHRoLHQ9dGhpcy5jYW52YXMuaGVpZ2h0KTowPT09ZT9lPXRoaXMuY2FudmFzLndpZHRoKnQvdGhpcy5jYW52YXMuaGVpZ2h0OjA9PT10JiYodD10aGlzLmNhbnZhcy5oZWlnaHQqZS90aGlzLmNhbnZhcy53aWR0aCksZT1NYXRoLmZsb29yKGUpLHQ9TWF0aC5mbG9vcih0KTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO2lmKHIud2lkdGg9ZSxyLmhlaWdodD10LHRoaXMuZ2lmUHJvcGVydGllcylmb3IodmFyIGk9dGhpcy5naWZQcm9wZXJ0aWVzLG49ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxpPTA7aTx0LmhlaWdodDtpKyspZm9yKHZhciBuPTA7bjx0LndpZHRoO24rKyl7dmFyIGE9TWF0aC5mbG9vcihuKmUud2lkdGgvdC53aWR0aCksbz00KihNYXRoLmZsb29yKGkqZS5oZWlnaHQvdC5oZWlnaHQpKmUud2lkdGgrYSk7dC5kYXRhW3IrK109ZS5kYXRhW28rK10sdC5kYXRhW3IrK109ZS5kYXRhW28rK10sdC5kYXRhW3IrK109ZS5kYXRhW28rK10sdC5kYXRhW3IrK109ZS5kYXRhW28rK119fSxhPTA7YTxpLm51bUZyYW1lczthKyspe3ZhciBvPXRoaXMuZHJhd2luZ0NvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKGUsdCk7bihpLmZyYW1lc1thXS5pbWFnZSxvKSxpLmZyYW1lc1thXS5pbWFnZT1vfXIuZ2V0Q29udGV4dChcIjJkXCIpLmRyYXdJbWFnZSh0aGlzLmNhbnZhcywwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0LDAsMCxyLndpZHRoLHIuaGVpZ2h0KSx0aGlzLmNhbnZhcy53aWR0aD10aGlzLndpZHRoPWUsdGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuaGVpZ2h0PXQsdGhpcy5kcmF3aW5nQ29udGV4dC5kcmF3SW1hZ2UociwwLDAsZSx0LDAsMCxlLHQpLDA8dGhpcy5waXhlbHMubGVuZ3RoJiZ0aGlzLmxvYWRQaXhlbHMoKSx0aGlzLnNldE1vZGlmaWVkKCEwKX0sbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07bi5kZWZhdWx0LnByb3RvdHlwZS5jb3B5LmFwcGx5KHRoaXMsdCl9LG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUubWFzaz1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT10aGlzKTt2YXIgdD10aGlzLmRyYXdpbmdDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbixyPTE7ZSBpbnN0YW5jZW9mIG4uZGVmYXVsdC5SZW5kZXJlciYmKHI9ZS5fcEluc3QuX3BpeGVsRGVuc2l0eSk7dmFyIGk9W2UsMCwwLHIqZS53aWR0aCxyKmUuaGVpZ2h0LDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XTt0aGlzLmRyYXdpbmdDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj1cImRlc3RpbmF0aW9uLWluXCIsbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5jb3B5LmFwcGx5KHRoaXMsaSksdGhpcy5kcmF3aW5nQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249dCx0aGlzLnNldE1vZGlmaWVkKCEwKX0sbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5maWx0ZXI9ZnVuY3Rpb24oZSx0KXtpLmRlZmF1bHQuYXBwbHkodGhpcy5jYW52YXMsaS5kZWZhdWx0W2VdLHQpLHRoaXMuc2V0TW9kaWZpZWQoITApfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLmJsZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07bi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJwNS5JbWFnZS5ibGVuZFwiLGFyZ3VtZW50cyksbi5kZWZhdWx0LnByb3RvdHlwZS5ibGVuZC5hcHBseSh0aGlzLHQpLHRoaXMuc2V0TW9kaWZpZWQoITApfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLnNldE1vZGlmaWVkPWZ1bmN0aW9uKGUpe3RoaXMuX21vZGlmaWVkPWV9LG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUuaXNNb2RpZmllZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb2RpZmllZH0sbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKGUsdCl7dGhpcy5naWZQcm9wZXJ0aWVzP24uZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUdpZih0aGlzLGUpOm4uZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUNhbnZhcyh0aGlzLmNhbnZhcyxlLHQpfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5naWZQcm9wZXJ0aWVzKXt2YXIgZT10aGlzLmdpZlByb3BlcnRpZXM7ZS5wbGF5aW5nPSEwLGUudGltZVNpbmNlU3RhcnQ9MCxlLnRpbWVEaXNwbGF5ZWQ9MCxlLmxhc3RDaGFuZ2VUaW1lPTAsZS5sb29wQ291bnQ9MCxlLmRpc3BsYXlJbmRleD0wLHRoaXMuZHJhd2luZ0NvbnRleHQucHV0SW1hZ2VEYXRhKGUuZnJhbWVzWzBdLmltYWdlLDAsMCl9fSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLmdldEN1cnJlbnRGcmFtZT1mdW5jdGlvbigpe2lmKHRoaXMuZ2lmUHJvcGVydGllcyl7dmFyIGU9dGhpcy5naWZQcm9wZXJ0aWVzO3JldHVybiBlLmRpc3BsYXlJbmRleCVlLm51bUZyYW1lc319LG4uZGVmYXVsdC5JbWFnZS5wcm90b3R5cGUuc2V0RnJhbWU9ZnVuY3Rpb24oZSl7aWYodGhpcy5naWZQcm9wZXJ0aWVzKXt2YXIgdD10aGlzLmdpZlByb3BlcnRpZXM7ZTx0Lm51bUZyYW1lcyYmMDw9ZT8odC50aW1lRGlzcGxheWVkPTAsdC5sYXN0Q2hhbmdlVGltZT0wLHQuZGlzcGxheUluZGV4PWUsdGhpcy5kcmF3aW5nQ29udGV4dC5wdXRJbWFnZURhdGEodC5mcmFtZXNbZV0uaW1hZ2UsMCwwKSk6Y29uc29sZS5sb2coXCJDYW5ub3Qgc2V0IEdJRiB0byBhIGZyYW1lIG51bWJlciB0aGF0IGlzIGhpZ2hlciB0aGFuIHRvdGFsIG51bWJlciBvZiBmcmFtZXMgb3IgYmVsb3cgemVyby5cIil9fSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLm51bUZyYW1lcz1mdW5jdGlvbigpe2lmKHRoaXMuZ2lmUHJvcGVydGllcylyZXR1cm4gdGhpcy5naWZQcm9wZXJ0aWVzLm51bUZyYW1lc30sbi5kZWZhdWx0LkltYWdlLnByb3RvdHlwZS5wbGF5PWZ1bmN0aW9uKCl7dGhpcy5naWZQcm9wZXJ0aWVzJiYodGhpcy5naWZQcm9wZXJ0aWVzLnBsYXlpbmc9ITApfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5naWZQcm9wZXJ0aWVzJiYodGhpcy5naWZQcm9wZXJ0aWVzLnBsYXlpbmc9ITEpfSxuLmRlZmF1bHQuSW1hZ2UucHJvdG90eXBlLmRlbGF5PWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5naWZQcm9wZXJ0aWVzKXt2YXIgcj10aGlzLmdpZlByb3BlcnRpZXM7aWYodDxyLm51bUZyYW1lcyYmMDw9dClyLmZyYW1lc1t0XS5kZWxheT1lO2Vsc2V7dmFyIGk9ITAsbj0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBvLHM9ci5mcmFtZXNbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0obz1zLm5leHQoKSkuZG9uZSk7aT0hMCl7by52YWx1ZS5kZWxheT1lfX1jYXRjaChlKXtuPSEwLGE9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgYX19fX19O3ZhciBvPW4uZGVmYXVsdC5JbWFnZTtyLmRlZmF1bHQ9b30se1wiLi4vY29yZS9tYWluXCI6MzYsXCIuL2ZpbHRlcnNcIjo1N31dLDYxOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgZD1uKGUoXCIuLi9jb3JlL21haW5cIikpLGk9bihlKFwiLi9maWx0ZXJzXCIpKTtmdW5jdGlvbiBuKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lKFwiLi4vY29sb3IvcDUuQ29sb3JcIiksZC5kZWZhdWx0LnByb3RvdHlwZS5waXhlbHM9W10sZC5kZWZhdWx0LnByb3RvdHlwZS5ibGVuZD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3ZhciBpOyhkLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImJsZW5kXCIsdCksdGhpcy5fcmVuZGVyZXIpPyhpPXRoaXMuX3JlbmRlcmVyKS5ibGVuZC5hcHBseShpLHQpOmQuZGVmYXVsdC5SZW5kZXJlcjJELnByb3RvdHlwZS5ibGVuZC5hcHBseSh0aGlzLHQpfSxkLmRlZmF1bHQucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgaSxuLGEsbyxzLGwsdSxoLGM7aWYoZC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjb3B5XCIsdCksOT09PXQubGVuZ3RoKWk9dFswXSxuPXRbMV0sYT10WzJdLG89dFszXSxzPXRbNF0sbD10WzVdLHU9dFs2XSxoPXRbN10sYz10WzhdO2Vsc2V7aWYoOCE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIlNpZ25hdHVyZSBub3Qgc3VwcG9ydGVkXCIpO2k9dGhpcyxuPXRbMF0sYT10WzFdLG89dFsyXSxzPXRbM10sbD10WzRdLHU9dFs1XSxoPXRbNl0sYz10WzddfWQuZGVmYXVsdC5wcm90b3R5cGUuX2NvcHlIZWxwZXIodGhpcyxpLG4sYSxvLHMsbCx1LGgsYyl9LGQuZGVmYXVsdC5wcm90b3R5cGUuX2NvcHlIZWxwZXI9ZnVuY3Rpb24oZSx0LHIsaSxuLGEsbyxzLGwsdSl7dC5sb2FkUGl4ZWxzKCk7dmFyIGg9dC5jYW52YXMud2lkdGgvdC53aWR0aCxjPTAsZj0wO3QuX3JlbmRlcmVyJiZ0Ll9yZW5kZXJlci5pc1AzRCYmKGM9dC53aWR0aC8yLGY9dC5oZWlnaHQvMiksZS5fcmVuZGVyZXImJmUuX3JlbmRlcmVyLmlzUDNEP2QuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5pbWFnZS5jYWxsKGUuX3JlbmRlcmVyLHQscitjLGkrZixuLGEsbyxzLGwsdSk6ZS5kcmF3aW5nQ29udGV4dC5kcmF3SW1hZ2UodC5jYW52YXMsaCoocitjKSxoKihpK2YpLGgqbixoKmEsbyxzLGwsdSl9LGQuZGVmYXVsdC5wcm90b3R5cGUuZmlsdGVyPWZ1bmN0aW9uKGUsdCl7ZC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJmaWx0ZXJcIixhcmd1bWVudHMpLHZvaWQgMCE9PXRoaXMuY2FudmFzP2kuZGVmYXVsdC5hcHBseSh0aGlzLmNhbnZhcyxpLmRlZmF1bHRbZV0sdCk6aS5kZWZhdWx0LmFwcGx5KHRoaXMuZWx0LGkuZGVmYXVsdFtlXSx0KX0sZC5kZWZhdWx0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG47cmV0dXJuIGQuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiZ2V0XCIsYXJndW1lbnRzKSwobj10aGlzLl9yZW5kZXJlcikuZ2V0LmFwcGx5KG4sYXJndW1lbnRzKX0sZC5kZWZhdWx0LnByb3RvdHlwZS5sb2FkUGl4ZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07ZC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJsb2FkUGl4ZWxzXCIsdCksdGhpcy5fcmVuZGVyZXIubG9hZFBpeGVscygpfSxkLmRlZmF1bHQucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQscil7dGhpcy5fcmVuZGVyZXIuc2V0KGUsdCxyKX0sZC5kZWZhdWx0LnByb3RvdHlwZS51cGRhdGVQaXhlbHM9ZnVuY3Rpb24oZSx0LHIsaSl7ZC5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJ1cGRhdGVQaXhlbHNcIixhcmd1bWVudHMpLDAhPT10aGlzLnBpeGVscy5sZW5ndGgmJnRoaXMuX3JlbmRlcmVyLnVwZGF0ZVBpeGVscyhlLHQscixpKX07dmFyIGE9ZC5kZWZhdWx0O3IuZGVmYXVsdD1hfSx7XCIuLi9jb2xvci9wNS5Db2xvclwiOjI0LFwiLi4vY29yZS9tYWluXCI6MzYsXCIuL2ZpbHRlcnNcIjo1N31dLDYyOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgeT1pKGUoXCIuLi9jb3JlL21haW5cIikpO2UoXCJ3aGF0d2ctZmV0Y2hcIiksZShcImVzNi1wcm9taXNlL2F1dG9cIik7dmFyIHY9aShlKFwiZmV0Y2gtanNvbnBcIikpLHM9aShlKFwiZmlsZS1zYXZlclwiKSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gZyhlKXtyZXR1cm4oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9ZnVuY3Rpb24gYihlLHQpe3ZhciByPXt9O2lmKHZvaWQgMD09PSh0PXR8fFtdKSlmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl0W2kudG9TdHJpbmcoKV09aTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGE9dFtuXSxvPWVbbl07clthXT1vfXJldHVybiByfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGUucmVwbGFjZSgvJi9nLFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLFwiJmx0O1wiKS5yZXBsYWNlKC8+L2csXCImZ3Q7XCIpLnJlcGxhY2UoL1wiL2csXCImcXVvdDtcIikucmVwbGFjZSgvJy9nLFwiJiMwMzk7XCIpfWZ1bmN0aW9uIGwoZSx0KXt0JiYhMCE9PXQmJlwidHJ1ZVwiIT09dHx8KHQ9XCJcIik7dmFyIHI9XCJcIjtyZXR1cm4oZT1lfHxcInVudGl0bGVkXCIpJiZlLmluY2x1ZGVzKFwiLlwiKSYmKHI9ZS5zcGxpdChcIi5cIikucG9wKCkpLHQmJnIhPT10JiYocj10LGU9XCJcIi5jb25jYXQoZSxcIi5cIikuY29uY2F0KHIpKSxbZSxyXX1lKFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvdmFsaWRhdGVfcGFyYW1zXCIpLGUoXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiKSxlKFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIikseS5kZWZhdWx0LnByb3RvdHlwZS5sb2FkSlNPTj1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3kuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibG9hZEpTT05cIix0KTtmb3IodmFyIGksbixhLG89dFswXSxzPXt9LGw9XCJqc29uXCIsdT0xO3U8dC5sZW5ndGg7dSsrKXt2YXIgaD10W3VdO1wic3RyaW5nXCI9PXR5cGVvZiBoP1wianNvbnBcIiE9PWgmJlwianNvblwiIT09aHx8KGw9aCk6XCJmdW5jdGlvblwiPT10eXBlb2YgaD9pP249aDppPWg6XCJvYmplY3RcIj09PWcoaCkmJihoLmhhc093blByb3BlcnR5KFwianNvbnBDYWxsYmFja1wiKXx8aC5oYXNPd25Qcm9wZXJ0eShcImpzb25wQ2FsbGJhY2tGdW5jdGlvblwiKSkmJihsPVwianNvbnBcIixhPWgpfXZhciBjPXRoaXM7cmV0dXJuIHRoaXMuaHR0cERvKG8sXCJHRVRcIixhLGwsZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpc1t0XT1lW3RdO3ZvaWQgMCE9PWkmJmkoZSksYy5fZGVjcmVtZW50UHJlbG9hZCgpfSxmdW5jdGlvbihlKXtpZih5LmRlZmF1bHQuX2ZyaWVuZGx5RmlsZUxvYWRFcnJvcig1LG8pLCFuKXRocm93IGU7bihlKX0pLHN9LHkuZGVmYXVsdC5wcm90b3R5cGUubG9hZFN0cmluZ3M9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt5LmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImxvYWRTdHJpbmdzXCIsdCk7Zm9yKHZhciBuLGksYT1bXSxvPTE7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb107XCJmdW5jdGlvblwiPT10eXBlb2YgcyYmKHZvaWQgMD09PW4/bj1zOnZvaWQgMD09PWkmJihpPXMpKX12YXIgbD10aGlzO3JldHVybiB5LmRlZmF1bHQucHJvdG90eXBlLmh0dHBEby5jYWxsKHRoaXMsdFswXSxcIkdFVFwiLFwidGV4dFwiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnJlcGxhY2UoL1xcclxcbi9nLFwiXFxyXCIpLnJlcGxhY2UoL1xcbi9nLFwiXFxyXCIpLnNwbGl0KC9cXHIvKSxyPTAsaT10Lmxlbmd0aDtyPGk7cis9MzI3NjgpQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYSx0LnNsaWNlKHIsTWF0aC5taW4ociszMjc2OCxpKSkpO3ZvaWQgMCE9PW4mJm4oYSksbC5fZGVjcmVtZW50UHJlbG9hZCgpfSxmdW5jdGlvbihlKXtpZih5LmRlZmF1bHQuX2ZyaWVuZGx5RmlsZUxvYWRFcnJvcigzLGUpLCFpKXRocm93IGU7aShlKX0pLGF9LHkuZGVmYXVsdC5wcm90b3R5cGUubG9hZFRhYmxlPWZ1bmN0aW9uKHQpe3ZhciBmLHIsZCxlPVtdLHA9ITEsaT10LnN1YnN0cmluZyh0Lmxhc3RJbmRleE9mKFwiLlwiKSsxLHQubGVuZ3RoKTtcImNzdlwiPT09aT9kPVwiLFwiOlwic3N2XCI9PT1pP2Q9XCI7XCI6XCJ0c3ZcIj09PWkmJihkPVwiXFx0XCIpO2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspXCJmdW5jdGlvblwiPT10eXBlb2YgYXJndW1lbnRzW25dP3ZvaWQgMD09PWY/Zj1hcmd1bWVudHNbbl06dm9pZCAwPT09ciYmKHI9YXJndW1lbnRzW25dKTpcInN0cmluZ1wiPT10eXBlb2YgYXJndW1lbnRzW25dJiYoZS5wdXNoKGFyZ3VtZW50c1tuXSksXCJoZWFkZXJcIj09PWFyZ3VtZW50c1tuXSYmKHA9ITApLFwiY3N2XCI9PT1hcmd1bWVudHNbbl0/ZD1cIixcIjpcInNzdlwiPT09YXJndW1lbnRzW25dP2Q9XCI7XCI6XCJ0c3ZcIj09PWFyZ3VtZW50c1tuXSYmKGQ9XCJcXHRcIikpO3ZhciBtPW5ldyB5LmRlZmF1bHQuVGFibGUsdj10aGlzO3JldHVybiB0aGlzLmh0dHBEbyh0LFwiR0VUXCIsXCJ0YWJsZVwiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyLGk9e30sbj1bXSxhPTAsbz1udWxsLHM9ZnVuY3Rpb24oKXtpLmN1cnJlbnRTdGF0ZT0wLGkudG9rZW49XCJcIn0sbD1mdW5jdGlvbigpe28ucHVzaChpLnRva2VuKSxzKCl9LHU9ZnVuY3Rpb24oKXtpLmN1cnJlbnRTdGF0ZT00LG4ucHVzaChvKSxvPW51bGx9Ozspe2lmKG51bGw9PSh0PWVbYSsrXSkpe2lmKGkuZXNjYXBlZCl0aHJvdyBuZXcgRXJyb3IoXCJVbmNsb3NlZCBxdW90ZSBpbiBmaWxlLlwiKTtpZihvKXtsKCksdSgpO2JyZWFrfX1pZihudWxsPT09byYmKGkuZXNjYXBlZD0hMSxvPVtdLHMoKSksMD09PWkuY3VycmVudFN0YXRlKXtpZignXCInPT09dCl7aS5lc2NhcGVkPSEwLGkuY3VycmVudFN0YXRlPTE7Y29udGludWV9aS5jdXJyZW50U3RhdGU9MX1pZigxPT09aS5jdXJyZW50U3RhdGUmJmkuZXNjYXBlZClpZignXCInPT09dCknXCInPT09ZVthXT8oaS50b2tlbis9J1wiJyxhKyspOihpLmVzY2FwZWQ9ITEsaS5jdXJyZW50U3RhdGU9Mik7ZWxzZXtpZihcIlxcclwiPT09dCljb250aW51ZTtpLnRva2VuKz10fWVsc2VcIlxcclwiPT09dD8oXCJcXG5cIj09PWVbYV0mJmErKyxsKCksdSgpKTpcIlxcblwiPT09dD8obCgpLHUoKSk6dD09PWQ/bCgpOjE9PT1pLmN1cnJlbnRTdGF0ZSYmKGkudG9rZW4rPXQpfWlmKHApbS5jb2x1bW5zPW4uc2hpZnQoKTtlbHNlIGZvcih2YXIgaD0wO2g8blswXS5sZW5ndGg7aCsrKW0uY29sdW1uc1toXT1cIm51bGxcIjtmb3IodmFyIGM9MDtjPG4ubGVuZ3RoO2MrKykoMSE9PW5bY10ubGVuZ3RofHxcInVuZGVmaW5lZFwiIT09bltjXVswXSYmXCJcIiE9PW5bY11bMF0pJiYoKHI9bmV3IHkuZGVmYXVsdC5UYWJsZVJvdykuYXJyPW5bY10sci5vYmo9YihuW2NdLG0uY29sdW1ucyksbS5hZGRSb3cocikpO1wiZnVuY3Rpb25cIj09dHlwZW9mIGYmJmYobSksdi5fZGVjcmVtZW50UHJlbG9hZCgpfSxmdW5jdGlvbihlKXt5LmRlZmF1bHQuX2ZyaWVuZGx5RmlsZUxvYWRFcnJvcigyLHQpLHI/cihlKTpjb25zb2xlLmVycm9yKGUpfSksbX0seS5kZWZhdWx0LnByb3RvdHlwZS5sb2FkWE1MPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07Zm9yKHZhciBpLG4sYT1uZXcgeS5kZWZhdWx0LlhNTCxvPTE7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb107XCJmdW5jdGlvblwiPT10eXBlb2YgcyYmKHZvaWQgMD09PWk/aT1zOnZvaWQgMD09PW4mJihuPXMpKX12YXIgbD10aGlzO3JldHVybiB0aGlzLmh0dHBEbyh0WzBdLFwiR0VUXCIsXCJ4bWxcIixmdW5jdGlvbihlKXtmb3IodmFyIHQgaW4gZSlhW3RdPWVbdF07dm9pZCAwIT09aSYmaShhKSxsLl9kZWNyZW1lbnRQcmVsb2FkKCl9LGZ1bmN0aW9uKGUpe2lmKHkuZGVmYXVsdC5fZnJpZW5kbHlGaWxlTG9hZEVycm9yKDEsZSksIW4pdGhyb3cgZTtuKGUpfSksYX0seS5kZWZhdWx0LnByb3RvdHlwZS5sb2FkQnl0ZXM9ZnVuY3Rpb24odCxyLGkpe3ZhciBuPXt9LGE9dGhpcztyZXR1cm4gdGhpcy5odHRwRG8odCxcIkdFVFwiLFwiYXJyYXlCdWZmZXJcIixmdW5jdGlvbihlKXtuLmJ5dGVzPW5ldyBVaW50OEFycmF5KGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHImJnIobiksYS5fZGVjcmVtZW50UHJlbG9hZCgpfSxmdW5jdGlvbihlKXtpZih5LmRlZmF1bHQuX2ZyaWVuZGx5RmlsZUxvYWRFcnJvcig2LHQpLCFpKXRocm93IGU7aShlKX0pLG59LHkuZGVmYXVsdC5wcm90b3R5cGUuaHR0cEdldD1mdW5jdGlvbigpe3kuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiaHR0cEdldFwiLGFyZ3VtZW50cyk7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gZS5zcGxpY2UoMSwwLFwiR0VUXCIpLHkuZGVmYXVsdC5wcm90b3R5cGUuaHR0cERvLmFwcGx5KHRoaXMsZSl9LHkuZGVmYXVsdC5wcm90b3R5cGUuaHR0cFBvc3Q9ZnVuY3Rpb24oKXt5LmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImh0dHBQb3N0XCIsYXJndW1lbnRzKTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBlLnNwbGljZSgxLDAsXCJQT1NUXCIpLHkuZGVmYXVsdC5wcm90b3R5cGUuaHR0cERvLmFwcGx5KHRoaXMsZSl9LHkuZGVmYXVsdC5wcm90b3R5cGUuaHR0cERvPWZ1bmN0aW9uKCl7Zm9yKHZhciBpLGUsdCxyLG4sYT17fSxvPTAscz1cInRleHQvcGxhaW5cIixsPWFyZ3VtZW50cy5sZW5ndGgtMTswPGwmJlwiZnVuY3Rpb25cIj09dHlwZW9mKGw8MHx8YXJndW1lbnRzLmxlbmd0aDw9bD92b2lkIDA6YXJndW1lbnRzW2xdKTtsLS0pbysrO3ZhciB1PWFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXTtpZigyPT1hcmd1bWVudHMubGVuZ3RoLW8mJlwic3RyaW5nXCI9PXR5cGVvZiB1JiZcIm9iamVjdFwiPT09Zyhhcmd1bWVudHMubGVuZ3RoPD0xP3ZvaWQgMDphcmd1bWVudHNbMV0pKXI9bmV3IFJlcXVlc3QodSxhcmd1bWVudHMubGVuZ3RoPD0xP3ZvaWQgMDphcmd1bWVudHNbMV0pLGU9YXJndW1lbnRzLmxlbmd0aDw9Mj92b2lkIDA6YXJndW1lbnRzWzJdLHQ9YXJndW1lbnRzLmxlbmd0aDw9Mz92b2lkIDA6YXJndW1lbnRzWzNdO2Vsc2V7Zm9yKHZhciBoLGM9XCJHRVRcIixmPTE7Zjxhcmd1bWVudHMubGVuZ3RoO2YrKyl7dmFyIGQ9ZjwwfHxhcmd1bWVudHMubGVuZ3RoPD1mP3ZvaWQgMDphcmd1bWVudHNbZl07aWYoXCJzdHJpbmdcIj09dHlwZW9mIGQpXCJHRVRcIj09PWR8fFwiUE9TVFwiPT09ZHx8XCJQVVRcIj09PWR8fFwiREVMRVRFXCI9PT1kP2M9ZDpcImpzb25cIj09PWR8fFwianNvbnBcIj09PWR8fFwiYmluYXJ5XCI9PT1kfHxcImFycmF5QnVmZmVyXCI9PT1kfHxcInhtbFwiPT09ZHx8XCJ0ZXh0XCI9PT1kfHxcInRhYmxlXCI9PT1kP2k9ZDpoPWQ7ZWxzZSBpZihcIm51bWJlclwiPT10eXBlb2YgZCloPWQudG9TdHJpbmcoKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1nKGQpKWlmKGQuaGFzT3duUHJvcGVydHkoXCJqc29ucENhbGxiYWNrXCIpfHxkLmhhc093blByb3BlcnR5KFwianNvbnBDYWxsYmFja0Z1bmN0aW9uXCIpKWZvcih2YXIgcCBpbiBkKWFbcF09ZFtwXTtlbHNlIHM9ZCBpbnN0YW5jZW9mIHkuZGVmYXVsdC5YTUw/KGg9ZC5zZXJpYWxpemUoKSxcImFwcGxpY2F0aW9uL3htbFwiKTooaD1KU09OLnN0cmluZ2lmeShkKSxcImFwcGxpY2F0aW9uL2pzb25cIik7ZWxzZVwiZnVuY3Rpb25cIj09dHlwZW9mIGQmJihlP3Q9ZDplPWQpfXZhciBtPVwiR0VUXCI9PT1jP25ldyBIZWFkZXJzOm5ldyBIZWFkZXJzKHtcIkNvbnRlbnQtVHlwZVwiOnN9KTtyPW5ldyBSZXF1ZXN0KHUse21ldGhvZDpjLG1vZGU6XCJjb3JzXCIsYm9keTpoLGhlYWRlcnM6bX0pfXJldHVybihuPShuPVwianNvbnBcIj09PShpPWl8fCh1LmluY2x1ZGVzKFwianNvblwiKT9cImpzb25cIjp1LmluY2x1ZGVzKFwieG1sXCIpP1wieG1sXCI6XCJ0ZXh0XCIpKT8oMCx2LmRlZmF1bHQpKHUsYSk6ZmV0Y2gocikpLnRoZW4oZnVuY3Rpb24oZSl7aWYoIWUub2spe3ZhciB0PW5ldyBFcnJvcihlLmJvZHkpO3Rocm93IHQuc3RhdHVzPWUuc3RhdHVzLHQub2s9ITEsdH12YXIgcj0wO3N3aXRjaChcImpzb25wXCIhPT1pJiYocj1lLmhlYWRlcnMuZ2V0KFwiY29udGVudC1sZW5ndGhcIikpLHImJjY0ZTY8ciYmeS5kZWZhdWx0Ll9mcmllbmRseUZpbGVMb2FkRXJyb3IoNyx1KSxpKXtjYXNlXCJqc29uXCI6Y2FzZVwianNvbnBcIjpyZXR1cm4gZS5qc29uKCk7Y2FzZVwiYmluYXJ5XCI6cmV0dXJuIGUuYmxvYigpO2Nhc2VcImFycmF5QnVmZmVyXCI6cmV0dXJuIGUuYXJyYXlCdWZmZXIoKTtjYXNlXCJ4bWxcIjpyZXR1cm4gZS50ZXh0KCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGUsXCJ0ZXh0L3htbFwiKTtyZXR1cm4gbmV3IHkuZGVmYXVsdC5YTUwodC5kb2N1bWVudEVsZW1lbnQpfSk7ZGVmYXVsdDpyZXR1cm4gZS50ZXh0KCl9fSkpLnRoZW4oZXx8ZnVuY3Rpb24oKXt9KSxuLmNhdGNoKHR8fGNvbnNvbGUuZXJyb3IpLG59LHdpbmRvdy5VUkw9d2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCx5LmRlZmF1bHQucHJvdG90eXBlLl9wV3JpdGVycz1bXSx5LmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZVdyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByO2Zvcih2YXIgaSBpbiB5LmRlZmF1bHQucHJvdG90eXBlLl9wV3JpdGVycylpZih5LmRlZmF1bHQucHJvdG90eXBlLl9wV3JpdGVyc1tpXS5uYW1lPT09ZSlyZXR1cm4gcj1uZXcgeS5kZWZhdWx0LlByaW50V3JpdGVyKGUrdGhpcy5taWxsaXMoKSx0KSx5LmRlZmF1bHQucHJvdG90eXBlLl9wV3JpdGVycy5wdXNoKHIpLHI7cmV0dXJuIHI9bmV3IHkuZGVmYXVsdC5QcmludFdyaXRlcihlLHQpLHkuZGVmYXVsdC5wcm90b3R5cGUuX3BXcml0ZXJzLnB1c2gocikscn0seS5kZWZhdWx0LlByaW50V3JpdGVyPWZ1bmN0aW9uKHIsaSl7dmFyIG49dGhpczt0aGlzLm5hbWU9cix0aGlzLmNvbnRlbnQ9XCJcIix0aGlzLndyaXRlPWZ1bmN0aW9uKGUpe3RoaXMuY29udGVudCs9ZX0sdGhpcy5wcmludD1mdW5jdGlvbihlKXt0aGlzLmNvbnRlbnQrPVwiXCIuY29uY2F0KGUsXCJcXG5cIil9LHRoaXMuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmNvbnRlbnQ9XCJcIn0sdGhpcy5jbG9zZT1mdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgdCBpbiBlLnB1c2godGhpcy5jb250ZW50KSx5LmRlZmF1bHQucHJvdG90eXBlLndyaXRlRmlsZShlLHIsaSkseS5kZWZhdWx0LnByb3RvdHlwZS5fcFdyaXRlcnMpeS5kZWZhdWx0LnByb3RvdHlwZS5fcFdyaXRlcnNbdF0ubmFtZT09PXRoaXMubmFtZSYmeS5kZWZhdWx0LnByb3RvdHlwZS5fcFdyaXRlcnMuc3BsaWNlKHQsMSk7bi5jbGVhcigpLG49e319fSx5LmRlZmF1bHQucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWFyZ3VtZW50cyxuPXRoaXMuX2N1ckVsZW1lbnQ/dGhpcy5fY3VyRWxlbWVudC5lbHQ6dGhpcy5lbHQ7aWYoMCE9PWkubGVuZ3RoKWlmKGlbMF1pbnN0YW5jZW9mIHkuZGVmYXVsdC5SZW5kZXJlcnx8aVswXWluc3RhbmNlb2YgeS5kZWZhdWx0LkdyYXBoaWNzKXkuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUNhbnZhcyhpWzBdLmVsdCxpWzFdLGlbMl0pO2Vsc2UgaWYoMT09PWkubGVuZ3RoJiZcInN0cmluZ1wiPT10eXBlb2YgaVswXSl5LmRlZmF1bHQucHJvdG90eXBlLnNhdmVDYW52YXMobixpWzBdKTtlbHNlIHN3aXRjaChsKGlbMV0saVsyXSlbMV0pe2Nhc2VcImpzb25cIjpyZXR1cm4gdm9pZCB5LmRlZmF1bHQucHJvdG90eXBlLnNhdmVKU09OKGlbMF0saVsxXSxpWzJdKTtjYXNlXCJ0eHRcIjpyZXR1cm4gdm9pZCB5LmRlZmF1bHQucHJvdG90eXBlLnNhdmVTdHJpbmdzKGlbMF0saVsxXSxpWzJdKTtkZWZhdWx0OmlbMF1pbnN0YW5jZW9mIEFycmF5P3kuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZVN0cmluZ3MoaVswXSxpWzFdLGlbMl0pOmlbMF1pbnN0YW5jZW9mIHkuZGVmYXVsdC5UYWJsZT95LmRlZmF1bHQucHJvdG90eXBlLnNhdmVUYWJsZShpWzBdLGlbMV0saVsyXSk6aVswXWluc3RhbmNlb2YgeS5kZWZhdWx0LkltYWdlP3kuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUNhbnZhcyhpWzBdLmNhbnZhcyxpWzFdKTppWzBdaW5zdGFuY2VvZiB5LmRlZmF1bHQuU291bmRGaWxlJiZ5LmRlZmF1bHQucHJvdG90eXBlLnNhdmVTb3VuZChpWzBdLGlbMV0saVsyXSxpWzNdKX1lbHNlIHkuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUNhbnZhcyhuKX0seS5kZWZhdWx0LnByb3RvdHlwZS5zYXZlSlNPTj1mdW5jdGlvbihlLHQscil7dmFyIGk7eS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzYXZlSlNPTlwiLGFyZ3VtZW50cyksaT1yP0pTT04uc3RyaW5naWZ5KGUpOkpTT04uc3RyaW5naWZ5KGUsdm9pZCAwLDIpLHRoaXMuc2F2ZVN0cmluZ3MoaS5zcGxpdChcIlxcblwiKSx0LFwianNvblwiKX0seS5kZWZhdWx0LnByb3RvdHlwZS5zYXZlSlNPTk9iamVjdD15LmRlZmF1bHQucHJvdG90eXBlLnNhdmVKU09OLHkuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZUpTT05BcnJheT15LmRlZmF1bHQucHJvdG90eXBlLnNhdmVKU09OLHkuZGVmYXVsdC5wcm90b3R5cGUuc2F2ZVN0cmluZ3M9ZnVuY3Rpb24oZSx0LHIsaSl7eS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzYXZlU3RyaW5nc1wiLGFyZ3VtZW50cyk7Zm9yKHZhciBuPXJ8fFwidHh0XCIsYT10aGlzLmNyZWF0ZVdyaXRlcih0LG4pLG89MDtvPGUubGVuZ3RoO28rKylpP2Eud3JpdGUoZVtvXStcIlxcclxcblwiKTphLndyaXRlKGVbb10rXCJcXG5cIik7YS5jbG9zZSgpLGEuY2xlYXIoKX0seS5kZWZhdWx0LnByb3RvdHlwZS5zYXZlVGFibGU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpO3kuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic2F2ZVRhYmxlXCIsYXJndW1lbnRzKSxpPXZvaWQgMD09PXI/dC5zdWJzdHJpbmcodC5sYXN0SW5kZXhPZihcIi5cIikrMSx0Lmxlbmd0aCk6cjt2YXIgbj10aGlzLmNyZWF0ZVdyaXRlcih0LGkpLGE9ZS5jb2x1bW5zLG89XCIsXCI7aWYoXCJ0c3ZcIj09PWkmJihvPVwiXFx0XCIpLFwiaHRtbFwiIT09aSl7aWYoXCIwXCIhPT1hWzBdKXtmb3IodmFyIHM9MDtzPGEubGVuZ3RoO3MrKylzPGEubGVuZ3RoLTE/bi53cml0ZShhW3NdK28pOm4ud3JpdGUoYVtzXSk7bi53cml0ZShcIlxcblwiKX1mb3IodmFyIGw9MDtsPGUucm93cy5sZW5ndGg7bCsrKXt2YXIgdT12b2lkIDA7Zm9yKHU9MDt1PGUucm93c1tsXS5hcnIubGVuZ3RoO3UrKyl1PGUucm93c1tsXS5hcnIubGVuZ3RoLTE/XCJjc3ZcIj09PWkmJmUucm93c1tsXS5hcnJbdV0uaW5jbHVkZXMoXCIsXCIpP24ud3JpdGUoJ1wiJytlLnJvd3NbbF0uYXJyW3VdKydcIicrbyk6bi53cml0ZShlLnJvd3NbbF0uYXJyW3VdK28pOlwiY3N2XCI9PT1pJiZlLnJvd3NbbF0uYXJyW3VdLmluY2x1ZGVzKFwiLFwiKT9uLndyaXRlKCdcIicrZS5yb3dzW2xdLmFyclt1XSsnXCInKTpuLndyaXRlKGUucm93c1tsXS5hcnJbdV0pO24ud3JpdGUoXCJcXG5cIil9fWVsc2V7bi5wcmludChcIjxodG1sPlwiKSxuLnByaW50KFwiPGhlYWQ+XCIpO2lmKG4ucHJpbnQoJyAgPG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOFwiIC8+Jyksbi5wcmludChcIjwvaGVhZD5cIiksbi5wcmludChcIjxib2R5PlwiKSxuLnByaW50KFwiICA8dGFibGU+XCIpLFwiMFwiIT09YVswXSl7bi5wcmludChcIiAgICA8dHI+XCIpO2Zvcih2YXIgaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgYz1tKGFbaF0pO24ucHJpbnQoXCIgICAgICA8dGQ+XCIuY29uY2F0KGMpKSxuLnByaW50KFwiICAgICAgPC90ZD5cIil9bi5wcmludChcIiAgICA8L3RyPlwiKX1mb3IodmFyIGY9MDtmPGUucm93cy5sZW5ndGg7ZisrKXtuLnByaW50KFwiICAgIDx0cj5cIik7Zm9yKHZhciBkPTA7ZDxlLmNvbHVtbnMubGVuZ3RoO2QrKyl7dmFyIHA9bShlLnJvd3NbZl0uZ2V0U3RyaW5nKGQpKTtuLnByaW50KFwiICAgICAgPHRkPlwiLmNvbmNhdChwKSksbi5wcmludChcIiAgICAgIDwvdGQ+XCIpfW4ucHJpbnQoXCIgICAgPC90cj5cIil9bi5wcmludChcIiAgPC90YWJsZT5cIiksbi5wcmludChcIjwvYm9keT5cIiksbi5wcmludChcIjwvaHRtbD5cIil9bi5jbG9zZSgpLG4uY2xlYXIoKX0seS5kZWZhdWx0LnByb3RvdHlwZS53cml0ZUZpbGU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPVwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7eS5kZWZhdWx0LnByb3RvdHlwZS5faXNTYWZhcmkoKSYmKGk9XCJ0ZXh0L3BsYWluXCIpO3ZhciBuPW5ldyBCbG9iKGUse3R5cGU6aX0pO3kuZGVmYXVsdC5wcm90b3R5cGUuZG93bmxvYWRGaWxlKG4sdCxyKX0seS5kZWZhdWx0LnByb3RvdHlwZS5kb3dubG9hZEZpbGU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWwodCxyKSxuPWlbMF07aWYoZSBpbnN0YW5jZW9mIEJsb2Ipcy5kZWZhdWx0LnNhdmVBcyhlLG4pO2Vsc2V7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7aWYoYS5ocmVmPWUsYS5kb3dubG9hZD1uLGEub25jbGljaz1mdW5jdGlvbihlKXt2YXIgdDt0PWUsZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0LnRhcmdldCksZS5zdG9wUHJvcGFnYXRpb24oKX0sYS5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSkseS5kZWZhdWx0LnByb3RvdHlwZS5faXNTYWZhcmkoKSl7dmFyIG89XCJIZWxsbywgU2FmYXJpIHVzZXIhIFRvIGRvd25sb2FkIHRoaXMgZmlsZS4uLlxcblwiO28rPVwiMS4gR28gdG8gRmlsZSAtLVxceDNlIFNhdmUgQXMuXFxuXCIsbys9JzIuIENob29zZSBcIlBhZ2UgU291cmNlXCIgYXMgdGhlIEZvcm1hdC5cXG4nLG8rPSczLiBOYW1lIGl0IHdpdGggdGhpcyBleHRlbnNpb246IC5cIicuY29uY2F0KGlbMV0sJ1wiJyksYWxlcnQobyl9YS5jbGljaygpfX0seS5kZWZhdWx0LnByb3RvdHlwZS5fY2hlY2tGaWxlRXh0ZW5zaW9uPWwseS5kZWZhdWx0LnByb3RvdHlwZS5faXNTYWZhcmk9ZnVuY3Rpb24oKXtyZXR1cm4gMDxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2luZG93LkhUTUxFbGVtZW50KS5pbmRleE9mKFwiQ29uc3RydWN0b3JcIil9O3ZhciBuPXkuZGVmYXVsdDtyLmRlZmF1bHQ9bn0se1wiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmVzX2NvcmVcIjoyOCxcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2ZpbGVfZXJyb3JzXCI6MjksXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy92YWxpZGF0ZV9wYXJhbXNcIjozMSxcIi4uL2NvcmUvbWFpblwiOjM2LFwiZXM2LXByb21pc2UvYXV0b1wiOjUsXCJmZXRjaC1qc29ucFwiOjcsXCJmaWxlLXNhdmVyXCI6OCxcIndoYXR3Zy1mZXRjaFwiOjE1fV0sNjM6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O24uZGVmYXVsdC5UYWJsZT1mdW5jdGlvbihlKXt0aGlzLmNvbHVtbnM9W10sdGhpcy5yb3dzPVtdfSxuLmRlZmF1bHQuVGFibGUucHJvdG90eXBlLmFkZFJvdz1mdW5jdGlvbihlKXt2YXIgdD1lfHxuZXcgbi5kZWZhdWx0LlRhYmxlUm93O2lmKHZvaWQgMD09PXQuYXJyfHx2b2lkIDA9PT10Lm9iail0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIFRhYmxlUm93OiBcIi5jb25jYXQodCkpO3JldHVybih0LnRhYmxlPXRoaXMpLnJvd3MucHVzaCh0KSx0fSxuLmRlZmF1bHQuVGFibGUucHJvdG90eXBlLnJlbW92ZVJvdz1mdW5jdGlvbihlKXt0aGlzLnJvd3NbZV0udGFibGU9bnVsbDt2YXIgdD10aGlzLnJvd3Muc3BsaWNlKGUrMSx0aGlzLnJvd3MubGVuZ3RoKTt0aGlzLnJvd3MucG9wKCksdGhpcy5yb3dzPXRoaXMucm93cy5jb25jYXQodCl9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0Um93PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJvd3NbZV19LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0Um93cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvd3N9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZmluZFJvdz1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtmb3IodmFyIHI9MDtyPHRoaXMucm93cy5sZW5ndGg7cisrKWlmKHRoaXMucm93c1tyXS5vYmpbdF09PT1lKXJldHVybiB0aGlzLnJvd3Nbcl19ZWxzZSBmb3IodmFyIGk9MDtpPHRoaXMucm93cy5sZW5ndGg7aSsrKWlmKHRoaXMucm93c1tpXS5hcnJbdF09PT1lKXJldHVybiB0aGlzLnJvd3NbaV07cmV0dXJuIG51bGx9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZmluZFJvd3M9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXTtpZihcInN0cmluZ1wiPT10eXBlb2YgdClmb3IodmFyIGk9MDtpPHRoaXMucm93cy5sZW5ndGg7aSsrKXRoaXMucm93c1tpXS5vYmpbdF09PT1lJiZyLnB1c2godGhpcy5yb3dzW2ldKTtlbHNlIGZvcih2YXIgbj0wO248dGhpcy5yb3dzLmxlbmd0aDtuKyspdGhpcy5yb3dzW25dLmFyclt0XT09PWUmJnIucHVzaCh0aGlzLnJvd3Nbbl0pO3JldHVybiByfSxuLmRlZmF1bHQuVGFibGUucHJvdG90eXBlLm1hdGNoUm93PWZ1bmN0aW9uKGUsdCl7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpe2Zvcih2YXIgcj0wO3I8dGhpcy5yb3dzLmxlbmd0aDtyKyspaWYodGhpcy5yb3dzW3JdLmFyclt0XS5tYXRjaChlKSlyZXR1cm4gdGhpcy5yb3dzW3JdfWVsc2UgZm9yKHZhciBpPTA7aTx0aGlzLnJvd3MubGVuZ3RoO2krKylpZih0aGlzLnJvd3NbaV0ub2JqW3RdLm1hdGNoKGUpKXJldHVybiB0aGlzLnJvd3NbaV07cmV0dXJuIG51bGx9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUubWF0Y2hSb3dzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9W107aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpZm9yKHZhciBpPTA7aTx0aGlzLnJvd3MubGVuZ3RoO2krKyl0aGlzLnJvd3NbaV0uYXJyW3RdLm1hdGNoKGUpJiZyLnB1c2godGhpcy5yb3dzW2ldKTtlbHNlIGZvcih2YXIgbj0wO248dGhpcy5yb3dzLmxlbmd0aDtuKyspdGhpcy5yb3dzW25dLm9ialt0XS5tYXRjaChlKSYmci5wdXNoKHRoaXMucm93c1tuXSk7cmV0dXJuIHJ9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0Q29sdW1uPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWZvcih2YXIgcj0wO3I8dGhpcy5yb3dzLmxlbmd0aDtyKyspdC5wdXNoKHRoaXMucm93c1tyXS5vYmpbZV0pO2Vsc2UgZm9yKHZhciBpPTA7aTx0aGlzLnJvd3MubGVuZ3RoO2krKyl0LnB1c2godGhpcy5yb3dzW2ldLmFycltlXSk7cmV0dXJuIHR9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuY2xlYXJSb3dzPWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMucm93cyx0aGlzLnJvd3M9W119LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuYWRkQ29sdW1uPWZ1bmN0aW9uKGUpe3ZhciB0PWV8fG51bGw7dGhpcy5jb2x1bW5zLnB1c2godCl9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0Q29sdW1uQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2x1bW5zLmxlbmd0aH0sbi5kZWZhdWx0LlRhYmxlLnByb3RvdHlwZS5nZXRSb3dDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvd3MubGVuZ3RofSxuLmRlZmF1bHQuVGFibGUucHJvdG90eXBlLnJlbW92ZVRva2Vucz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspci5wdXNoKGUuY2hhckF0KGkpLnJlcGxhY2UoL1stL1xcXFxeJCorPy4oKXxbXFxde31dL2csXCJcXFxcJCZcIikpO3ZhciBuPW5ldyBSZWdFeHAoci5qb2luKFwifFwiKSxcImdcIik7aWYodm9pZCAwPT09dClmb3IodmFyIGE9MDthPHRoaXMuY29sdW1ucy5sZW5ndGg7YSsrKWZvcih2YXIgbz0wO288dGhpcy5yb3dzLmxlbmd0aDtvKyspe3ZhciBzPXRoaXMucm93c1tvXS5hcnJbYV07cz1zLnJlcGxhY2UobixcIlwiKSx0aGlzLnJvd3Nbb10uYXJyW2FdPXMsdGhpcy5yb3dzW29dLm9ialt0aGlzLmNvbHVtbnNbYV1dPXN9ZWxzZSBpZihcInN0cmluZ1wiPT10eXBlb2YgdClmb3IodmFyIGw9MDtsPHRoaXMucm93cy5sZW5ndGg7bCsrKXt2YXIgdT10aGlzLnJvd3NbbF0ub2JqW3RdO3U9dS5yZXBsYWNlKG4sXCJcIiksdGhpcy5yb3dzW2xdLm9ialt0XT11O3ZhciBoPXRoaXMuY29sdW1ucy5pbmRleE9mKHQpO3RoaXMucm93c1tsXS5hcnJbaF09dX1lbHNlIGZvcih2YXIgYz0wO2M8dGhpcy5yb3dzLmxlbmd0aDtjKyspe3ZhciBmPXRoaXMucm93c1tjXS5hcnJbdF07Zj1mLnJlcGxhY2UobixcIlwiKSx0aGlzLnJvd3NbY10uYXJyW3RdPWYsdGhpcy5yb3dzW2NdLm9ialt0aGlzLmNvbHVtbnNbdF1dPWZ9fSxuLmRlZmF1bHQuVGFibGUucHJvdG90eXBlLnRyaW09ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFJlZ0V4cChcIiBcIixcImdcIik7aWYodm9pZCAwPT09ZSlmb3IodmFyIHI9MDtyPHRoaXMuY29sdW1ucy5sZW5ndGg7cisrKWZvcih2YXIgaT0wO2k8dGhpcy5yb3dzLmxlbmd0aDtpKyspe3ZhciBuPXRoaXMucm93c1tpXS5hcnJbcl07bj1uLnJlcGxhY2UodCxcIlwiKSx0aGlzLnJvd3NbaV0uYXJyW3JdPW4sdGhpcy5yb3dzW2ldLm9ialt0aGlzLmNvbHVtbnNbcl1dPW59ZWxzZSBpZihcInN0cmluZ1wiPT10eXBlb2YgZSlmb3IodmFyIGE9MDthPHRoaXMucm93cy5sZW5ndGg7YSsrKXt2YXIgbz10aGlzLnJvd3NbYV0ub2JqW2VdO289by5yZXBsYWNlKHQsXCJcIiksdGhpcy5yb3dzW2FdLm9ialtlXT1vO3ZhciBzPXRoaXMuY29sdW1ucy5pbmRleE9mKGUpO3RoaXMucm93c1thXS5hcnJbc109b31lbHNlIGZvcih2YXIgbD0wO2w8dGhpcy5yb3dzLmxlbmd0aDtsKyspe3ZhciB1PXRoaXMucm93c1tsXS5hcnJbZV07dT11LnJlcGxhY2UodCxcIlwiKSx0aGlzLnJvd3NbbF0uYXJyW2VdPXUsdGhpcy5yb3dzW2xdLm9ialt0aGlzLmNvbHVtbnNbZV1dPXV9fSxuLmRlZmF1bHQuVGFibGUucHJvdG90eXBlLnJlbW92ZUNvbHVtbj1mdW5jdGlvbihlKXt2YXIgdCxyO1wic3RyaW5nXCI9PXR5cGVvZiBlPyh0PWUscj10aGlzLmNvbHVtbnMuaW5kZXhPZihlKSk6KHI9ZSx0PXRoaXMuY29sdW1uc1tlXSk7dmFyIGk9dGhpcy5jb2x1bW5zLnNwbGljZShyKzEsdGhpcy5jb2x1bW5zLmxlbmd0aCk7dGhpcy5jb2x1bW5zLnBvcCgpLHRoaXMuY29sdW1ucz10aGlzLmNvbHVtbnMuY29uY2F0KGkpO2Zvcih2YXIgbj0wO248dGhpcy5yb3dzLmxlbmd0aDtuKyspe3ZhciBhPXRoaXMucm93c1tuXS5hcnIsbz1hLnNwbGljZShyKzEsYS5sZW5ndGgpO2EucG9wKCksdGhpcy5yb3dzW25dLmFycj1hLmNvbmNhdChvKSxkZWxldGUgdGhpcy5yb3dzW25dLm9ialt0XX19LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCxyKXt0aGlzLnJvd3NbZV0uc2V0KHQscil9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuc2V0TnVtPWZ1bmN0aW9uKGUsdCxyKXt0aGlzLnJvd3NbZV0uc2V0TnVtKHQscil9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuc2V0U3RyaW5nPWZ1bmN0aW9uKGUsdCxyKXt0aGlzLnJvd3NbZV0uc2V0U3RyaW5nKHQscil9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucm93c1tlXS5nZXQodCl9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0TnVtPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucm93c1tlXS5nZXROdW0odCl9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucm93c1tlXS5nZXRTdHJpbmcodCl9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0T2JqZWN0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXt9LGk9MDtpPHRoaXMucm93cy5sZW5ndGg7aSsrKWlmKHQ9dGhpcy5yb3dzW2ldLm9iaixcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoISgwPD10aGlzLmNvbHVtbnMuaW5kZXhPZihlKSkpdGhyb3cgbmV3IEVycm9yKCdUaGlzIHRhYmxlIGhhcyBubyBjb2x1bW4gbmFtZWQgXCInLmNvbmNhdChlLCdcIicpKTtyW3RbZV1dPXR9ZWxzZSByW2ldPXRoaXMucm93c1tpXS5vYmo7cmV0dXJuIHJ9LG4uZGVmYXVsdC5UYWJsZS5wcm90b3R5cGUuZ2V0QXJyYXk9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8dGhpcy5yb3dzLmxlbmd0aDt0KyspZS5wdXNoKHRoaXMucm93c1t0XS5hcnIpO3JldHVybiBlfTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sNjQ6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O24uZGVmYXVsdC5UYWJsZVJvdz1mdW5jdGlvbihlLHQpe3ZhciByPVtdLGk9e307ZSYmKHQ9dHx8XCIsXCIscj1lLnNwbGl0KHQpKTtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGE9bixvPXJbbl07aVthXT1vfXRoaXMuYXJyPXIsdGhpcy5vYmo9aSx0aGlzLnRhYmxlPW51bGx9LG4uZGVmYXVsdC5UYWJsZVJvdy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpe3ZhciByPXRoaXMudGFibGUuY29sdW1ucy5pbmRleE9mKGUpO2lmKCEoMDw9cikpdGhyb3cgbmV3IEVycm9yKCdUaGlzIHRhYmxlIGhhcyBubyBjb2x1bW4gbmFtZWQgXCInLmNvbmNhdChlLCdcIicpKTt0aGlzLm9ialtlXT10LHRoaXMuYXJyW3JdPXR9ZWxzZXtpZighKGU8dGhpcy50YWJsZS5jb2x1bW5zLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKFwiQ29sdW1uICNcIi5jb25jYXQoZSxcIiBpcyBvdXQgb2YgdGhlIHJhbmdlIG9mIHRoaXMgdGFibGVcIikpO3RoaXMuYXJyW2VdPXQ7dmFyIGk9dGhpcy50YWJsZS5jb2x1bW5zW2VdO3RoaXMub2JqW2ldPXR9fSxuLmRlZmF1bHQuVGFibGVSb3cucHJvdG90eXBlLnNldE51bT1mdW5jdGlvbihlLHQpe3ZhciByPXBhcnNlRmxvYXQodCk7dGhpcy5zZXQoZSxyKX0sbi5kZWZhdWx0LlRhYmxlUm93LnByb3RvdHlwZS5zZXRTdHJpbmc9ZnVuY3Rpb24oZSx0KXt2YXIgcj10LnRvU3RyaW5nKCk7dGhpcy5zZXQoZSxyKX0sbi5kZWZhdWx0LlRhYmxlUm93LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/dGhpcy5vYmpbZV06dGhpcy5hcnJbZV19LG4uZGVmYXVsdC5UYWJsZVJvdy5wcm90b3R5cGUuZ2V0TnVtPWZ1bmN0aW9uKGUpe3ZhciB0O2lmKFwiTmFOXCI9PT0odD1cInN0cmluZ1wiPT10eXBlb2YgZT9wYXJzZUZsb2F0KHRoaXMub2JqW2VdKTpwYXJzZUZsb2F0KHRoaXMuYXJyW2VdKSkudG9TdHJpbmcoKSl0aHJvd1wiRXJyb3I6IFwiLmNvbmNhdCh0aGlzLm9ialtlXSxcIiBpcyBOYU4gKE5vdCBhIE51bWJlcilcIik7cmV0dXJuIHR9LG4uZGVmYXVsdC5UYWJsZVJvdy5wcm90b3R5cGUuZ2V0U3RyaW5nPWZ1bmN0aW9uKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP3RoaXMub2JqW2VdLnRvU3RyaW5nKCk6dGhpcy5hcnJbZV0udG9TdHJpbmcoKX07dmFyIGE9bi5kZWZhdWx0O3IuZGVmYXVsdD1hfSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDY1OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxzPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtmdW5jdGlvbiBuKGUpe2Zvcih2YXIgdD1bXSxyPTA7cjxlLmxlbmd0aDtyKyspdC5wdXNoKG5ldyBzLmRlZmF1bHQuWE1MKGVbcl0pKTtyZXR1cm4gdH1zLmRlZmF1bHQuWE1MPWZ1bmN0aW9uKGUpe2lmKGUpdGhpcy5ET009ZTtlbHNle3ZhciB0PWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsXCJkb2NcIik7dGhpcy5ET009dC5jcmVhdGVFbGVtZW50KFwicm9vdFwiKX19LHMuZGVmYXVsdC5YTUwucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbigpe3JldHVybiBuZXcgcy5kZWZhdWx0LlhNTCh0aGlzLkRPTS5wYXJlbnRFbGVtZW50KX0scy5kZWZhdWx0LlhNTC5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkRPTS50YWdOYW1lfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5zZXROYW1lPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuRE9NLmlubmVySFRNTCxyPXRoaXMuRE9NLmF0dHJpYnV0ZXMsaT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLFwiZGVmYXVsdFwiKS5jcmVhdGVFbGVtZW50KGUpO2kuaW5uZXJIVE1MPXQ7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspaS5zZXRBdHRyaWJ1dGUocltuXS5ub2RlTmFtZSxyLm5vZGVWYWx1ZSk7dGhpcy5ET009aX0scy5kZWZhdWx0LlhNTC5wcm90b3R5cGUuaGFzQ2hpbGRyZW49ZnVuY3Rpb24oKXtyZXR1cm4gMDx0aGlzLkRPTS5jaGlsZHJlbi5sZW5ndGh9LHMuZGVmYXVsdC5YTUwucHJvdG90eXBlLmxpc3RDaGlsZHJlbj1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDx0aGlzLkRPTS5jaGlsZE5vZGVzLmxlbmd0aDt0KyspZS5wdXNoKHRoaXMuRE9NLmNoaWxkTm9kZXNbdF0ubm9kZU5hbWUpO3JldHVybiBlfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5nZXRDaGlsZHJlbj1mdW5jdGlvbihlKXtyZXR1cm4gbihlP3RoaXMuRE9NLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOnRoaXMuRE9NLmNoaWxkcmVuKX0scy5kZWZhdWx0LlhNTC5wcm90b3R5cGUuZ2V0Q2hpbGQ9ZnVuY3Rpb24oZSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUpcmV0dXJuIG5ldyBzLmRlZmF1bHQuWE1MKHRoaXMuRE9NLmNoaWxkcmVuW2VdKTt2YXIgdD0hMCxyPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIG4sYT10aGlzLkRPTS5jaGlsZHJlbltTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShuPWEubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbz1uLnZhbHVlO2lmKG8udGFnTmFtZT09PWUpcmV0dXJuIG5ldyBzLmRlZmF1bHQuWE1MKG8pfX1jYXRjaChlKXtyPSEwLGk9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHIpdGhyb3cgaX19fSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5hZGRDaGlsZD1mdW5jdGlvbihlKXtlIGluc3RhbmNlb2Ygcy5kZWZhdWx0LlhNTCYmdGhpcy5ET00uYXBwZW5kQ2hpbGQoZS5ET00pfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5yZW1vdmVDaGlsZD1mdW5jdGlvbihlKXt2YXIgdD0tMTtpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7Zm9yKHZhciByPTA7cjx0aGlzLkRPTS5jaGlsZHJlbi5sZW5ndGg7cisrKWlmKHRoaXMuRE9NLmNoaWxkcmVuW3JdLnRhZ05hbWU9PT1lKXt0PXI7YnJlYWt9fWVsc2UgdD1lOy0xIT09dCYmdGhpcy5ET00ucmVtb3ZlQ2hpbGQodGhpcy5ET00uY2hpbGRyZW5bdF0pfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGVDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkRPTS5hdHRyaWJ1dGVzLmxlbmd0aH0scy5kZWZhdWx0LlhNTC5wcm90b3R5cGUubGlzdEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0PSEwLHI9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbixhPXRoaXMuRE9NLmF0dHJpYnV0ZXNbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obj1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIG89bi52YWx1ZTtlLnB1c2goby5ub2RlTmFtZSl9fWNhdGNoKGUpe3I9ITAsaT1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBpfX1yZXR1cm4gZX0scy5kZWZhdWx0LlhNTC5wcm90b3R5cGUuaGFzQXR0cmlidXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXt9LHI9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciBhLG89dGhpcy5ET00uYXR0cmlidXRlc1tTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShhPW8ubmV4dCgpKS5kb25lKTtyPSEwKXt2YXIgcz1hLnZhbHVlO3Rbcy5ub2RlTmFtZV09cy5ub2RlVmFsdWV9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3J8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX1yZXR1cm4hIXRbZV19LHMuZGVmYXVsdC5YTUwucHJvdG90eXBlLmdldE51bT1mdW5jdGlvbihlLHQpe3ZhciByPXt9LGk9ITAsbj0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBvLHM9dGhpcy5ET00uYXR0cmlidXRlc1tTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShvPXMubmV4dCgpKS5kb25lKTtpPSEwKXt2YXIgbD1vLnZhbHVlO3JbbC5ub2RlTmFtZV09bC5ub2RlVmFsdWV9fWNhdGNoKGUpe249ITAsYT1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PXMucmV0dXJufHxzLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyBhfX1yZXR1cm4gTnVtYmVyKHJbZV0pfHx0fHwwfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5nZXRTdHJpbmc9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fSxpPSEwLG49ITEsYT12b2lkIDA7dHJ5e2Zvcih2YXIgbyxzPXRoaXMuRE9NLmF0dHJpYnV0ZXNbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0obz1zLm5leHQoKSkuZG9uZSk7aT0hMCl7dmFyIGw9by52YWx1ZTtyW2wubm9kZU5hbWVdPWwubm9kZVZhbHVlfX1jYXRjaChlKXtuPSEwLGE9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgYX19cmV0dXJuIHJbZV0/U3RyaW5nKHJbZV0pOnR8fG51bGx9LHMuZGVmYXVsdC5YTUwucHJvdG90eXBlLnNldEF0dHJpYnV0ZT1mdW5jdGlvbihlLHQpe3RoaXMuRE9NLnNldEF0dHJpYnV0ZShlLHQpfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5nZXRDb250ZW50PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLkRPTS50ZXh0Q29udGVudC5yZXBsYWNlKC9cXHNcXHMrL2csXCIsXCIpfHxlfHxudWxsfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKGUpe3RoaXMuRE9NLmNoaWxkcmVuLmxlbmd0aHx8KHRoaXMuRE9NLnRleHRDb250ZW50PWUpfSxzLmRlZmF1bHQuWE1MLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKHRoaXMuRE9NKX07dmFyIGE9cy5kZWZhdWx0O3IuZGVmYXVsdD1hfSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDY2OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxzPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtmdW5jdGlvbiBuKCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgTWF0aC5oeXBvdClyZXR1cm4gTWF0aC5oeXBvdC5hcHBseShudWxsLGFyZ3VtZW50cyk7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1bXSxyPTAsaT0wO2k8ZTtpKyspe3ZhciBuPWFyZ3VtZW50c1tpXTtpZigobj0rbik9PT0xLzB8fG49PT0tMS8wKXJldHVybiAxLzA7cjwobj1NYXRoLmFicyhuKSkmJihyPW4pLHRbaV09bn0wPT09ciYmKHI9MSk7Zm9yKHZhciBhPTAsbz0wLHM9MDtzPGU7cysrKXt2YXIgbD10W3NdL3IsdT1sKmwtbyxoPWErdTtvPWgtYS11LGE9aH1yZXR1cm4gTWF0aC5zcXJ0KGEpKnJ9cy5kZWZhdWx0LnByb3RvdHlwZS5hYnM9TWF0aC5hYnMscy5kZWZhdWx0LnByb3RvdHlwZS5jZWlsPU1hdGguY2VpbCxzLmRlZmF1bHQucHJvdG90eXBlLmNvbnN0cmFpbj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY29uc3RyYWluXCIsYXJndW1lbnRzKSxNYXRoLm1heChNYXRoLm1pbihlLHIpLHQpfSxzLmRlZmF1bHQucHJvdG90eXBlLmRpc3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gcy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJkaXN0XCIsdCksND09PXQubGVuZ3RoP24odFsyXS10WzBdLHRbM10tdFsxXSk6Nj09PXQubGVuZ3RoP24odFszXS10WzBdLHRbNF0tdFsxXSx0WzVdLXRbMl0pOnZvaWQgMH0scy5kZWZhdWx0LnByb3RvdHlwZS5leHA9TWF0aC5leHAscy5kZWZhdWx0LnByb3RvdHlwZS5mbG9vcj1NYXRoLmZsb29yLHMuZGVmYXVsdC5wcm90b3R5cGUubGVycD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibGVycFwiLGFyZ3VtZW50cykscioodC1lKStlfSxzLmRlZmF1bHQucHJvdG90eXBlLmxvZz1NYXRoLmxvZyxzLmRlZmF1bHQucHJvdG90eXBlLm1hZz1mdW5jdGlvbihlLHQpe3JldHVybiBzLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcIm1hZ1wiLGFyZ3VtZW50cyksbihlLHQpfSxzLmRlZmF1bHQucHJvdG90eXBlLm1hcD1mdW5jdGlvbihlLHQscixpLG4sYSl7cy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJtYXBcIixhcmd1bWVudHMpO3ZhciBvPShlLXQpLyhyLXQpKihuLWkpK2k7cmV0dXJuIGE/aTxuP3RoaXMuY29uc3RyYWluKG8saSxuKTp0aGlzLmNvbnN0cmFpbihvLG4saSk6b30scy5kZWZhdWx0LnByb3RvdHlwZS5tYXg9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gdFswXWluc3RhbmNlb2YgQXJyYXk/TWF0aC5tYXguYXBwbHkobnVsbCx0WzBdKTpNYXRoLm1heC5hcHBseShudWxsLHQpfSxzLmRlZmF1bHQucHJvdG90eXBlLm1pbj1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiB0WzBdaW5zdGFuY2VvZiBBcnJheT9NYXRoLm1pbi5hcHBseShudWxsLHRbMF0pOk1hdGgubWluLmFwcGx5KG51bGwsdCl9LHMuZGVmYXVsdC5wcm90b3R5cGUubm9ybT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHMuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibm9ybVwiLGFyZ3VtZW50cyksdGhpcy5tYXAoZSx0LHIsMCwxKX0scy5kZWZhdWx0LnByb3RvdHlwZS5wb3c9TWF0aC5wb3cscy5kZWZhdWx0LnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbihlLHQpe3JldHVybiB0P051bWJlcihNYXRoLnJvdW5kKGUrXCJlXCIrdCkrXCJlLVwiK3QpOk1hdGgucm91bmQoZSl9LHMuZGVmYXVsdC5wcm90b3R5cGUuc3E9ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZX0scy5kZWZhdWx0LnByb3RvdHlwZS5zcXJ0PU1hdGguc3FydCxzLmRlZmF1bHQucHJvdG90eXBlLmZyYWN0PWZ1bmN0aW9uKGUpe3MuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiZnJhY3RcIixhcmd1bWVudHMpO3ZhciB0PTAscj1OdW1iZXIoZSk7aWYoaXNOYU4ocil8fE1hdGguYWJzKHIpPT09MS8wKXJldHVybiByO2lmKHI8MCYmKHI9LXIsdD0xKSwhU3RyaW5nKHIpLmluY2x1ZGVzKFwiLlwiKXx8U3RyaW5nKHIpLmluY2x1ZGVzKFwiZVwiKSlyZXR1cm4gcjwxP01hdGguYWJzKHQtcik6MDt2YXIgaT1TdHJpbmcocik7cmV0dXJuIGk9TnVtYmVyKFwiMFwiK2kuc2xpY2UoaS5pbmRleE9mKFwiLlwiKSkpLE1hdGguYWJzKHQtaSl9O3ZhciBhPXMuZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSw2NzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LnByb3RvdHlwZS5jcmVhdGVWZWN0b3I9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbi5kZWZhdWx0P25ldyBuLmRlZmF1bHQuVmVjdG9yKHRoaXMsYXJndW1lbnRzKTpuZXcgbi5kZWZhdWx0LlZlY3RvcihlLHQscil9O3ZhciBhPW4uZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSw2ODpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07ZnVuY3Rpb24gYihlKXtyZXR1cm4uNSooMS1NYXRoLmNvcyhlKk1hdGguUEkpKX12YXIgXyx4PTQwOTUsdz00LFM9LjU7bi5kZWZhdWx0LnByb3RvdHlwZS5ub2lzZT1mdW5jdGlvbihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxyPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowO2lmKG51bGw9PV8pe189bmV3IEFycmF5KDQwOTYpO2Zvcih2YXIgaT0wO2k8NDA5NjtpKyspX1tpXT1NYXRoLnJhbmRvbSgpfWU8MCYmKGU9LWUpLHQ8MCYmKHQ9LXQpLHI8MCYmKHI9LXIpO2Zvcih2YXIgbixhLG8scyxsLHU9TWF0aC5mbG9vcihlKSxoPU1hdGguZmxvb3IodCksYz1NYXRoLmZsb29yKHIpLGY9ZS11LGQ9dC1oLHA9ci1jLG09MCx2PS41LHk9MDt5PHc7eSsrKXt2YXIgZz11KyhoPDw0KSsoYzw8OCk7bj1iKGYpLGE9YihkKSxvPV9bZyZ4XSxvKz1uKihfW2crMSZ4XS1vKSxzPV9bZysxNiZ4XSxvKz1hKigocys9biooX1tnKzE2KzEmeF0tcykpLW8pLHM9X1soZys9MjU2KSZ4XSxzKz1uKihfW2crMSZ4XS1zKSxsPV9bZysxNiZ4XSxzKz1hKigobCs9biooX1tnKzE2KzEmeF0tbCkpLXMpLG0rPShvKz1iKHApKihzLW8pKSp2LHYqPVMsdTw8PTEsaDw8PTEsYzw8PTEsMTw9KGYqPTIpJiYodSsrLGYtLSksMTw9KGQqPTIpJiYoaCsrLGQtLSksMTw9KHAqPTIpJiYoYysrLHAtLSl9cmV0dXJuIG19LG4uZGVmYXVsdC5wcm90b3R5cGUubm9pc2VEZXRhaWw9ZnVuY3Rpb24oZSx0KXswPGUmJih3PWUpLDA8dCYmKFM9dCl9LG4uZGVmYXVsdC5wcm90b3R5cGUubm9pc2VTZWVkPWZ1bmN0aW9uKGUpe3ZhciB0LHIsaSxuPShpPTQyOTQ5NjcyOTYse3NldFNlZWQ6ZnVuY3Rpb24oZSl7cj10PShudWxsPT1lP01hdGgucmFuZG9tKCkqaTplKT4+PjB9LGdldFNlZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0scmFuZDpmdW5jdGlvbigpe3JldHVybihyPSgxNjY0NTI1KnIrMTAxMzkwNDIyMyklaSkvaX19KTtuLnNldFNlZWQoZSksXz1uZXcgQXJyYXkoNDA5Nik7Zm9yKHZhciBhPTA7YTw0MDk2O2ErKylfW2FdPW4ucmFuZCgpfTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sNjk6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLGw9KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LGE9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1sLmRlZmF1bHQuVmVjdG9yPWZ1bmN0aW9uKGUsdCxyKXt2YXIgaSxuLGE7YT1lIGluc3RhbmNlb2YgbC5kZWZhdWx0Pyh0aGlzLnA1PWUsaT10WzBdfHwwLG49dFsxXXx8MCx0WzJdfHwwKTooaT1lfHwwLG49dHx8MCxyfHwwKSx0aGlzLng9aSx0aGlzLnk9bix0aGlzLno9YX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cInA1LlZlY3RvciBPYmplY3QgOiBbXCIuY29uY2F0KHRoaXMueCxcIiwgXCIpLmNvbmNhdCh0aGlzLnksXCIsIFwiKS5jb25jYXQodGhpcy56LFwiXVwiKX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGwuZGVmYXVsdC5WZWN0b3I/KHRoaXMueD1lLnh8fDAsdGhpcy55PWUueXx8MCx0aGlzLno9ZS56fHwwKTplIGluc3RhbmNlb2YgQXJyYXk/KHRoaXMueD1lWzBdfHwwLHRoaXMueT1lWzFdfHwwLHRoaXMuej1lWzJdfHwwKToodGhpcy54PWV8fDAsdGhpcy55PXR8fDAsdGhpcy56PXJ8fDApLHRoaXN9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wNT9uZXcgbC5kZWZhdWx0LlZlY3Rvcih0aGlzLnA1LFt0aGlzLngsdGhpcy55LHRoaXMuel0pOm5ldyBsLmRlZmF1bHQuVmVjdG9yKHRoaXMueCx0aGlzLnksdGhpcy56KX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGwuZGVmYXVsdC5WZWN0b3I/KHRoaXMueCs9ZS54fHwwLHRoaXMueSs9ZS55fHwwLHRoaXMueis9ZS56fHwwKTplIGluc3RhbmNlb2YgQXJyYXk/KHRoaXMueCs9ZVswXXx8MCx0aGlzLnkrPWVbMV18fDAsdGhpcy56Kz1lWzJdfHwwKToodGhpcy54Kz1lfHwwLHRoaXMueSs9dHx8MCx0aGlzLnorPXJ8fDApLHRoaXN9O2Z1bmN0aW9uIHUoZSx0KXtyZXR1cm4gMCE9PWUmJih0aGlzLng9dGhpcy54JWUpLDAhPT10JiYodGhpcy55PXRoaXMueSV0KSx0aGlzfWZ1bmN0aW9uIGgoZSx0LHIpe3JldHVybiAwIT09ZSYmKHRoaXMueD10aGlzLnglZSksMCE9PXQmJih0aGlzLnk9dGhpcy55JXQpLDAhPT1yJiYodGhpcy56PXRoaXMueiVyKSx0aGlzfWwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLnJlbT1mdW5jdGlvbihlLHQscil7aWYoZSBpbnN0YW5jZW9mIGwuZGVmYXVsdC5WZWN0b3Ipe2lmKE51bWJlci5pc0Zpbml0ZShlLngpJiZOdW1iZXIuaXNGaW5pdGUoZS55KSYmTnVtYmVyLmlzRmluaXRlKGUueikpe3ZhciBpPXBhcnNlRmxvYXQoZS54KSxuPXBhcnNlRmxvYXQoZS55KSxhPXBhcnNlRmxvYXQoZS56KTtoLmNhbGwodGhpcyxpLG4sYSl9fWVsc2UgaWYoZSBpbnN0YW5jZW9mIEFycmF5KWUuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShlKX0pJiYoMj09PWUubGVuZ3RoJiZ1LmNhbGwodGhpcyxlWzBdLGVbMV0pLDM9PT1lLmxlbmd0aCYmaC5jYWxsKHRoaXMsZVswXSxlWzFdLGVbMl0pKTtlbHNlIGlmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihOdW1iZXIuaXNGaW5pdGUoZSkmJjAhPT1lKXJldHVybiB0aGlzLng9dGhpcy54JWUsdGhpcy55PXRoaXMueSVlLHRoaXMuej10aGlzLnolZSx0aGlzfWVsc2UgaWYoMj09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7by5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUpfSkmJjI9PT1vLmxlbmd0aCYmdS5jYWxsKHRoaXMsb1swXSxvWzFdKX1lbHNlIGlmKDM9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgcz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3MuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShlKX0pJiYzPT09cy5sZW5ndGgmJmguY2FsbCh0aGlzLHNbMF0sc1sxXSxzWzJdKX19LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihlLHQscil7cmV0dXJuIGUgaW5zdGFuY2VvZiBsLmRlZmF1bHQuVmVjdG9yPyh0aGlzLngtPWUueHx8MCx0aGlzLnktPWUueXx8MCx0aGlzLnotPWUuenx8MCk6ZSBpbnN0YW5jZW9mIEFycmF5Pyh0aGlzLngtPWVbMF18fDAsdGhpcy55LT1lWzFdfHwwLHRoaXMuei09ZVsyXXx8MCk6KHRoaXMueC09ZXx8MCx0aGlzLnktPXR8fDAsdGhpcy56LT1yfHwwKSx0aGlzfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5tdWx0PWZ1bmN0aW9uKGUsdCxyKXtpZihlIGluc3RhbmNlb2YgbC5kZWZhdWx0LlZlY3RvcilyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUueCkmJk51bWJlci5pc0Zpbml0ZShlLnkpJiZOdW1iZXIuaXNGaW5pdGUoZS56KSYmXCJudW1iZXJcIj09dHlwZW9mIGUueCYmXCJudW1iZXJcIj09dHlwZW9mIGUueSYmXCJudW1iZXJcIj09dHlwZW9mIGUuej8odGhpcy54Kj1lLngsdGhpcy55Kj1lLnksdGhpcy56Kj1lLnopOmNvbnNvbGUud2FybihcInA1LlZlY3Rvci5wcm90b3R5cGUubXVsdDpcIixcInggY29udGFpbnMgY29tcG9uZW50cyB0aGF0IGFyZSBlaXRoZXIgdW5kZWZpbmVkIG9yIG5vdCBmaW5pdGUgbnVtYmVyc1wiKSx0aGlzO2lmKGUgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4gZS5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUpfSkmJmUuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGV9KT8xPT09ZS5sZW5ndGg/KHRoaXMueCo9ZVswXSx0aGlzLnkqPWVbMF0sdGhpcy56Kj1lWzBdKToyPT09ZS5sZW5ndGg/KHRoaXMueCo9ZVswXSx0aGlzLnkqPWVbMV0pOjM9PT1lLmxlbmd0aCYmKHRoaXMueCo9ZVswXSx0aGlzLnkqPWVbMV0sdGhpcy56Kj1lWzJdKTpjb25zb2xlLndhcm4oXCJwNS5WZWN0b3IucHJvdG90eXBlLm11bHQ6XCIsXCJ4IGNvbnRhaW5zIGVsZW1lbnRzIHRoYXQgYXJlIGVpdGhlciB1bmRlZmluZWQgb3Igbm90IGZpbml0ZSBudW1iZXJzXCIpLHRoaXM7dmFyIGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gaS5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUpfSkmJmkuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGV9KT8oMT09PWFyZ3VtZW50cy5sZW5ndGgmJih0aGlzLngqPWUsdGhpcy55Kj1lLHRoaXMueio9ZSksMj09PWFyZ3VtZW50cy5sZW5ndGgmJih0aGlzLngqPWUsdGhpcy55Kj10KSwzPT09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMueCo9ZSx0aGlzLnkqPXQsdGhpcy56Kj1yKSk6Y29uc29sZS53YXJuKFwicDUuVmVjdG9yLnByb3RvdHlwZS5tdWx0OlwiLFwieCwgeSwgb3IgeiBhcmd1bWVudHMgYXJlIGVpdGhlciB1bmRlZmluZWQgb3Igbm90IGEgZmluaXRlIG51bWJlclwiKSx0aGlzfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oZSx0LHIpe2lmKGUgaW5zdGFuY2VvZiBsLmRlZmF1bHQuVmVjdG9yKXtpZihOdW1iZXIuaXNGaW5pdGUoZS54KSYmTnVtYmVyLmlzRmluaXRlKGUueSkmJk51bWJlci5pc0Zpbml0ZShlLnopJiZcIm51bWJlclwiPT10eXBlb2YgZS54JiZcIm51bWJlclwiPT10eXBlb2YgZS55JiZcIm51bWJlclwiPT10eXBlb2YgZS56KXtpZigwPT09ZS54fHwwPT09ZS55fHwwPT09ZS56KXJldHVybiBjb25zb2xlLndhcm4oXCJwNS5WZWN0b3IucHJvdG90eXBlLmRpdjpcIixcImRpdmlkZSBieSAwXCIpLHRoaXM7dGhpcy54Lz1lLngsdGhpcy55Lz1lLnksdGhpcy56Lz1lLnp9ZWxzZSBjb25zb2xlLndhcm4oXCJwNS5WZWN0b3IucHJvdG90eXBlLmRpdjpcIixcInggY29udGFpbnMgY29tcG9uZW50cyB0aGF0IGFyZSBlaXRoZXIgdW5kZWZpbmVkIG9yIG5vdCBmaW5pdGUgbnVtYmVyc1wiKTtyZXR1cm4gdGhpc31pZihlIGluc3RhbmNlb2YgQXJyYXkpe2lmKGUuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShlKX0pJiZlLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBlfSkpe2lmKGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV9KSlyZXR1cm4gY29uc29sZS53YXJuKFwicDUuVmVjdG9yLnByb3RvdHlwZS5kaXY6XCIsXCJkaXZpZGUgYnkgMFwiKSx0aGlzOzE9PT1lLmxlbmd0aD8odGhpcy54Lz1lWzBdLHRoaXMueS89ZVswXSx0aGlzLnovPWVbMF0pOjI9PT1lLmxlbmd0aD8odGhpcy54Lz1lWzBdLHRoaXMueS89ZVsxXSk6Mz09PWUubGVuZ3RoJiYodGhpcy54Lz1lWzBdLHRoaXMueS89ZVsxXSx0aGlzLnovPWVbMl0pfWVsc2UgY29uc29sZS53YXJuKFwicDUuVmVjdG9yLnByb3RvdHlwZS5kaXY6XCIsXCJ4IGNvbnRhaW5zIGNvbXBvbmVudHMgdGhhdCBhcmUgZWl0aGVyIHVuZGVmaW5lZCBvciBub3QgZmluaXRlIG51bWJlcnNcIik7cmV0dXJuIHRoaXN9dmFyIGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZihpLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoZSl9KSYmaS5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZX0pKXtpZihpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lfSkpcmV0dXJuIGNvbnNvbGUud2FybihcInA1LlZlY3Rvci5wcm90b3R5cGUuZGl2OlwiLFwiZGl2aWRlIGJ5IDBcIiksdGhpczsxPT09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMueC89ZSx0aGlzLnkvPWUsdGhpcy56Lz1lKSwyPT09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMueC89ZSx0aGlzLnkvPXQpLDM9PT1hcmd1bWVudHMubGVuZ3RoJiYodGhpcy54Lz1lLHRoaXMueS89dCx0aGlzLnovPXIpfWVsc2UgY29uc29sZS53YXJuKFwicDUuVmVjdG9yLnByb3RvdHlwZS5kaXY6XCIsXCJ4LCB5LCBvciB6IGFyZ3VtZW50cyBhcmUgZWl0aGVyIHVuZGVmaW5lZCBvciBub3QgYSBmaW5pdGUgbnVtYmVyXCIpO3JldHVybiB0aGlzfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5tYWc9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMubWFnU3EoKSl9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLm1hZ1NxPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy54LHQ9dGhpcy55LHI9dGhpcy56O3JldHVybiBlKmUrdCp0K3Iqcn0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUuZG90PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGwuZGVmYXVsdC5WZWN0b3I/dGhpcy5kb3QoZS54LGUueSxlLnopOnRoaXMueCooZXx8MCkrdGhpcy55Kih0fHwwKSt0aGlzLnoqKHJ8fDApfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5jcm9zcz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnkqZS56LXRoaXMueiplLnkscj10aGlzLnoqZS54LXRoaXMueCplLnosaT10aGlzLngqZS55LXRoaXMueSplLng7cmV0dXJuIHRoaXMucDU/bmV3IGwuZGVmYXVsdC5WZWN0b3IodGhpcy5wNSxbdCxyLGldKTpuZXcgbC5kZWZhdWx0LlZlY3Rvcih0LHIsaSl9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLmRpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29weSgpLnN1Yih0aGlzKS5tYWcoKX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tYWcoKTtyZXR1cm4gMCE9PWUmJnRoaXMubXVsdCgxL2UpLHRoaXN9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLmxpbWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubWFnU3EoKTtyZXR1cm4gZSplPHQmJnRoaXMuZGl2KE1hdGguc3FydCh0KSkubXVsdChlKSx0aGlzfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5zZXRNYWc9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdChlKX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUuaGVhZGluZz1mdW5jdGlvbigpe3ZhciBlPU1hdGguYXRhbjIodGhpcy55LHRoaXMueCk7cmV0dXJuIHRoaXMucDU/dGhpcy5wNS5fZnJvbVJhZGlhbnMoZSk6ZX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUuc2V0SGVhZGluZz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm1hZygpO3JldHVybiB0aGlzLng9dCpNYXRoLmNvcyhlKSx0aGlzLnk9dCpNYXRoLnNpbihlKSx0aGlzfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5yb3RhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5oZWFkaW5nKCkrZTt0aGlzLnA1JiYodD10aGlzLnA1Ll90b1JhZGlhbnModCkpO3ZhciByPXRoaXMubWFnKCk7cmV0dXJuIHRoaXMueD1NYXRoLmNvcyh0KSpyLHRoaXMueT1NYXRoLnNpbih0KSpyLHRoaXN9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLmFuZ2xlQmV0d2Vlbj1mdW5jdGlvbihlKXt2YXIgdCxyPXRoaXMuZG90KGUpLyh0aGlzLm1hZygpKmUubWFnKCkpO3JldHVybiB0PU1hdGguYWNvcyhNYXRoLm1pbigxLE1hdGgubWF4KC0xLHIpKSksdCo9TWF0aC5zaWduKHRoaXMuY3Jvc3MoZSkuenx8MSksdGhpcy5wNSYmKHQ9dGhpcy5wNS5fZnJvbVJhZGlhbnModCkpLHR9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLmxlcnA9ZnVuY3Rpb24oZSx0LHIsaSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBsLmRlZmF1bHQuVmVjdG9yP3RoaXMubGVycChlLngsZS55LGUueix0KToodGhpcy54Kz0oZS10aGlzLngpKml8fDAsdGhpcy55Kz0odC10aGlzLnkpKml8fDAsdGhpcy56Kz0oci10aGlzLnopKml8fDAsdGhpcyl9LGwuZGVmYXVsdC5WZWN0b3IucHJvdG90eXBlLnJlZmxlY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9ybWFsaXplKCksdGhpcy5zdWIoZS5tdWx0KDIqdGhpcy5kb3QoZSkpKX0sbC5kZWZhdWx0LlZlY3Rvci5wcm90b3R5cGUuYXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy54fHwwLHRoaXMueXx8MCx0aGlzLnp8fDBdfSxsLmRlZmF1bHQuVmVjdG9yLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpLG4sYTtyZXR1cm4gYT1lIGluc3RhbmNlb2YgbC5kZWZhdWx0LlZlY3Rvcj8oaT1lLnh8fDAsbj1lLnl8fDAsZS56fHwwKTplIGluc3RhbmNlb2YgQXJyYXk/KGk9ZVswXXx8MCxuPWVbMV18fDAsZVsyXXx8MCk6KGk9ZXx8MCxuPXR8fDAscnx8MCksdGhpcy54PT09aSYmdGhpcy55PT09biYmdGhpcy56PT09YX0sbC5kZWZhdWx0LlZlY3Rvci5mcm9tQW5nbGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MSksbmV3IGwuZGVmYXVsdC5WZWN0b3IodCpNYXRoLmNvcyhlKSx0Kk1hdGguc2luKGUpLDApfSxsLmRlZmF1bHQuVmVjdG9yLmZyb21BbmdsZXM9ZnVuY3Rpb24oZSx0LHIpe3ZvaWQgMD09PXImJihyPTEpO3ZhciBpPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCksYT1NYXRoLmNvcyhlKSxvPU1hdGguc2luKGUpO3JldHVybiBuZXcgbC5kZWZhdWx0LlZlY3RvcihyKm8qbiwtciphLHIqbyppKX0sbC5kZWZhdWx0LlZlY3Rvci5yYW5kb20yRD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb21BbmdsZShNYXRoLnJhbmRvbSgpKmEuVFdPX1BJKX0sbC5kZWZhdWx0LlZlY3Rvci5yYW5kb20zRD1mdW5jdGlvbigpe3ZhciBlPU1hdGgucmFuZG9tKCkqYS5UV09fUEksdD0yKk1hdGgucmFuZG9tKCktMSxyPU1hdGguc3FydCgxLXQqdCksaT1yKk1hdGguY29zKGUpLG49cipNYXRoLnNpbihlKTtyZXR1cm4gbmV3IGwuZGVmYXVsdC5WZWN0b3IoaSxuLHQpfSxsLmRlZmF1bHQuVmVjdG9yLmFkZD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHI/ci5zZXQoZSk6KHI9ZS5jb3B5KCksMz09PWFyZ3VtZW50cy5sZW5ndGgmJmwuZGVmYXVsdC5fZnJpZW5kbHlFcnJvcihcIlRoZSB0YXJnZXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCwgaXQgc2hvdWxkIGJlIG9mIHR5cGUgcDUuVmVjdG9yXCIsXCJwNS5WZWN0b3IuYWRkXCIpKSxyLmFkZCh0KSxyfSxsLmRlZmF1bHQuVmVjdG9yLnJlbT1mdW5jdGlvbihlLHQpe2lmKGUgaW5zdGFuY2VvZiBsLmRlZmF1bHQuVmVjdG9yJiZ0IGluc3RhbmNlb2YgbC5kZWZhdWx0LlZlY3Rvcil7dmFyIHI9ZS5jb3B5KCk7cmV0dXJuIHIucmVtKHQpLHJ9fSxsLmRlZmF1bHQuVmVjdG9yLnN1Yj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHI/ci5zZXQoZSk6KHI9ZS5jb3B5KCksMz09PWFyZ3VtZW50cy5sZW5ndGgmJmwuZGVmYXVsdC5fZnJpZW5kbHlFcnJvcihcIlRoZSB0YXJnZXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCwgaXQgc2hvdWxkIGJlIG9mIHR5cGUgcDUuVmVjdG9yXCIsXCJwNS5WZWN0b3Iuc3ViXCIpKSxyLnN1Yih0KSxyfSxsLmRlZmF1bHQuVmVjdG9yLm11bHQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiByP3Iuc2V0KGUpOihyPWUuY29weSgpLDM9PT1hcmd1bWVudHMubGVuZ3RoJiZsLmRlZmF1bHQuX2ZyaWVuZGx5RXJyb3IoXCJUaGUgdGFyZ2V0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQsIGl0IHNob3VsZCBiZSBvZiB0eXBlIHA1LlZlY3RvclwiLFwicDUuVmVjdG9yLm11bHRcIikpLHIubXVsdCh0KSxyfSxsLmRlZmF1bHQuVmVjdG9yLmRpdj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHI/ci5zZXQoZSk6KHI9ZS5jb3B5KCksMz09PWFyZ3VtZW50cy5sZW5ndGgmJmwuZGVmYXVsdC5fZnJpZW5kbHlFcnJvcihcIlRoZSB0YXJnZXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCwgaXQgc2hvdWxkIGJlIG9mIHR5cGUgcDUuVmVjdG9yXCIsXCJwNS5WZWN0b3IuZGl2XCIpKSxyLmRpdih0KSxyfSxsLmRlZmF1bHQuVmVjdG9yLmRvdD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmRvdCh0KX0sbC5kZWZhdWx0LlZlY3Rvci5jcm9zcz1mdW5jdGlvbihlLHQpe3JldHVybiBlLmNyb3NzKHQpfSxsLmRlZmF1bHQuVmVjdG9yLmRpc3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5kaXN0KHQpfSxsLmRlZmF1bHQuVmVjdG9yLmxlcnA9ZnVuY3Rpb24oZSx0LHIsaSl7cmV0dXJuIGk/aS5zZXQoZSk6KGk9ZS5jb3B5KCksND09PWFyZ3VtZW50cy5sZW5ndGgmJmwuZGVmYXVsdC5fZnJpZW5kbHlFcnJvcihcIlRoZSB0YXJnZXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCwgaXQgc2hvdWxkIGJlIG9mIHR5cGUgcDUuVmVjdG9yXCIsXCJwNS5WZWN0b3IubGVycFwiKSksaS5sZXJwKHQsciksaX0sbC5kZWZhdWx0LlZlY3Rvci5tYWc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS54LHI9ZS55LGk9ZS56LG49dCp0K3IqcitpKmk7cmV0dXJuIE1hdGguc3FydChuKX07dmFyIG49bC5kZWZhdWx0LlZlY3RvcjtyLmRlZmF1bHQ9bn0se1wiLi4vY29yZS9jb25zdGFudHNcIjoyNixcIi4uL2NvcmUvbWFpblwiOjM2fV0sNzA6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O3ZhciBhPVwiX2xjZ19yYW5kb21fc3RhdGVcIixvPTQyOTQ5NjcyOTYscz0wO24uZGVmYXVsdC5wcm90b3R5cGUuX2xjZz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc1tlXT0oMTY2NDUyNSp0aGlzW2VdKzEwMTM5MDQyMjMpJW8sdGhpc1tlXS9vfSxuLmRlZmF1bHQucHJvdG90eXBlLl9sY2dTZXRTZWVkPWZ1bmN0aW9uKGUsdCl7dGhpc1tlXT0obnVsbD09dD9NYXRoLnJhbmRvbSgpKm86dCk+Pj4wfSxuLmRlZmF1bHQucHJvdG90eXBlLnJhbmRvbVNlZWQ9ZnVuY3Rpb24oZSl7dGhpcy5fbGNnU2V0U2VlZChhLGUpLHRoaXMuX2dhdXNzaWFuX3ByZXZpb3VzPSExfSxuLmRlZmF1bHQucHJvdG90eXBlLnJhbmRvbT1mdW5jdGlvbihlLHQpe3ZhciByO2lmKG4uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwicmFuZG9tXCIsYXJndW1lbnRzKSxyPW51bGwhPXRoaXNbYV0/dGhpcy5fbGNnKGEpOk1hdGgucmFuZG9tKCksdm9pZCAwPT09ZSlyZXR1cm4gcjtpZih2b2lkIDA9PT10KXJldHVybiBlIGluc3RhbmNlb2YgQXJyYXk/ZVtNYXRoLmZsb29yKHIqZS5sZW5ndGgpXTpyKmU7aWYodDxlKXt2YXIgaT1lO2U9dCx0PWl9cmV0dXJuIHIqKHQtZSkrZX0sbi5kZWZhdWx0LnByb3RvdHlwZS5yYW5kb21HYXVzc2lhbj1mdW5jdGlvbihlKXt2YXIgdCxyLGksbixhPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO2lmKHRoaXMuX2dhdXNzaWFuX3ByZXZpb3VzKXQ9cyx0aGlzLl9nYXVzc2lhbl9wcmV2aW91cz0hMTtlbHNle2Zvcig7MTw9KG49KHI9dGhpcy5yYW5kb20oMiktMSkqcisoaT10aGlzLnJhbmRvbSgyKS0xKSppKTspO3Q9cioobj1NYXRoLnNxcnQoLTIqTWF0aC5sb2cobikvbikpLHM9aSpuLHRoaXMuX2dhdXNzaWFuX3ByZXZpb3VzPSEwfXJldHVybiB0KmErKGV8fDApfTt2YXIgbD1uLmRlZmF1bHQ7ci5kZWZhdWx0PWx9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sNzE6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LGE9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1uLmRlZmF1bHQucHJvdG90eXBlLl9hbmdsZU1vZGU9YS5SQURJQU5TLG4uZGVmYXVsdC5wcm90b3R5cGUuYWNvcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fZnJvbVJhZGlhbnMoTWF0aC5hY29zKGUpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5hc2luPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9mcm9tUmFkaWFucyhNYXRoLmFzaW4oZSkpfSxuLmRlZmF1bHQucHJvdG90eXBlLmF0YW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2Zyb21SYWRpYW5zKE1hdGguYXRhbihlKSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuYXRhbjI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZnJvbVJhZGlhbnMoTWF0aC5hdGFuMihlLHQpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5jb3M9ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguY29zKHRoaXMuX3RvUmFkaWFucyhlKSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuc2luPWZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnNpbih0aGlzLl90b1JhZGlhbnMoZSkpfSxuLmRlZmF1bHQucHJvdG90eXBlLnRhbj1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC50YW4odGhpcy5fdG9SYWRpYW5zKGUpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5kZWdyZWVzPWZ1bmN0aW9uKGUpe3JldHVybiBlKmEuUkFEX1RPX0RFR30sbi5kZWZhdWx0LnByb3RvdHlwZS5yYWRpYW5zPWZ1bmN0aW9uKGUpe3JldHVybiBlKmEuREVHX1RPX1JBRH0sbi5kZWZhdWx0LnByb3RvdHlwZS5hbmdsZU1vZGU9ZnVuY3Rpb24oZSl7ZSE9PWEuREVHUkVFUyYmZSE9PWEuUkFESUFOU3x8KHRoaXMuX2FuZ2xlTW9kZT1lKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fdG9SYWRpYW5zPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9hbmdsZU1vZGU9PT1hLkRFR1JFRVM/ZSphLkRFR19UT19SQUQ6ZX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fdG9EZWdyZWVzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9hbmdsZU1vZGU9PT1hLlJBRElBTlM/ZSphLlJBRF9UT19ERUc6ZX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fZnJvbVJhZGlhbnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2FuZ2xlTW9kZT09PWEuREVHUkVFUz9lKmEuUkFEX1RPX0RFRzplfTt2YXIgbD1uLmRlZmF1bHQ7ci5kZWZhdWx0PWx9LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuLi9jb3JlL21haW5cIjozNn1dLDcyOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtuLmRlZmF1bHQucHJvdG90eXBlLnRleHRBbGlnbj1mdW5jdGlvbihlLHQpe3ZhciByO3JldHVybiBuLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRleHRBbGlnblwiLGFyZ3VtZW50cyksKHI9dGhpcy5fcmVuZGVyZXIpLnRleHRBbGlnbi5hcHBseShyLGFyZ3VtZW50cyl9LG4uZGVmYXVsdC5wcm90b3R5cGUudGV4dExlYWRpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIG4uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwidGV4dExlYWRpbmdcIixhcmd1bWVudHMpLCh0PXRoaXMuX3JlbmRlcmVyKS50ZXh0TGVhZGluZy5hcHBseSh0LGFyZ3VtZW50cyl9LG4uZGVmYXVsdC5wcm90b3R5cGUudGV4dFNpemU9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIG4uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwidGV4dFNpemVcIixhcmd1bWVudHMpLCh0PXRoaXMuX3JlbmRlcmVyKS50ZXh0U2l6ZS5hcHBseSh0LGFyZ3VtZW50cyl9LG4uZGVmYXVsdC5wcm90b3R5cGUudGV4dFN0eWxlPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBuLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRleHRTdHlsZVwiLGFyZ3VtZW50cyksKHQ9dGhpcy5fcmVuZGVyZXIpLnRleHRTdHlsZS5hcHBseSh0LGFyZ3VtZW50cyl9LG4uZGVmYXVsdC5wcm90b3R5cGUudGV4dFdpZHRoPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheSh0KSxpPTA7aTx0O2krKylyW2ldPWFyZ3VtZW50c1tpXTtyZXR1cm4gclswXSs9XCJcIixuLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRleHRXaWR0aFwiLHIpLDA9PT1yWzBdLmxlbmd0aD8wOihlPXRoaXMuX3JlbmRlcmVyKS50ZXh0V2lkdGguYXBwbHkoZSxyKX0sbi5kZWZhdWx0LnByb3RvdHlwZS50ZXh0QXNjZW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIG4uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwidGV4dEFzY2VudFwiLHQpLHRoaXMuX3JlbmRlcmVyLnRleHRBc2NlbnQoKX0sbi5kZWZhdWx0LnByb3RvdHlwZS50ZXh0RGVzY2VudD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBuLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRleHREZXNjZW50XCIsdCksdGhpcy5fcmVuZGVyZXIudGV4dERlc2NlbnQoKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5fdXBkYXRlVGV4dE1ldHJpY3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuX3VwZGF0ZVRleHRNZXRyaWNzKCl9O3ZhciBhPW4uZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSw3MzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksZj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX0sbj1sKGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSksYT1sKGUoXCJvcGVudHlwZS5qc1wiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBsKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yZXR1cm4gci5kZWZhdWx0PWUsdCYmdC5zZXQoZSxyKSxyfWUoXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy92YWxpZGF0ZV9wYXJhbXNcIiksZShcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2ZpbGVfZXJyb3JzXCIpLGUoXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9mZXNfY29yZVwiKSxmLmRlZmF1bHQucHJvdG90eXBlLmxvYWRGb250PWZ1bmN0aW9uKHMsbCx1KXtmLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImxvYWRGb250XCIsYXJndW1lbnRzKTt2YXIgaD1uZXcgZi5kZWZhdWx0LkZvbnQodGhpcyksYz10aGlzO3JldHVybiBhLmxvYWQocyxmdW5jdGlvbihlLHQpe2lmKGUpcmV0dXJuIGYuZGVmYXVsdC5fZnJpZW5kbHlGaWxlTG9hZEVycm9yKDQscyksdm9pZCAwIT09dT91KGUpOnZvaWQgY29uc29sZS5lcnJvcihlLHMpO2guZm9udD10LHZvaWQgMCE9PWwmJmwoaCksYy5fZGVjcmVtZW50UHJlbG9hZCgpO3ZhciByLGksbj1zLnNwbGl0KFwiXFxcXFwiKS5wb3AoKS5zcGxpdChcIi9cIikucG9wKCksYT1uLmxhc3RJbmRleE9mKFwiLlwiKSxvPWE8MT9udWxsOm4uc3Vic3RyKGErMSk7W1widHRmXCIsXCJvdGZcIixcIndvZmZcIixcIndvZmYyXCJdLmluY2x1ZGVzKG8pJiYocj1uLnN1YnN0cigwLGEpLChpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcXG5AZm9udC1mYWNlIHtcXG5mb250LWZhbWlseTogXCIuY29uY2F0KHIsXCI7XFxuc3JjOiB1cmwoXCIpLmNvbmNhdChzLFwiKTtcXG59XFxuXCIpKSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKSl9KSxofSxmLmRlZmF1bHQucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZSx0LHIsaSxuKXt2YXIgYTtyZXR1cm4gZi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJ0ZXh0XCIsYXJndW1lbnRzKSx0aGlzLl9yZW5kZXJlci5fZG9GaWxsfHx0aGlzLl9yZW5kZXJlci5fZG9TdHJva2U/KGE9dGhpcy5fcmVuZGVyZXIpLnRleHQuYXBwbHkoYSxhcmd1bWVudHMpOnRoaXN9LGYuZGVmYXVsdC5wcm90b3R5cGUudGV4dEZvbnQ9ZnVuY3Rpb24oZSx0KXtpZihmLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRleHRGb250XCIsYXJndW1lbnRzKSxhcmd1bWVudHMubGVuZ3RoKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJudWxsIGZvbnQgcGFzc2VkIHRvIHRleHRGb250XCIpO3JldHVybiB0aGlzLl9yZW5kZXJlci5fc2V0UHJvcGVydHkoXCJfdGV4dEZvbnRcIixlKSx0JiYodGhpcy5fcmVuZGVyZXIuX3NldFByb3BlcnR5KFwiX3RleHRTaXplXCIsdCksdGhpcy5fcmVuZGVyZXIuX3NldFByb3BlcnR5KFwiX3RleHRMZWFkaW5nXCIsdCpuLl9ERUZBVUxUX0xFQURNVUxUKSksdGhpcy5fcmVuZGVyZXIuX2FwcGx5VGV4dFByb3BlcnRpZXMoKX1yZXR1cm4gdGhpcy5fcmVuZGVyZXIuX3RleHRGb250fTt2YXIgdT1mLmRlZmF1bHQ7ci5kZWZhdWx0PXV9LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9mZXNfY29yZVwiOjI4LFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmlsZV9lcnJvcnNcIjoyOSxcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL3ZhbGlkYXRlX3BhcmFtc1wiOjMxLFwiLi4vY29yZS9tYWluXCI6MzYsXCJvcGVudHlwZS5qc1wiOjEyfV0sNzQ6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LHg9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09ZChlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1vKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gbygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIG89ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBkKGUpe3JldHVybihkPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1mdW5jdGlvbiBwKGUsdCl7Zm9yKHZhciByPWZ1bmN0aW9uKGUsdCl7aWYoXCJvYmplY3RcIiE9PWQoZSkpZT10O2Vsc2UgZm9yKHZhciByIGluIHQpdm9pZCAwPT09ZVtyXSYmKGVbcl09dFtyXSk7cmV0dXJuIGV9KHQse3NhbXBsZUZhY3RvcjouMSxzaW1wbGlmeVRocmVzaG9sZDowfSksaT1sKGUsMCwxKSxuPWkvKGkqci5zYW1wbGVGYWN0b3IpLGE9W10sbz0wO288aTtvKz1uKWEucHVzaChsKGUsbykpO3JldHVybiByLnNpbXBsaWZ5VGhyZXNob2xkJiZmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAscj0wLGk9ZS5sZW5ndGgtMTszPGUubGVuZ3RoJiYwPD1pOy0taSlmKHMoZSxpLTEpLHMoZSxpKSxzKGUsaSsxKSx0KSYmKGUuc3BsaWNlKGklZS5sZW5ndGgsMSkscisrKX0oYSxyLnNpbXBsaWZ5VGhyZXNob2xkKSxhfWZ1bmN0aW9uIG0oZSl7Zm9yKHZhciB0LHI9W10saT0wO2k8ZS5sZW5ndGg7aSsrKVwiTVwiPT09ZVtpXS50eXBlJiYodCYmci5wdXNoKHQpLHQ9W10pLHQucHVzaChhKGVbaV0pKTtyZXR1cm4gci5wdXNoKHQpLHJ9ZnVuY3Rpb24gYShlKXt2YXIgdD1bZS50eXBlXTtyZXR1cm5cIk1cIj09PWUudHlwZXx8XCJMXCI9PT1lLnR5cGU/dC5wdXNoKGUueCxlLnkpOlwiQ1wiPT09ZS50eXBlP3QucHVzaChlLngxLGUueTEsZS54MixlLnkyLGUueCxlLnkpOlwiUVwiPT09ZS50eXBlJiZ0LnB1c2goZS54MSxlLnkxLGUueCxlLnkpLHR9ZnVuY3Rpb24gcyhlLHQpe3ZhciByPWUubGVuZ3RoO3JldHVybiBlW3Q8MD90JXIrcjp0JXJdfWZ1bmN0aW9uIGYoZSx0LHIsaSl7aWYoIWkpcmV0dXJuIDA9PShuPWUsbz1yLCgoYT10KVswXS1uWzBdKSoob1sxXS1uWzFdKS0ob1swXS1uWzBdKSooYVsxXS1uWzFdKSk7dmFyIG4sYSxvO3ZvaWQgMD09PWYudG1wUG9pbnQxJiYoZi50bXBQb2ludDE9W10sZi50bXBQb2ludDI9W10pO3ZhciBzPWYudG1wUG9pbnQxLGw9Zi50bXBQb2ludDI7cy54PXQueC1lLngscy55PXQueS1lLnksbC54PXIueC10LngsbC55PXIueS10Lnk7dmFyIHU9cy54KmwueCtzLnkqbC55LGg9TWF0aC5zcXJ0KHMueCpzLngrcy55KnMueSksYz1NYXRoLnNxcnQobC54KmwueCtsLnkqbC55KTtyZXR1cm4gTWF0aC5hY29zKHUvKGgqYykpPGl9ZnVuY3Rpb24gYyhlLHQscixpLG4sYSxvLHMsbCl7dmFyIHU9MS1sLGg9TWF0aC5wb3codSwzKSxjPU1hdGgucG93KHUsMiksZj1sKmwsZD1mKmwscD1oKmUrMypjKmwqciszKnUqbCpsKm4rZCpvLG09aCp0KzMqYypsKmkrMyp1KmwqbCphK2Qqcyx2PWUrMipsKihyLWUpK2YqKG4tMipyK2UpLHk9dCsyKmwqKGktdCkrZiooYS0yKmkrdCksZz1yKzIqbCoobi1yKStmKihvLTIqbityKSxiPWkrMipsKihhLWkpK2YqKHMtMiphK2kpLF89dSplK2wqcix4PXUqdCtsKmksdz11Km4rbCpvLFM9dSphK2wqcyxNPTkwLTE4MCpNYXRoLmF0YW4yKHYtZyx5LWIpL01hdGguUEk7cmV0dXJuKGc8dnx8eTxiKSYmKE0rPTE4MCkse3g6cCx5Om0sbTp7eDp2LHk6eX0sbjp7eDpnLHk6Yn0sc3RhcnQ6e3g6Xyx5Onh9LGVuZDp7eDp3LHk6U30sYWxwaGE6TX19ZnVuY3Rpb24gdihlLHQscixpLG4sYSxvLHMsbCl7cmV0dXJuIG51bGw9PWw/eShlLHQscixpLG4sYSxvLHMpOmMoZSx0LHIsaSxuLGEsbyxzLGZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyxsKXtpZihsPDB8fHkoZSx0LHIsaSxuLGEsbyxzKTxsKXJldHVybjt2YXIgdSxoPS41LGM9MS1oO3U9eShlLHQscixpLG4sYSxvLHMsYyk7Zm9yKDsuMDE8TWF0aC5hYnModS1sKTspdT15KGUsdCxyLGksbixhLG8scyxjKz0odTxsPzE6LTEpKihoLz0yKSk7cmV0dXJuIGN9KGUsdCxyLGksbixhLG8scyxsKSl9ZnVuY3Rpb24gbChlLHQscil7Zm9yKHZhciBpLG4sYSxvLHMsbD0wLHU9MCxoPShlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7dmFyIGksbjtpZighZSlyZXR1cm5bXCJDXCIsdC54LHQueSx0LngsdC55LHQueCx0LnldO3N3aXRjaChlWzBdaW57VDoxLFE6MX18fCh0LnF4PXQucXk9bnVsbCksZVswXSl7Y2FzZVwiTVwiOnQuWD1lWzFdLHQuWT1lWzJdO2JyZWFrO2Nhc2VcIkFcIjplPVtcIkNcIl0uY29uY2F0KGZ1bmN0aW9uIGUodCxyLGksbixhLG8scyxsLHUsaCl7dmFyIGM9TWF0aC5QSTt2YXIgZj0xMjAqYy8xODA7dmFyIGQ7dmFyIHA7dmFyIG07dmFyIHY7dmFyIHk9Yy8xODAqKCthfHwwKTt2YXIgZz1bXTt2YXIgYjt2YXIgXz1mdW5jdGlvbihlLHQscil7dmFyIGk9ZSpNYXRoLmNvcyhyKS10Kk1hdGguc2luKHIpLG49ZSpNYXRoLnNpbihyKSt0Kk1hdGguY29zKHIpO3JldHVybnt4OmkseTpufX07aWYoaClkPWhbMF0scD1oWzFdLG09aFsyXSx2PWhbM107ZWxzZXtiPV8odCxyLC15KSx0PWIueCxyPWIueSxiPV8obCx1LC15KSxsPWIueCx1PWIueTt2YXIgeD0odC1sKS8yLHc9KHItdSkvMixTPXgqeC8oaSppKSt3KncvKG4qbik7MTxTJiYoUz1NYXRoLnNxcnQoUyksaSo9UyxuKj1TKTt2YXIgTT1pKmksVD1uKm4sRT0obz09PXM/LTE6MSkqTWF0aC5zcXJ0KE1hdGguYWJzKChNKlQtTSp3KnctVCp4KngpLyhNKncqdytUKngqeCkpKTttPUUqaSp3L24rKHQrbCkvMix2PUUqLW4qeC9pKyhyK3UpLzIsZD1NYXRoLmFzaW4oKChyLXYpL24pLnRvRml4ZWQoOSkpLHA9TWF0aC5hc2luKCgodS12KS9uKS50b0ZpeGVkKDkpKSwoZD10PG0/Yy1kOmQpPDAmJihkPTIqYytkKSwocD1sPG0/Yy1wOnApPDAmJihwPTIqYytwKSxzJiZwPGQmJihkLT0yKmMpLCFzJiZkPHAmJihwLT0yKmMpfXZhciBDPXAtZDtpZihNYXRoLmFicyhDKT5mKXt2YXIgTD1wLE89bCxQPXU7cD1kK2YqKHMmJmQ8cD8xOi0xKSxsPW0raSpNYXRoLmNvcyhwKSx1PXYrbipNYXRoLnNpbihwKSxnPWUobCx1LGksbixhLDAscyxPLFAsW3AsTCxtLHZdKX1DPXAtZDt2YXIgUj1NYXRoLmNvcyhkKSxEPU1hdGguc2luKGQpLGs9TWF0aC5jb3MocCksQT1NYXRoLnNpbihwKSxJPU1hdGgudGFuKEMvNCksVT00LzMqaSpJLE49NC8zKm4qSSxGPVt0LHJdLEI9W3QrVSpELHItTipSXSxHPVtsK1UqQSx1LU4qa10saj1bbCx1XTtCWzBdPTIqRlswXS1CWzBdO0JbMV09MipGWzFdLUJbMV07e2lmKGgpcmV0dXJuW0IsRyxqXS5jb25jYXQoZyk7Zz1bQixHLGpdLmNvbmNhdChnKS5qb2luKCkuc3BsaXQoXCIsXCIpO2Zvcih2YXIgVj1bXSx6PTAsSD1nLmxlbmd0aDt6PEg7eisrKVZbel09eiUyP18oZ1t6LTFdLGdbel0seSkueTpfKGdbel0sZ1t6KzFdLHkpLng7cmV0dXJuIFZ9fS5hcHBseSgwLFt0LngsdC55XS5jb25jYXQoZS5zbGljZSgxKSkpKTticmVhaztjYXNlXCJTXCI6bj1cIkNcIj09PXJ8fFwiU1wiPT09cj8oaT0yKnQueC10LmJ4LDIqdC55LXQuYnkpOihpPXQueCx0LnkpLGU9W1wiQ1wiLGksbl0uY29uY2F0KGUuc2xpY2UoMSkpO2JyZWFrO2Nhc2VcIlRcIjpcIlFcIj09PXJ8fFwiVFwiPT09cj8odC5xeD0yKnQueC10LnF4LHQucXk9Mip0LnktdC5xeSk6KHQucXg9dC54LHQucXk9dC55KSxlPVtcIkNcIl0uY29uY2F0KFModC54LHQueSx0LnF4LHQucXksZVsxXSxlWzJdKSk7YnJlYWs7Y2FzZVwiUVwiOnQucXg9ZVsxXSx0LnF5PWVbMl0sZT1bXCJDXCJdLmNvbmNhdChTKHQueCx0LnksZVsxXSxlWzJdLGVbM10sZVs0XSkpO2JyZWFrO2Nhc2VcIkxcIjplPVtcIkNcIl0uY29uY2F0KHcodC54LHQueSxlWzFdLGVbMl0pKTticmVhaztjYXNlXCJIXCI6ZT1bXCJDXCJdLmNvbmNhdCh3KHQueCx0LnksZVsxXSx0LnkpKTticmVhaztjYXNlXCJWXCI6ZT1bXCJDXCJdLmNvbmNhdCh3KHQueCx0LnksdC54LGVbMV0pKTticmVhaztjYXNlXCJaXCI6ZT1bXCJDXCJdLmNvbmNhdCh3KHQueCx0LnksdC5YLHQuWSkpfXJldHVybiBlfWZ1bmN0aW9uIGkoZSx0KXtpZig3PGVbdF0ubGVuZ3RoKXtlW3RdLnNoaWZ0KCk7Zm9yKHZhciByPWVbdF07ci5sZW5ndGg7KWhbdF09XCJBXCIscyYmKGNbdF09XCJBXCIpLGUuc3BsaWNlKHQrKywwLFtcIkNcIl0uY29uY2F0KHIuc3BsaWNlKDAsNikpKTtlLnNwbGljZSh0LDEpLGE9TWF0aC5tYXgoby5sZW5ndGgscyYmcy5sZW5ndGh8fDApfX1mdW5jdGlvbiBuKGUsdCxyLGksbil7ZSYmdCYmXCJNXCI9PT1lW25dWzBdJiZcIk1cIiE9PXRbbl1bMF0mJih0LnNwbGljZShuLDAsW1wiTVwiLGkueCxpLnldKSxyLmJ4PTAsci5ieT0wLHIueD1lW25dWzFdLHIueT1lW25dWzJdLGE9TWF0aC5tYXgoby5sZW5ndGgscyYmcy5sZW5ndGh8fDApKX12YXIgYSxvPWIoZSkscz10JiZiKHQpLGw9e3g6MCx5OjAsYng6MCxieTowLFg6MCxZOjAscXg6bnVsbCxxeTpudWxsfSx1PXt4OjAseTowLGJ4OjAsYnk6MCxYOjAsWTowLHF4Om51bGwscXk6bnVsbH0saD1bXSxjPVtdLGY9XCJcIixkPVwiXCI7YT1NYXRoLm1heChvLmxlbmd0aCxzJiZzLmxlbmd0aHx8MCk7Zm9yKHZhciBwPTA7cDxhO3ArKyl7b1twXSYmKGY9b1twXVswXSksXCJDXCIhPT1mJiYoaFtwXT1mLHAmJihkPWhbcC0xXSkpLG9bcF09cihvW3BdLGwsZCksXCJBXCIhPT1oW3BdJiZcIkNcIj09PWYmJihoW3BdPVwiQ1wiKSxpKG8scCkscyYmKHNbcF0mJihmPXNbcF1bMF0pLFwiQ1wiIT09ZiYmKGNbcF09ZixwJiYoZD1jW3AtMV0pKSxzW3BdPXIoc1twXSx1LGQpLFwiQVwiIT09Y1twXSYmXCJDXCI9PT1mJiYoY1twXT1cIkNcIiksaShzLHApKSxuKG8scyxsLHUscCksbihzLG8sdSxsLHApO3ZhciBtPW9bcF0sdj1zJiZzW3BdLHk9bS5sZW5ndGgsZz1zJiZ2Lmxlbmd0aDtsLng9bVt5LTJdLGwueT1tW3ktMV0sbC5ieD1wYXJzZUZsb2F0KG1beS00XSl8fGwueCxsLmJ5PXBhcnNlRmxvYXQobVt5LTNdKXx8bC55LHUuYng9cyYmKHBhcnNlRmxvYXQodltnLTRdKXx8dS54KSx1LmJ5PXMmJihwYXJzZUZsb2F0KHZbZy0zXSl8fHUueSksdS54PXMmJnZbZy0yXSx1Lnk9cyYmdltnLTFdfXJldHVybiBzP1tvLHNdOm99KGUpKS5sZW5ndGg7dTxoO3UrKyl7aWYoXCJNXCI9PT0oYT1lW3VdKVswXSlpPSthWzFdLG49K2FbMl07ZWxzZXtpZih0PGwrKG89dihpLG4sYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pKSYmIXIpcmV0dXJue3g6KHM9dihpLG4sYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0sdC1sKSkueCx5OnMueSxhbHBoYTpzLmFscGhhfTtsKz1vLGk9K2FbNV0sbj0rYVs2XX1hLnNoaWZ0KCkrYX1yZXR1cm4ocz1yP2w6YyhpLG4sYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sMSkpLmFscGhhJiYocz17eDpzLngseTpzLnksYWxwaGE6cy5hbHBoYX0pLHN9ZnVuY3Rpb24gYihlKXt2YXIgdCxyPVtdLGk9MCxuPTAsYT0wLG89MCxzPTA7aWYoIWUpcmV0dXJuIHI7XCJNXCI9PT1lWzBdWzBdJiYoYT1pPStlWzBdWzFdLG89bj0rZVswXVsyXSxzKyssclswXT1bXCJNXCIsaSxuXSk7Zm9yKHZhciBsLHUsaD0zPT09ZS5sZW5ndGgmJlwiTVwiPT09ZVswXVswXSYmXCJSXCI9PT1lWzFdWzBdLnRvVXBwZXJDYXNlKCkmJlwiWlwiPT09ZVsyXVswXS50b1VwcGVyQ2FzZSgpLGM9cyxmPWUubGVuZ3RoO2M8ZjtjKyspe2lmKHIucHVzaChsPVtdKSwodT1lW2NdKVswXSE9PVN0cmluZy5wcm90b3R5cGUudG9VcHBlckNhc2UuY2FsbCh1WzBdKSlzd2l0Y2gobFswXT1TdHJpbmcucHJvdG90eXBlLnRvVXBwZXJDYXNlLmNhbGwodVswXSksbFswXSl7Y2FzZVwiQVwiOmxbMV09dVsxXSxsWzJdPXVbMl0sbFszXT11WzNdLGxbNF09dVs0XSxsWzVdPXVbNV0sbFs2XT0rKHVbNl0raSksbFs3XT0rKHVbN10rbik7YnJlYWs7Y2FzZVwiVlwiOmxbMV09K3VbMV0rbjticmVhaztjYXNlXCJIXCI6bFsxXT0rdVsxXStpO2JyZWFrO2Nhc2VcIlJcIjpmb3IodmFyIGQ9MixwPSh0PVtpLG5dLmNvbmNhdCh1LnNsaWNlKDEpKSkubGVuZ3RoO2Q8cDtkKyspdFtkXT0rdFtkXStpLHRbKytkXT0rdFtkXStuO3IucG9wKCkscj1yLmNvbmNhdChfKHQsaCkpO2JyZWFrO2Nhc2VcIk1cIjphPSt1WzFdK2ksbz0rdVsyXStuO2JyZWFrO2RlZmF1bHQ6Zm9yKHZhciBtPTEsdj11Lmxlbmd0aDttPHY7bSsrKWxbbV09K3VbbV0rKG0lMj9pOm4pfWVsc2UgaWYoXCJSXCI9PT11WzBdKXQ9W2ksbl0uY29uY2F0KHUuc2xpY2UoMSkpLHIucG9wKCkscj1yLmNvbmNhdChfKHQsaCkpLGw9W1wiUlwiXS5jb25jYXQodS5zbGljZSgtMikpO2Vsc2UgZm9yKHZhciB5PTAsZz11Lmxlbmd0aDt5PGc7eSsrKWxbeV09dVt5XTtzd2l0Y2gobFswXSl7Y2FzZVwiWlwiOmk9YSxuPW87YnJlYWs7Y2FzZVwiSFwiOmk9bFsxXTticmVhaztjYXNlXCJWXCI6bj1sWzFdO2JyZWFrO2Nhc2VcIk1cIjphPWxbbC5sZW5ndGgtMl0sbz1sW2wubGVuZ3RoLTFdO2JyZWFrO2RlZmF1bHQ6aT1sW2wubGVuZ3RoLTJdLG49bFtsLmxlbmd0aC0xXX19cmV0dXJuIHJ9ZnVuY3Rpb24gXyhlLHQpe2Zvcih2YXIgcj1bXSxpPTAsbj1lLmxlbmd0aDtpPG4tMiohdDtpKz0yKXt2YXIgYT1be3g6K2VbaS0yXSx5OitlW2ktMV19LHt4OitlW2ldLHk6K2VbaSsxXX0se3g6K2VbaSsyXSx5OitlW2krM119LHt4OitlW2krNF0seTorZVtpKzVdfV07dD9pP24tND09PWk/YVszXT17eDorZVswXSx5OitlWzFdfTpuLTI9PT1pJiYoYVsyXT17eDorZVswXSx5OitlWzFdfSxhWzNdPXt4OitlWzJdLHk6K2VbM119KTphWzBdPXt4OitlW24tMl0seTorZVtuLTFdfTpuLTQ9PT1pP2FbM109YVsyXTppfHwoYVswXT17eDorZVtpXSx5OitlW2krMV19KSxyLnB1c2goW1wiQ1wiLCgtYVswXS54KzYqYVsxXS54K2FbMl0ueCkvNiwoLWFbMF0ueSs2KmFbMV0ueSthWzJdLnkpLzYsKGFbMV0ueCs2KmFbMl0ueC1hWzNdLngpLzYsKGFbMV0ueSs2KmFbMl0ueS1hWzNdLnkpLzYsYVsyXS54LGFbMl0ueV0pfXJldHVybiByfWZ1bmN0aW9uIHcoZSx0LHIsaSl7cmV0dXJuW2UsdCxyLGkscixpXX1mdW5jdGlvbiBTKGUsdCxyLGksbixhKXtyZXR1cm5bMS8zKmUrMi8zKnIsMS8zKnQrMi8zKmksMS8zKm4rMi8zKnIsMS8zKmErMi8zKmksbixhXX1mdW5jdGlvbiB5KGUsdCxyLGksbixhLG8scyxsKXtudWxsPT1sJiYobD0xKTtmb3IodmFyIHU9KGw9MTxsPzE6bDwwPzA6bCkvMixoPVstLjEyNTIsLjEyNTIsLS4zNjc4LC4zNjc4LC0uNTg3MywuNTg3MywtLjc2OTksLjc2OTksLS45MDQxLC45MDQxLC0uOTgxNiwuOTgxNl0sYz0wLGY9Wy4yNDkxLC4yNDkxLC4yMzM1LC4yMzM1LC4yMDMyLC4yMDMyLC4xNjAxLC4xNjAxLC4xMDY5LC4xMDY5LC4wNDcyLC4wNDcyXSxkPTA7ZDwxMjtkKyspe3ZhciBwPXUqaFtkXSt1LG09ZyhwLGUscixuLG8pLHY9ZyhwLHQsaSxhLHMpLHk9bSptK3YqdjtjKz1mW2RdKk1hdGguc3FydCh5KX1yZXR1cm4gdSpjfWZ1bmN0aW9uIGcoZSx0LHIsaSxuKXtyZXR1cm4gZSooZSooLTMqdCs5KnItOSppKzMqbikrNip0LTEyKnIrNippKS0zKnQrMypyfW4uZGVmYXVsdC5Gb250PWZ1bmN0aW9uKGUpe3RoaXMucGFyZW50PWUsdGhpcy5jYWNoZT17fSx0aGlzLmZvbnQ9dm9pZCAwfSxuLmRlZmF1bHQuRm9udC5wcm90b3R5cGUudGV4dEJvdW5kcz1mdW5jdGlvbihlKXt2YXIgdCxyPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGk9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjAsbj0zPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzNdOnZvaWQgMCxhPTQ8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbNF06dm9pZCAwLG89YSYmYS5yZW5kZXJlciYmYS5yZW5kZXJlci5fcEluc3R8fHRoaXMucGFyZW50LHM9by5fcmVuZGVyZXIuZHJhd2luZ0NvbnRleHQ7cy50ZXh0QWxpZ258fHguTEVGVCxzLnRleHRCYXNlbGluZXx8eC5CQVNFTElORTtpZihuPW58fG8uX3JlbmRlcmVyLl90ZXh0U2l6ZSwhdCl7dmFyIGwsdSxoPVtdLGM9W10sZj1bXTtmWzBdPVtdO3ZhciBkPVtdLHA9dGhpcy5fc2NhbGUobiksbT1vLl9yZW5kZXJlci50ZXh0TGVhZGluZygpLHY9MDt0aGlzLmZvbnQuZm9yRWFjaEdseXBoKGUscixpLG4sYSxmdW5jdGlvbihlLHQscixpKXt2YXIgbj1lLmdldE1ldHJpY3MoKTswPT09ZS5pbmRleHx8MTA9PT1lLmluZGV4P2Zbdis9MV09W106KGZbdl0ucHVzaCh0K24ueE1pbipwKSxmW3ZdLnB1c2godCtuLnhNYXgqcCksZC5wdXNoKHIrdiptKy1uLnlNaW4qcCksZC5wdXNoKHIrdiptKy1uLnlNYXgqcCkpfSksMDxmW3ZdLmxlbmd0aCYmKGhbdl09TWF0aC5taW4uYXBwbHkobnVsbCxmW3ZdKSxjW3ZdPU1hdGgubWF4LmFwcGx5KG51bGwsZlt2XSkpO2Zvcih2YXIgeT0wLGc9MDtnPD12O2crKyl7aFtnXT1NYXRoLm1pbi5hcHBseShudWxsLGZbZ10pLGNbZ109TWF0aC5tYXguYXBwbHkobnVsbCxmW2ddKTt2YXIgYj1jW2ddLWhbZ107eTxiJiYoeT1iKX12YXIgXz1NYXRoLm1pbi5hcHBseShudWxsLGgpO3Q9e3g6Xyx5Omw9TWF0aC5taW4uYXBwbHkobnVsbCxkKSxoOk1hdGgubWF4LmFwcGx5KG51bGwsZCktbCx3OnksYWR2YW5jZTpfLXJ9LHU9dGhpcy5faGFuZGxlQWxpZ25tZW50KG8uX3JlbmRlcmVyLGUsdC54LHQueSx0LncrdC5hZHZhbmNlKSx0Lng9dS54LHQueT11Lnl9cmV0dXJuIHR9LG4uZGVmYXVsdC5Gb250LnByb3RvdHlwZS50ZXh0VG9Qb2ludHM9ZnVuY3Rpb24oZSx0LHIsaSxuKXt2YXIgYSxvPTAscz1bXSxsPXRoaXMuX2dldEdseXBocyhlKTtpPWl8fHRoaXMucGFyZW50Ll9yZW5kZXJlci5fdGV4dFNpemU7Zm9yKHZhciB1PTA7dTxsLmxlbmd0aDt1Kyspe2lmKCEobFthPXVdLm5hbWUmJlwic3BhY2VcIj09PWxbYV0ubmFtZXx8ZS5sZW5ndGg9PT1sLmxlbmd0aCYmXCIgXCI9PT1lW2FdfHxsW2FdLmluZGV4JiYzPT09bFthXS5pbmRleCkpZm9yKHZhciBoPW0obFt1XS5nZXRQYXRoKHQscixpKS5jb21tYW5kcyksYz0wO2M8aC5sZW5ndGg7YysrKWZvcih2YXIgZj1wKGhbY10sbiksZD0wO2Q8Zi5sZW5ndGg7ZCsrKWZbZF0ueCs9byxzLnB1c2goZltkXSk7bys9bFt1XS5hZHZhbmNlV2lkdGgqdGhpcy5fc2NhbGUoaSl9cmV0dXJuIHN9LG4uZGVmYXVsdC5Gb250LnByb3RvdHlwZS5fZ2V0R2x5cGhzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZvbnQuc3RyaW5nVG9HbHlwaHMoZSl9LG4uZGVmYXVsdC5Gb250LnByb3RvdHlwZS5fZ2V0UGF0aD1mdW5jdGlvbihlLHQscixpKXt2YXIgbj0oaSYmaS5yZW5kZXJlciYmaS5yZW5kZXJlci5fcEluc3R8fHRoaXMucGFyZW50KS5fcmVuZGVyZXIsYT10aGlzLl9oYW5kbGVBbGlnbm1lbnQobixlLHQscik7cmV0dXJuIHRoaXMuZm9udC5nZXRQYXRoKGUsYS54LGEueSxuLl90ZXh0U2l6ZSxpKX0sbi5kZWZhdWx0LkZvbnQucHJvdG90eXBlLl9nZXRQYXRoRGF0YT1mdW5jdGlvbihlLHQscixpKXt2YXIgbj0zO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlJiYyPGFyZ3VtZW50cy5sZW5ndGg/ZT10aGlzLl9nZXRQYXRoKGUsdCxyLGkpOlwib2JqZWN0XCI9PT1kKHQpJiYoaT10KSxpJiZcIm51bWJlclwiPT10eXBlb2YgaS5kZWNpbWFscyYmKG49aS5kZWNpbWFscyksZS50b1BhdGhEYXRhKG4pfSxuLmRlZmF1bHQuRm9udC5wcm90b3R5cGUuX2dldFNWRz1mdW5jdGlvbihlLHQscixpKXt2YXIgbj0zO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlJiYyPGFyZ3VtZW50cy5sZW5ndGg/ZT10aGlzLl9nZXRQYXRoKGUsdCxyLGkpOlwib2JqZWN0XCI9PT1kKHQpJiYoaT10KSxpJiYoXCJudW1iZXJcIj09dHlwZW9mIGkuZGVjaW1hbHMmJihuPWkuZGVjaW1hbHMpLFwibnVtYmVyXCI9PXR5cGVvZiBpLnN0cm9rZVdpZHRoJiYoZS5zdHJva2VXaWR0aD1pLnN0cm9rZVdpZHRoKSx2b2lkIDAhPT1pLmZpbGwmJihlLmZpbGw9aS5maWxsKSx2b2lkIDAhPT1pLnN0cm9rZSYmKGUuc3Ryb2tlPWkuc3Ryb2tlKSksZS50b1NWRyhuKX0sbi5kZWZhdWx0LkZvbnQucHJvdG90eXBlLl9yZW5kZXJQYXRoPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuLGE9aSYmaS5yZW5kZXJlcnx8dGhpcy5wYXJlbnQuX3JlbmRlcmVyLG89YS5kcmF3aW5nQ29udGV4dDtuPVwib2JqZWN0XCI9PT1kKGUpJiZlLmNvbW1hbmRzP2UuY29tbWFuZHM6dGhpcy5fZ2V0UGF0aChlLHQscixpKS5jb21tYW5kcyxvLmJlZ2luUGF0aCgpO3ZhciBzPSEwLGw9ITEsdT12b2lkIDA7dHJ5e2Zvcih2YXIgaCxjPW5bU3ltYm9sLml0ZXJhdG9yXSgpOyEocz0oaD1jLm5leHQoKSkuZG9uZSk7cz0hMCl7dmFyIGY9aC52YWx1ZTtcIk1cIj09PWYudHlwZT9vLm1vdmVUbyhmLngsZi55KTpcIkxcIj09PWYudHlwZT9vLmxpbmVUbyhmLngsZi55KTpcIkNcIj09PWYudHlwZT9vLmJlemllckN1cnZlVG8oZi54MSxmLnkxLGYueDIsZi55MixmLngsZi55KTpcIlFcIj09PWYudHlwZT9vLnF1YWRyYXRpY0N1cnZlVG8oZi54MSxmLnkxLGYueCxmLnkpOlwiWlwiPT09Zi50eXBlJiZvLmNsb3NlUGF0aCgpfX1jYXRjaChlKXtsPSEwLHU9ZX1maW5hbGx5e3RyeXtzfHxudWxsPT1jLnJldHVybnx8Yy5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgdX19cmV0dXJuIGEuX2RvU3Ryb2tlJiZhLl9zdHJva2VTZXQmJm8uc3Ryb2tlKCksYS5fZG9GaWxsJiYoYS5fZmlsbFNldHx8YS5fc2V0RmlsbCh4Ll9ERUZBVUxUX1RFWFRfRklMTCksby5maWxsKCkpLHRoaXN9LG4uZGVmYXVsdC5Gb250LnByb3RvdHlwZS5fdGV4dFdpZHRoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZm9udC5nZXRBZHZhbmNlV2lkdGgoZSx0KX0sbi5kZWZhdWx0LkZvbnQucHJvdG90eXBlLl90ZXh0QXNjZW50PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZvbnQuYXNjZW5kZXIqdGhpcy5fc2NhbGUoZSl9LG4uZGVmYXVsdC5Gb250LnByb3RvdHlwZS5fdGV4dERlc2NlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuLXRoaXMuZm9udC5kZXNjZW5kZXIqdGhpcy5fc2NhbGUoZSl9LG4uZGVmYXVsdC5Gb250LnByb3RvdHlwZS5fc2NhbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIDEvdGhpcy5mb250LnVuaXRzUGVyRW0qKGV8fHRoaXMucGFyZW50Ll9yZW5kZXJlci5fdGV4dFNpemUpfSxuLmRlZmF1bHQuRm9udC5wcm90b3R5cGUuX2hhbmRsZUFsaWdubWVudD1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBhPWUuX3RleHRTaXplO3N3aXRjaCh2b2lkIDA9PT1uJiYobj10aGlzLl90ZXh0V2lkdGgodCxhKSksZS5fdGV4dEFsaWduKXtjYXNlIHguQ0VOVEVSOnItPW4vMjticmVhaztjYXNlIHguUklHSFQ6ci09bn1zd2l0Y2goZS5fdGV4dEJhc2VsaW5lKXtjYXNlIHguVE9QOmkrPXRoaXMuX3RleHRBc2NlbnQoYSk7YnJlYWs7Y2FzZSB4LkNFTlRFUjppKz10aGlzLl90ZXh0QXNjZW50KGEpLzI7YnJlYWs7Y2FzZSB4LkJPVFRPTTppLT10aGlzLl90ZXh0RGVzY2VudChhKX1yZXR1cm57eDpyLHk6aX19O3ZhciB1PW4uZGVmYXVsdDtyLmRlZmF1bHQ9dX0se1wiLi4vY29yZS9jb25zdGFudHNcIjoyNixcIi4uL2NvcmUvbWFpblwiOjM2fV0sNzU6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O24uZGVmYXVsdC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucHVzaCh0KSxlfSxuLmRlZmF1bHQucHJvdG90eXBlLmFycmF5Q29weT1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBhLG87ZT12b2lkIDAhPT1uPyhvPU1hdGgubWluKG4sZS5sZW5ndGgpLGE9aSxlLnNsaWNlKHQsbyt0KSk6KG89dm9pZCAwIT09cj8obz1yLE1hdGgubWluKG8sZS5sZW5ndGgpKTplLmxlbmd0aCxhPTAscj10LGUuc2xpY2UoMCxvKSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShyLFthLG9dLmNvbmNhdChlKSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuY29uY2F0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29uY2F0KHQpfSxuLmRlZmF1bHQucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmV2ZXJzZSgpfSxuLmRlZmF1bHQucHJvdG90eXBlLnNob3J0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIGUucG9wKCksZX0sbi5kZWZhdWx0LnByb3RvdHlwZS5zaHVmZmxlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByLGksbj1BcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3JiZBcnJheUJ1ZmZlci5pc1ZpZXcoZSksYT0oZT10fHxuP2U6ZS5zbGljZSgpKS5sZW5ndGg7MTxhOylyPXRoaXMucmFuZG9tKDAsMSkqYXwwLGk9ZVstLWFdLGVbYV09ZVtyXSxlW3JdPWk7cmV0dXJuIGV9LG4uZGVmYXVsdC5wcm90b3R5cGUuc29ydD1mdW5jdGlvbihlLHQpe3ZhciByPXQ/ZS5zbGljZSgwLE1hdGgubWluKHQsZS5sZW5ndGgpKTplLGk9dD9lLnNsaWNlKE1hdGgubWluKHQsZS5sZW5ndGgpKTpbXTtyZXR1cm4ocj1cInN0cmluZ1wiPT10eXBlb2YgclswXT9yLnNvcnQoKTpyLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSkpLmNvbmNhdChpKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5zcGxpY2U9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGUsW3IsMF0uY29uY2F0KHQpKSxlfSxuLmRlZmF1bHQucHJvdG90eXBlLnN1YnNldD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHZvaWQgMCE9PXI/ZS5zbGljZSh0LHQrcik6ZS5zbGljZSh0LGUubGVuZ3RoKX07dmFyIGE9bi5kZWZhdWx0O3IuZGVmYXVsdD1hfSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDc2OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtuLmRlZmF1bHQucHJvdG90eXBlLmZsb2F0PWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQXJyYXk/ZS5tYXAocGFyc2VGbG9hdCk6cGFyc2VGbG9hdChlKX0sbi5kZWZhdWx0LnByb3RvdHlwZS5pbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEwO3JldHVybiBlPT09MS8wfHxcIkluZmluaXR5XCI9PT1lPzEvMDplPT09LTEvMHx8XCItSW5maW5pdHlcIj09PWU/LTEvMDpcInN0cmluZ1wiPT10eXBlb2YgZT9wYXJzZUludChlLHQpOlwibnVtYmVyXCI9PXR5cGVvZiBlPzB8ZTpcImJvb2xlYW5cIj09dHlwZW9mIGU/ZT8xOjA6ZSBpbnN0YW5jZW9mIEFycmF5P2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQucHJvdG90eXBlLmludChlLHQpfSk6dm9pZCAwfSxuLmRlZmF1bHQucHJvdG90eXBlLnN0cj1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEFycmF5P2UubWFwKG4uZGVmYXVsdC5wcm90b3R5cGUuc3RyKTpTdHJpbmcoZSl9LG4uZGVmYXVsdC5wcm90b3R5cGUuYm9vbGVhbj1mdW5jdGlvbihlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZT8wIT09ZTpcInN0cmluZ1wiPT10eXBlb2YgZT9cInRydWVcIj09PWUudG9Mb3dlckNhc2UoKTpcImJvb2xlYW5cIj09dHlwZW9mIGU/ZTplIGluc3RhbmNlb2YgQXJyYXk/ZS5tYXAobi5kZWZhdWx0LnByb3RvdHlwZS5ib29sZWFuKTp2b2lkIDB9LG4uZGVmYXVsdC5wcm90b3R5cGUuYnl0ZT1mdW5jdGlvbihlKXt2YXIgdD1uLmRlZmF1bHQucHJvdG90eXBlLmludChlLDEwKTtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgdD8odCsxMjgpJTI1Ni0xMjg6dCBpbnN0YW5jZW9mIEFycmF5P3QubWFwKG4uZGVmYXVsdC5wcm90b3R5cGUuYnl0ZSk6dm9pZCAwfSxuLmRlZmF1bHQucHJvdG90eXBlLmNoYXI9ZnVuY3Rpb24oZSl7cmV0dXJuXCJudW1iZXJcIiE9dHlwZW9mIGV8fGlzTmFOKGUpP2UgaW5zdGFuY2VvZiBBcnJheT9lLm1hcChuLmRlZmF1bHQucHJvdG90eXBlLmNoYXIpOlwic3RyaW5nXCI9PXR5cGVvZiBlP24uZGVmYXVsdC5wcm90b3R5cGUuY2hhcihwYXJzZUludChlLDEwKSk6dm9pZCAwOlN0cmluZy5mcm9tQ2hhckNvZGUoZSl9LG4uZGVmYXVsdC5wcm90b3R5cGUudW5jaGFyPWZ1bmN0aW9uKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlJiYxPT09ZS5sZW5ndGg/ZS5jaGFyQ29kZUF0KDApOmUgaW5zdGFuY2VvZiBBcnJheT9lLm1hcChuLmRlZmF1bHQucHJvdG90eXBlLnVuY2hhcik6dm9pZCAwfSxuLmRlZmF1bHQucHJvdG90eXBlLmhleD1mdW5jdGlvbihlLHQpe2lmKHQ9bnVsbD09dD90PTg6dCxlIGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQucHJvdG90eXBlLmhleChlLHQpfSk7aWYoZT09PTEvMHx8ZT09PS0xLzApcmV0dXJuKGU9PT0xLzA/XCJGXCI6XCIwXCIpLnJlcGVhdCh0KTtpZihcIm51bWJlclwiPT10eXBlb2YgZSl7ZTwwJiYoZT00Mjk0OTY3Mjk1K2UrMSk7Zm9yKHZhciByPU51bWJlcihlKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyLmxlbmd0aDx0OylyPVwiMFwiLmNvbmNhdChyKTtyZXR1cm4gci5sZW5ndGg+PXQmJihyPXIuc3Vic3RyaW5nKHIubGVuZ3RoLXQsci5sZW5ndGgpKSxyfX0sbi5kZWZhdWx0LnByb3RvdHlwZS51bmhleD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEFycmF5P2UubWFwKG4uZGVmYXVsdC5wcm90b3R5cGUudW5oZXgpOnBhcnNlSW50KFwiMHhcIi5jb25jYXQoZSksMTYpfTt2YXIgYT1uLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sNzc6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG89KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O2Z1bmN0aW9uIG4oZSx0LHIpe3ZhciBpPWU8MCxuPWk/ZS50b1N0cmluZygpLnN1YnN0cmluZygxKTplLnRvU3RyaW5nKCksYT1uLmluZGV4T2YoXCIuXCIpLG89LTEhPT1hP24uc3Vic3RyaW5nKDAsYSk6bixzPS0xIT09YT9uLnN1YnN0cmluZyhhKzEpOlwiXCIsbD1pP1wiLVwiOlwiXCI7aWYodm9pZCAwIT09cil7dmFyIHU9XCJcIjsoLTEhPT1hfHwwPHItcy5sZW5ndGgpJiYodT1cIi5cIikscy5sZW5ndGg+ciYmKHM9cy5zdWJzdHJpbmcoMCxyKSk7Zm9yKHZhciBoPTA7aDx0LW8ubGVuZ3RoO2grKylsKz1cIjBcIjtsKz1vLGwrPXUsbCs9cztmb3IodmFyIGM9MDtjPHItcy5sZW5ndGg7YysrKWwrPVwiMFwiO3JldHVybiBsfWZvcih2YXIgZj0wO2Y8TWF0aC5tYXgodC1vLmxlbmd0aCwwKTtmKyspbCs9XCIwXCI7cmV0dXJuIGwrPW59ZnVuY3Rpb24gYShlLHQpe3ZhciByPShlPWUudG9TdHJpbmcoKSkuaW5kZXhPZihcIi5cIiksaT0tMSE9PXI/ZS5zdWJzdHJpbmcocik6XCJcIixuPS0xIT09cj9lLnN1YnN0cmluZygwLHIpOmU7aWYobj1uLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZyxcIixcIiksMD09PXQpaT1cIlwiO2Vsc2UgaWYodm9pZCAwIT09dClpZih0PmkubGVuZ3RoKWZvcih2YXIgYT10LShpKz0tMT09PXI/XCIuXCI6XCJcIikubGVuZ3RoKzEsbz0wO288YTtvKyspaSs9XCIwXCI7ZWxzZSBpPWkuc3Vic3RyaW5nKDAsdCsxKTtyZXR1cm4gbitpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIDA8cGFyc2VGbG9hdChlKT9cIitcIi5jb25jYXQoZS50b1N0cmluZygpKTplLnRvU3RyaW5nKCl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gMDw9cGFyc2VGbG9hdChlKT9cIiBcIi5jb25jYXQoZS50b1N0cmluZygpKTplLnRvU3RyaW5nKCl9ZShcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL3ZhbGlkYXRlX3BhcmFtc1wiKSxlKFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvZmlsZV9lcnJvcnNcIiksZShcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2Zlc19jb3JlXCIpLG8uZGVmYXVsdC5wcm90b3R5cGUuam9pbj1mdW5jdGlvbihlLHQpe3JldHVybiBvLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImpvaW5cIixhcmd1bWVudHMpLGUuam9pbih0KX0sby5kZWZhdWx0LnByb3RvdHlwZS5tYXRjaD1mdW5jdGlvbihlLHQpe3JldHVybiBvLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcIm1hdGNoXCIsYXJndW1lbnRzKSxlLm1hdGNoKHQpfSxvLmRlZmF1bHQucHJvdG90eXBlLm1hdGNoQWxsPWZ1bmN0aW9uKGUsdCl7by5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJtYXRjaEFsbFwiLGFyZ3VtZW50cyk7Zm9yKHZhciByPW5ldyBSZWdFeHAodCxcImdcIiksaT1yLmV4ZWMoZSksbj1bXTtudWxsIT09aTspbi5wdXNoKGkpLGk9ci5leGVjKGUpO3JldHVybiBufSxvLmRlZmF1bHQucHJvdG90eXBlLm5mPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gby5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJuZlwiLGFyZ3VtZW50cyksZSBpbnN0YW5jZW9mIEFycmF5P2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUsdCxyKX0pOlwiW29iamVjdCBBcmd1bWVudHNdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk/Mz09PWUubGVuZ3RoP3RoaXMubmYoZVswXSxlWzFdLGVbMl0pOjI9PT1lLmxlbmd0aD90aGlzLm5mKGVbMF0sZVsxXSk6dGhpcy5uZihlWzBdKTpuKGUsdCxyKX0sby5kZWZhdWx0LnByb3RvdHlwZS5uZmM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJuZmNcIixhcmd1bWVudHMpLGUgaW5zdGFuY2VvZiBBcnJheT9lLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYShlLHQpfSk6YShlLHQpfSxvLmRlZmF1bHQucHJvdG90eXBlLm5mcD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO28uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibmZwXCIsdCk7dmFyIGk9by5kZWZhdWx0LnByb3RvdHlwZS5uZi5hcHBseSh0aGlzLHQpO3JldHVybiBpIGluc3RhbmNlb2YgQXJyYXk/aS5tYXAocyk6cyhpKX0sby5kZWZhdWx0LnByb3RvdHlwZS5uZnM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtvLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcIm5mc1wiLHQpO3ZhciBpPW8uZGVmYXVsdC5wcm90b3R5cGUubmYuYXBwbHkodGhpcyx0KTtyZXR1cm4gaSBpbnN0YW5jZW9mIEFycmF5P2kubWFwKGwpOmwoaSl9LG8uZGVmYXVsdC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzcGxpdFwiLGFyZ3VtZW50cyksZS5zcGxpdCh0KX0sby5kZWZhdWx0LnByb3RvdHlwZS5zcGxpdFRva2Vucz1mdW5jdGlvbihlLHQpe3ZhciByO2lmKG8uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic3BsaXRUb2tlbnNcIixhcmd1bWVudHMpLHZvaWQgMCE9PXQpe3ZhciBpPXQsbj0vXFxdL2cuZXhlYyhpKSxhPS9cXFsvZy5leGVjKGkpO3I9YSYmbj8oaT1pLnNsaWNlKDAsbi5pbmRleCkraS5zbGljZShuLmluZGV4KzEpLGE9L1xcWy9nLmV4ZWMoaSksaT1pLnNsaWNlKDAsYS5pbmRleCkraS5zbGljZShhLmluZGV4KzEpLG5ldyBSZWdFeHAoXCJbXFxcXFtcIi5jb25jYXQoaSxcIlxcXFxdXVwiKSxcImdcIikpOm4/KGk9aS5zbGljZSgwLG4uaW5kZXgpK2kuc2xpY2Uobi5pbmRleCsxKSxuZXcgUmVnRXhwKFwiW1wiLmNvbmNhdChpLFwiXFxcXF1dXCIpLFwiZ1wiKSk6YT8oaT1pLnNsaWNlKDAsYS5pbmRleCkraS5zbGljZShhLmluZGV4KzEpLG5ldyBSZWdFeHAoXCJbXCIuY29uY2F0KGksXCJcXFxcW11cIiksXCJnXCIpKTpuZXcgUmVnRXhwKFwiW1wiLmNvbmNhdChpLFwiXVwiKSxcImdcIil9ZWxzZSByPS9cXHMvZztyZXR1cm4gZS5zcGxpdChyKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KX0sby5kZWZhdWx0LnByb3RvdHlwZS50cmltPWZ1bmN0aW9uKGUpe3JldHVybiBvLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRyaW1cIixhcmd1bWVudHMpLGUgaW5zdGFuY2VvZiBBcnJheT9lLm1hcCh0aGlzLnRyaW0pOmUudHJpbSgpfTt2YXIgdT1vLmRlZmF1bHQ7ci5kZWZhdWx0PXV9LHtcIi4uL2NvcmUvZnJpZW5kbHlfZXJyb3JzL2Zlc19jb3JlXCI6MjgsXCIuLi9jb3JlL2ZyaWVuZGx5X2Vycm9ycy9maWxlX2Vycm9yc1wiOjI5LFwiLi4vY29yZS9mcmllbmRseV9lcnJvcnMvdmFsaWRhdGVfcGFyYW1zXCI6MzEsXCIuLi9jb3JlL21haW5cIjozNn1dLDc4OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxuPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtuLmRlZmF1bHQucHJvdG90eXBlLmRheT1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0RGF0ZSgpfSxuLmRlZmF1bHQucHJvdG90eXBlLmhvdXI9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldEhvdXJzKCl9LG4uZGVmYXVsdC5wcm90b3R5cGUubWludXRlPWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRNaW51dGVzKCl9LG4uZGVmYXVsdC5wcm90b3R5cGUubWlsbGlzPWZ1bmN0aW9uKCl7cmV0dXJuLTE9PT10aGlzLl9taWxsaXNTdGFydD8wOndpbmRvdy5wZXJmb3JtYW5jZS5ub3coKS10aGlzLl9taWxsaXNTdGFydH0sbi5kZWZhdWx0LnByb3RvdHlwZS5tb250aD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0TW9udGgoKSsxfSxuLmRlZmF1bHQucHJvdG90eXBlLnNlY29uZD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0U2Vjb25kcygpfSxuLmRlZmF1bHQucHJvdG90eXBlLnllYXI9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldEZ1bGxZZWFyKCl9O3ZhciBhPW4uZGVmYXVsdDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSw3OTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksRT0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07ZShcIi4vcDUuR2VvbWV0cnlcIik7dmFyIGQ9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1FLmRlZmF1bHQucHJvdG90eXBlLnBsYW5lPWZ1bmN0aW9uKGUsdCxyLGkpe3RoaXMuX2Fzc2VydDNkKFwicGxhbmVcIiksRS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJwbGFuZVwiLGFyZ3VtZW50cyksdm9pZCAwPT09ZSYmKGU9NTApLHZvaWQgMD09PXQmJih0PWUpLHZvaWQgMD09PXImJihyPTEpLHZvaWQgMD09PWkmJihpPTEpO3ZhciBuPVwicGxhbmV8XCIuY29uY2F0KHIsXCJ8XCIpLmNvbmNhdChpKTtpZighdGhpcy5fcmVuZGVyZXIuZ2VvbWV0cnlJbkhhc2gobikpe3ZhciBhPW5ldyBFLmRlZmF1bHQuR2VvbWV0cnkocixpLGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQscixpPTA7aTw9dGhpcy5kZXRhaWxZO2krKyl7dD1pL3RoaXMuZGV0YWlsWTtmb3IodmFyIG49MDtuPD10aGlzLmRldGFpbFg7bisrKWU9bi90aGlzLmRldGFpbFgscj1uZXcgRS5kZWZhdWx0LlZlY3RvcihlLS41LHQtLjUsMCksdGhpcy52ZXJ0aWNlcy5wdXNoKHIpLHRoaXMudXZzLnB1c2goZSx0KX19KTthLmNvbXB1dGVGYWNlcygpLmNvbXB1dGVOb3JtYWxzKCkscjw9MSYmaTw9MT9hLl9tYWtlVHJpYW5nbGVFZGdlcygpLl9lZGdlc1RvVmVydGljZXMoKTp0aGlzLl9yZW5kZXJlci5fZG9TdHJva2UmJmNvbnNvbGUubG9nKFwiQ2Fubm90IGRyYXcgc3Ryb2tlIG9uIHBsYW5lIG9iamVjdHMgd2l0aCBtb3JlIHRoYW4gMSBkZXRhaWxYIG9yIDEgZGV0YWlsWVwiKSx0aGlzLl9yZW5kZXJlci5jcmVhdGVCdWZmZXJzKG4sYSl9cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmRyYXdCdWZmZXJzU2NhbGVkKG4sZSx0LDEpLHRoaXN9LEUuZGVmYXVsdC5wcm90b3R5cGUuYm94PWZ1bmN0aW9uKGUsdCxyLGksbil7dGhpcy5fYXNzZXJ0M2QoXCJib3hcIiksRS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJib3hcIixhcmd1bWVudHMpLHZvaWQgMD09PWUmJihlPTUwKSx2b2lkIDA9PT10JiYodD1lKSx2b2lkIDA9PT1yJiYocj10KTt2YXIgYT10aGlzLl9yZW5kZXJlci5hdHRyaWJ1dGVzJiZ0aGlzLl9yZW5kZXJlci5hdHRyaWJ1dGVzLnBlclBpeGVsTGlnaHRpbmc7dm9pZCAwPT09aSYmKGk9YT8xOjQpLHZvaWQgMD09PW4mJihuPWE/MTo0KTt2YXIgbz1cImJveHxcIi5jb25jYXQoaSxcInxcIikuY29uY2F0KG4pO2lmKCF0aGlzLl9yZW5kZXJlci5nZW9tZXRyeUluSGFzaChvKSl7dmFyIHM9bmV3IEUuZGVmYXVsdC5HZW9tZXRyeShpLG4sZnVuY3Rpb24oKXt2YXIgZT1bWzAsNCwyLDZdLFsxLDMsNSw3XSxbMCwxLDQsNV0sWzIsNiwzLDddLFswLDIsMSwzXSxbNCw1LDYsN11dO3RoaXMuc3Ryb2tlSW5kaWNlcz1bWzAsMV0sWzEsM10sWzMsMl0sWzYsN10sWzgsOV0sWzksMTFdLFsxNCwxNV0sWzE2LDE3XSxbMTcsMTldLFsxOCwxOV0sWzIwLDIxXSxbMjIsMjNdXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7Zm9yKHZhciByPWVbdF0saT00KnQsbj0wO248NDtuKyspe3ZhciBhPXJbbl0sbz1uZXcgRS5kZWZhdWx0LlZlY3RvcigoMiooMSZhKS0xKS8yLCgoMiZhKS0xKS8yLCgoNCZhKS8yLTEpLzIpO3RoaXMudmVydGljZXMucHVzaChvKSx0aGlzLnV2cy5wdXNoKDEmbiwoMiZuKS8yKX10aGlzLmZhY2VzLnB1c2goW2ksMStpLDIraV0pLHRoaXMuZmFjZXMucHVzaChbMitpLDEraSwzK2ldKX19KTtzLmNvbXB1dGVOb3JtYWxzKCksaTw9NCYmbjw9ND9zLl9tYWtlVHJpYW5nbGVFZGdlcygpLl9lZGdlc1RvVmVydGljZXMoKTp0aGlzLl9yZW5kZXJlci5fZG9TdHJva2UmJmNvbnNvbGUubG9nKFwiQ2Fubm90IGRyYXcgc3Ryb2tlIG9uIGJveCBvYmplY3RzIHdpdGggbW9yZSB0aGFuIDQgZGV0YWlsWCBvciA0IGRldGFpbFlcIiksdGhpcy5fcmVuZGVyZXIuY3JlYXRlQnVmZmVycyhvLHMpfXJldHVybiB0aGlzLl9yZW5kZXJlci5kcmF3QnVmZmVyc1NjYWxlZChvLGUsdCxyKSx0aGlzfSxFLmRlZmF1bHQucHJvdG90eXBlLnNwaGVyZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwic3BoZXJlXCIpLEUuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic3BoZXJlXCIsYXJndW1lbnRzKSx2b2lkIDA9PT1lJiYoZT01MCksdm9pZCAwPT09dCYmKHQ9MjQpLHZvaWQgMD09PXImJihyPTE2KSx0aGlzLmVsbGlwc29pZChlLGUsZSx0LHIpLHRoaXN9O2Z1bmN0aW9uIGwoZSx0LHIsaSxuLGEsbyl7ZT1lPD0wPzE6ZSx0PXQ8MD8wOnQscj1yPD0wP2U6cixpPWk8Mz8zOmk7dmFyIHMsbCx1LGg9KGE9dm9pZCAwPT09YXx8YSk/LTI6MCxjPShuPW48MT8xOm4pKygobz12b2lkIDA9PT1vPzAhPT10Om8pPzI6MCksZj1NYXRoLmF0YW4yKGUtdCxyKSxkPU1hdGguc2luKGYpLHA9TWF0aC5jb3MoZik7Zm9yKHM9aDtzPD1jOysrcyl7dmFyIG09cy9uLHY9ciptLHk9dm9pZCAwO2Zvcih5PXM8MD8obT12PTAsZSk6bjxzPyh2PXIsbT0xLHQpOmUrKHQtZSkqbSwtMiE9PXMmJnMhPT1uKzJ8fCh5PTApLHYtPXIvMixsPTA7bDxpOysrbCl7dmFyIGc9bC8oaS0xKSxiPTIqTWF0aC5QSSpnLF89TWF0aC5zaW4oYikseD1NYXRoLmNvcyhiKTt0aGlzLnZlcnRpY2VzLnB1c2gobmV3IEUuZGVmYXVsdC5WZWN0b3IoXyp5LHYseCp5KSk7dmFyIHc9dm9pZCAwO3c9czwwP25ldyBFLmRlZmF1bHQuVmVjdG9yKDAsLTEsMCk6bjxzJiZ0P25ldyBFLmRlZmF1bHQuVmVjdG9yKDAsMSwwKTpuZXcgRS5kZWZhdWx0LlZlY3RvcihfKnAsZCx4KnApLHRoaXMudmVydGV4Tm9ybWFscy5wdXNoKHcpLHRoaXMudXZzLnB1c2goZyxtKX19dmFyIFM9MDtpZihhKXtmb3IodT0wO3U8aTsrK3Upe3ZhciBNPSh1KzEpJWk7dGhpcy5mYWNlcy5wdXNoKFtTK3UsUytpK00sUytpK3VdKX1TKz0yKml9Zm9yKHM9MDtzPG47KytzKXtmb3IobD0wO2w8aTsrK2wpe3ZhciBUPShsKzEpJWk7dGhpcy5mYWNlcy5wdXNoKFtTK2wsUytULFMraStUXSksdGhpcy5mYWNlcy5wdXNoKFtTK2wsUytpK1QsUytpK2xdKX1TKz1pfWlmKG8pZm9yKFMrPWksbD0wO2w8aTsrK2wpdGhpcy5mYWNlcy5wdXNoKFtTK2wsUysobCsxKSVpLFMraV0pfUUuZGVmYXVsdC5wcm90b3R5cGUuY3lsaW5kZXI9ZnVuY3Rpb24oZSx0LHIsaSxuLGEpe3RoaXMuX2Fzc2VydDNkKFwiY3lsaW5kZXJcIiksRS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJjeWxpbmRlclwiLGFyZ3VtZW50cyksdm9pZCAwPT09ZSYmKGU9NTApLHZvaWQgMD09PXQmJih0PWUpLHZvaWQgMD09PXImJihyPTI0KSx2b2lkIDA9PT1pJiYoaT0xKSx2b2lkIDA9PT1hJiYoYT0hMCksdm9pZCAwPT09biYmKG49ITApO3ZhciBvPVwiY3lsaW5kZXJ8XCIuY29uY2F0KHIsXCJ8XCIpLmNvbmNhdChpLFwifFwiKS5jb25jYXQobixcInxcIikuY29uY2F0KGEpO2lmKCF0aGlzLl9yZW5kZXJlci5nZW9tZXRyeUluSGFzaChvKSl7dmFyIHM9bmV3IEUuZGVmYXVsdC5HZW9tZXRyeShyLGkpO2wuY2FsbChzLDEsMSwxLHIsaSxuLGEpLHI8PTI0JiZpPD0xNj9zLl9tYWtlVHJpYW5nbGVFZGdlcygpLl9lZGdlc1RvVmVydGljZXMoKTp0aGlzLl9yZW5kZXJlci5fZG9TdHJva2UmJmNvbnNvbGUubG9nKFwiQ2Fubm90IGRyYXcgc3Ryb2tlIG9uIGN5bGluZGVyIG9iamVjdHMgd2l0aCBtb3JlIHRoYW4gMjQgZGV0YWlsWCBvciAxNiBkZXRhaWxZXCIpLHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUJ1ZmZlcnMobyxzKX1yZXR1cm4gdGhpcy5fcmVuZGVyZXIuZHJhd0J1ZmZlcnNTY2FsZWQobyxlLHQsZSksdGhpc30sRS5kZWZhdWx0LnByb3RvdHlwZS5jb25lPWZ1bmN0aW9uKGUsdCxyLGksbil7dGhpcy5fYXNzZXJ0M2QoXCJjb25lXCIpLEUuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY29uZVwiLGFyZ3VtZW50cyksdm9pZCAwPT09ZSYmKGU9NTApLHZvaWQgMD09PXQmJih0PWUpLHZvaWQgMD09PXImJihyPTI0KSx2b2lkIDA9PT1pJiYoaT0xKSx2b2lkIDA9PT1uJiYobj0hMCk7dmFyIGE9XCJjb25lfFwiLmNvbmNhdChyLFwifFwiKS5jb25jYXQoaSxcInxcIikuY29uY2F0KG4pO2lmKCF0aGlzLl9yZW5kZXJlci5nZW9tZXRyeUluSGFzaChhKSl7dmFyIG89bmV3IEUuZGVmYXVsdC5HZW9tZXRyeShyLGkpO2wuY2FsbChvLDEsMCwxLHIsaSxuLCExKSxyPD0yNCYmaTw9MTY/by5fbWFrZVRyaWFuZ2xlRWRnZXMoKS5fZWRnZXNUb1ZlcnRpY2VzKCk6dGhpcy5fcmVuZGVyZXIuX2RvU3Ryb2tlJiZjb25zb2xlLmxvZyhcIkNhbm5vdCBkcmF3IHN0cm9rZSBvbiBjb25lIG9iamVjdHMgd2l0aCBtb3JlIHRoYW4gMjQgZGV0YWlsWCBvciAxNiBkZXRhaWxZXCIpLHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUJ1ZmZlcnMoYSxvKX1yZXR1cm4gdGhpcy5fcmVuZGVyZXIuZHJhd0J1ZmZlcnNTY2FsZWQoYSxlLHQsZSksdGhpc30sRS5kZWZhdWx0LnByb3RvdHlwZS5lbGxpcHNvaWQ9ZnVuY3Rpb24oZSx0LHIsaSxuKXt0aGlzLl9hc3NlcnQzZChcImVsbGlwc29pZFwiKSxFLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImVsbGlwc29pZFwiLGFyZ3VtZW50cyksdm9pZCAwPT09ZSYmKGU9NTApLHZvaWQgMD09PXQmJih0PWUpLHZvaWQgMD09PXImJihyPWUpLHZvaWQgMD09PWkmJihpPTI0KSx2b2lkIDA9PT1uJiYobj0xNik7dmFyIGE9XCJlbGxpcHNvaWR8XCIuY29uY2F0KGksXCJ8XCIpLmNvbmNhdChuKTtpZighdGhpcy5fcmVuZGVyZXIuZ2VvbWV0cnlJbkhhc2goYSkpe3ZhciBvPW5ldyBFLmRlZmF1bHQuR2VvbWV0cnkoaSxuLGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTw9dGhpcy5kZXRhaWxZO2UrKylmb3IodmFyIHQ9ZS90aGlzLmRldGFpbFkscj1NYXRoLlBJKnQtTWF0aC5QSS8yLGk9TWF0aC5jb3Mociksbj1NYXRoLnNpbihyKSxhPTA7YTw9dGhpcy5kZXRhaWxYO2ErKyl7dmFyIG89YS90aGlzLmRldGFpbFgscz0yKk1hdGguUEkqbyxsPU1hdGguY29zKHMpLHU9TWF0aC5zaW4ocyksaD1uZXcgRS5kZWZhdWx0LlZlY3RvcihpKnUsbixpKmwpO3RoaXMudmVydGljZXMucHVzaChoKSx0aGlzLnZlcnRleE5vcm1hbHMucHVzaChoKSx0aGlzLnV2cy5wdXNoKG8sdCl9fSk7by5jb21wdXRlRmFjZXMoKSxpPD0yNCYmbjw9MjQ/by5fbWFrZVRyaWFuZ2xlRWRnZXMoKS5fZWRnZXNUb1ZlcnRpY2VzKCk6dGhpcy5fcmVuZGVyZXIuX2RvU3Ryb2tlJiZjb25zb2xlLmxvZyhcIkNhbm5vdCBkcmF3IHN0cm9rZSBvbiBlbGxpcHNvaWRzIHdpdGggbW9yZSB0aGFuIDI0IGRldGFpbFggb3IgMjQgZGV0YWlsWVwiKSx0aGlzLl9yZW5kZXJlci5jcmVhdGVCdWZmZXJzKGEsbyl9cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmRyYXdCdWZmZXJzU2NhbGVkKGEsZSx0LHIpLHRoaXN9LEUuZGVmYXVsdC5wcm90b3R5cGUudG9ydXM9ZnVuY3Rpb24oZSx0LHIsaSl7aWYodGhpcy5fYXNzZXJ0M2QoXCJ0b3J1c1wiKSxFLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInRvcnVzXCIsYXJndW1lbnRzKSx2b2lkIDA9PT1lKWU9NTA7ZWxzZSBpZighZSlyZXR1cm47aWYodm9pZCAwPT09dCl0PTEwO2Vsc2UgaWYoIXQpcmV0dXJuO3ZvaWQgMD09PXImJihyPTI0KSx2b2lkIDA9PT1pJiYoaT0xNik7dmFyIGQ9KHQvZSkudG9QcmVjaXNpb24oNCksbj1cInRvcnVzfFwiLmNvbmNhdChkLFwifFwiKS5jb25jYXQocixcInxcIikuY29uY2F0KGkpO2lmKCF0aGlzLl9yZW5kZXJlci5nZW9tZXRyeUluSGFzaChuKSl7dmFyIGE9bmV3IEUuZGVmYXVsdC5HZW9tZXRyeShyLGksZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPD10aGlzLmRldGFpbFk7ZSsrKWZvcih2YXIgdD1lL3RoaXMuZGV0YWlsWSxyPTIqTWF0aC5QSSp0LGk9TWF0aC5jb3Mociksbj1NYXRoLnNpbihyKSxhPTErZCppLG89MDtvPD10aGlzLmRldGFpbFg7bysrKXt2YXIgcz1vL3RoaXMuZGV0YWlsWCxsPTIqTWF0aC5QSSpzLHU9TWF0aC5jb3MobCksaD1NYXRoLnNpbihsKSxjPW5ldyBFLmRlZmF1bHQuVmVjdG9yKGEqdSxhKmgsZCpuKSxmPW5ldyBFLmRlZmF1bHQuVmVjdG9yKGkqdSxpKmgsbik7dGhpcy52ZXJ0aWNlcy5wdXNoKGMpLHRoaXMudmVydGV4Tm9ybWFscy5wdXNoKGYpLHRoaXMudXZzLnB1c2gocyx0KX19KTthLmNvbXB1dGVGYWNlcygpLHI8PTI0JiZpPD0xNj9hLl9tYWtlVHJpYW5nbGVFZGdlcygpLl9lZGdlc1RvVmVydGljZXMoKTp0aGlzLl9yZW5kZXJlci5fZG9TdHJva2UmJmNvbnNvbGUubG9nKFwiQ2Fubm90IGRyYXcgc3Ryb2tlcyBvbiB0b3J1cyBvYmplY3Qgd2l0aCBtb3JlIHRoYW4gMjQgZGV0YWlsWCBvciAxNiBkZXRhaWxZXCIpLHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUJ1ZmZlcnMobixhKX1yZXR1cm4gdGhpcy5fcmVuZGVyZXIuZHJhd0J1ZmZlcnNTY2FsZWQobixlLGUsZSksdGhpc30sRS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKGUsdCxyKXt2b2lkIDA9PT1yJiYocj0wKTt2YXIgaT1bXTtyZXR1cm4gaS5wdXNoKG5ldyBFLmRlZmF1bHQuVmVjdG9yKGUsdCxyKSksdGhpcy5fZHJhd1BvaW50cyhpLHRoaXMuaW1tZWRpYXRlTW9kZS5idWZmZXJzLnBvaW50KSx0aGlzfSxFLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUudHJpYW5nbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxyPWVbMV0saT1lWzJdLG49ZVszXSxhPWVbNF0sbz1lWzVdO2lmKCF0aGlzLmdlb21ldHJ5SW5IYXNoKFwidHJpXCIpKXt2YXIgcz1uZXcgRS5kZWZhdWx0Lkdlb21ldHJ5KDEsMSxmdW5jdGlvbigpe3ZhciBlPVtdO2UucHVzaChuZXcgRS5kZWZhdWx0LlZlY3RvcigwLDAsMCkpLGUucHVzaChuZXcgRS5kZWZhdWx0LlZlY3RvcigwLDEsMCkpLGUucHVzaChuZXcgRS5kZWZhdWx0LlZlY3RvcigxLDAsMCkpLHRoaXMuc3Ryb2tlSW5kaWNlcz1bWzAsMV0sWzEsMl0sWzIsMF1dLHRoaXMudmVydGljZXM9ZSx0aGlzLmZhY2VzPVtbMCwxLDJdXSx0aGlzLnV2cz1bMCwwLDAsMSwxLDFdfSk7cy5fbWFrZVRyaWFuZ2xlRWRnZXMoKS5fZWRnZXNUb1ZlcnRpY2VzKCkscy5jb21wdXRlTm9ybWFscygpLHRoaXMuY3JlYXRlQnVmZmVycyhcInRyaVwiLHMpfXZhciBsPXRoaXMudU1WTWF0cml4LmNvcHkoKTt0cnl7dmFyIHU9bmV3IEUuZGVmYXVsdC5NYXRyaXgoW2ktdCxuLXIsMCwwLGEtdCxvLXIsMCwwLDAsMCwxLDAsdCxyLDAsMV0pLm11bHQodGhpcy51TVZNYXRyaXgpO3RoaXMudU1WTWF0cml4PXUsdGhpcy5kcmF3QnVmZmVycyhcInRyaVwiKX1maW5hbGx5e3RoaXMudU1WTWF0cml4PWx9cmV0dXJuIHRoaXN9LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5lbGxpcHNlPWZ1bmN0aW9uKGUpe3RoaXMuYXJjKGVbMF0sZVsxXSxlWzJdLGVbM10sMCxkLlRXT19QSSxkLk9QRU4sZVs0XSl9LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5hcmM9ZnVuY3Rpb24oZSl7dmFyIHQscj1lLGk9YXJndW1lbnRzWzFdLG49YXJndW1lbnRzWzJdLGE9YXJndW1lbnRzWzNdLG89YXJndW1lbnRzWzRdLHM9YXJndW1lbnRzWzVdLGw9YXJndW1lbnRzWzZdLHU9YXJndW1lbnRzWzddfHwyNTtpZih0PU1hdGguYWJzKHMtbyk+PWQuVFdPX1BJP1wiXCIuY29uY2F0KFwiZWxsaXBzZVwiLFwifFwiKS5jb25jYXQodSxcInxcIik6XCJcIi5jb25jYXQoXCJhcmNcIixcInxcIikuY29uY2F0KG8sXCJ8XCIpLmNvbmNhdChzLFwifFwiKS5jb25jYXQobCxcInxcIikuY29uY2F0KHUsXCJ8XCIpLCF0aGlzLmdlb21ldHJ5SW5IYXNoKHQpKXt2YXIgaD1uZXcgRS5kZWZhdWx0Lkdlb21ldHJ5KHUsMSxmdW5jdGlvbigpe2lmKHRoaXMuc3Ryb2tlSW5kaWNlcz1bXSxvLnRvRml4ZWQoMTApIT09cy50b0ZpeGVkKDEwKSl7bCE9PWQuUElFJiZ2b2lkIDAhPT1sfHwodGhpcy52ZXJ0aWNlcy5wdXNoKG5ldyBFLmRlZmF1bHQuVmVjdG9yKC41LC41LDApKSx0aGlzLnV2cy5wdXNoKFsuNSwuNV0pKTtmb3IodmFyIGU9MDtlPD11O2UrKyl7dmFyIHQ9KHMtbykqKGUvdSkrbyxyPS41K01hdGguY29zKHQpLzIsaT0uNStNYXRoLnNpbih0KS8yO3RoaXMudmVydGljZXMucHVzaChuZXcgRS5kZWZhdWx0LlZlY3RvcihyLGksMCkpLHRoaXMudXZzLnB1c2goW3IsaV0pLGU8dS0xJiYodGhpcy5mYWNlcy5wdXNoKFswLGUrMSxlKzJdKSx0aGlzLnN0cm9rZUluZGljZXMucHVzaChbZSsxLGUrMl0pKX1zd2l0Y2gobCl7Y2FzZSBkLlBJRTp0aGlzLmZhY2VzLnB1c2goWzAsdGhpcy52ZXJ0aWNlcy5sZW5ndGgtMix0aGlzLnZlcnRpY2VzLmxlbmd0aC0xXSksdGhpcy5zdHJva2VJbmRpY2VzLnB1c2goWzAsMV0pLHRoaXMuc3Ryb2tlSW5kaWNlcy5wdXNoKFt0aGlzLnZlcnRpY2VzLmxlbmd0aC0yLHRoaXMudmVydGljZXMubGVuZ3RoLTFdKSx0aGlzLnN0cm9rZUluZGljZXMucHVzaChbMCx0aGlzLnZlcnRpY2VzLmxlbmd0aC0xXSk7YnJlYWs7Y2FzZSBkLkNIT1JEOnRoaXMuc3Ryb2tlSW5kaWNlcy5wdXNoKFswLDFdKSx0aGlzLnN0cm9rZUluZGljZXMucHVzaChbMCx0aGlzLnZlcnRpY2VzLmxlbmd0aC0xXSk7YnJlYWs7Y2FzZSBkLk9QRU46dGhpcy5zdHJva2VJbmRpY2VzLnB1c2goWzAsMV0pO2JyZWFrO2RlZmF1bHQ6dGhpcy5mYWNlcy5wdXNoKFswLHRoaXMudmVydGljZXMubGVuZ3RoLTIsdGhpcy52ZXJ0aWNlcy5sZW5ndGgtMV0pLHRoaXMuc3Ryb2tlSW5kaWNlcy5wdXNoKFt0aGlzLnZlcnRpY2VzLmxlbmd0aC0yLHRoaXMudmVydGljZXMubGVuZ3RoLTFdKX19fSk7aC5jb21wdXRlTm9ybWFscygpLHU8PTUwP2guX21ha2VUcmlhbmdsZUVkZ2VzKCkuX2VkZ2VzVG9WZXJ0aWNlcyhoKTp0aGlzLl9yZW5kZXJlci5fZG9TdHJva2UmJmNvbnNvbGUubG9nKFwiQ2Fubm90IHN0cm9rZSAke3NoYXBlfSB3aXRoIG1vcmUgdGhhbiA1MCBkZXRhaWxcIiksdGhpcy5jcmVhdGVCdWZmZXJzKHQsaCl9dmFyIGM9dGhpcy51TVZNYXRyaXguY29weSgpO3RyeXt0aGlzLnVNVk1hdHJpeC50cmFuc2xhdGUoW3IsaSwwXSksdGhpcy51TVZNYXRyaXguc2NhbGUobixhLDEpLHRoaXMuZHJhd0J1ZmZlcnModCl9ZmluYWxseXt0aGlzLnVNVk1hdHJpeD1jfXJldHVybiB0aGlzfSxFLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUucmVjdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9wSW5zdC5fZ2xBdHRyaWJ1dGVzLnBlclBpeGVsTGlnaHRpbmcscj1lWzBdLGk9ZVsxXSxuPWVbMl0sYT1lWzNdLG89ZVs0XXx8KHQ/MToyNCkscz1lWzVdfHwodD8xOjE2KSxsPVwicmVjdHxcIi5jb25jYXQobyxcInxcIikuY29uY2F0KHMpO2lmKCF0aGlzLmdlb21ldHJ5SW5IYXNoKGwpKXt2YXIgdT1uZXcgRS5kZWZhdWx0Lkdlb21ldHJ5KG8scyxmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8PXRoaXMuZGV0YWlsWTtlKyspZm9yKHZhciB0PWUvdGhpcy5kZXRhaWxZLHI9MDtyPD10aGlzLmRldGFpbFg7cisrKXt2YXIgaT1yL3RoaXMuZGV0YWlsWCxuPW5ldyBFLmRlZmF1bHQuVmVjdG9yKGksdCwwKTt0aGlzLnZlcnRpY2VzLnB1c2gobiksdGhpcy51dnMucHVzaChpLHQpfTA8byYmMDxzJiYodGhpcy5zdHJva2VJbmRpY2VzPVtbMCxvXSxbbywobysxKSoocysxKS0xXSxbKG8rMSkqKHMrMSktMSwobysxKSpzXSxbKG8rMSkqcywwXV0pfSk7dS5jb21wdXRlRmFjZXMoKS5jb21wdXRlTm9ybWFscygpLl9tYWtlVHJpYW5nbGVFZGdlcygpLl9lZGdlc1RvVmVydGljZXMoKSx0aGlzLmNyZWF0ZUJ1ZmZlcnMobCx1KX12YXIgaD10aGlzLnVNVk1hdHJpeC5jb3B5KCk7dHJ5e3RoaXMudU1WTWF0cml4LnRyYW5zbGF0ZShbcixpLDBdKSx0aGlzLnVNVk1hdHJpeC5zY2FsZShuLGEsMSksdGhpcy5kcmF3QnVmZmVycyhsKX1maW5hbGx5e3RoaXMudU1WTWF0cml4PWh9cmV0dXJuIHRoaXN9LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5xdWFkPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyxsLHUsaCxjKXt2YXIgZj1cInF1YWR8XCIuY29uY2F0KGUsXCJ8XCIpLmNvbmNhdCh0LFwifFwiKS5jb25jYXQocixcInxcIikuY29uY2F0KGksXCJ8XCIpLmNvbmNhdChuLFwifFwiKS5jb25jYXQoYSxcInxcIikuY29uY2F0KG8sXCJ8XCIpLmNvbmNhdChzLFwifFwiKS5jb25jYXQobCxcInxcIikuY29uY2F0KHUsXCJ8XCIpLmNvbmNhdChoLFwifFwiKS5jb25jYXQoYyk7aWYoIXRoaXMuZ2VvbWV0cnlJbkhhc2goZikpe3ZhciBkPW5ldyBFLmRlZmF1bHQuR2VvbWV0cnkoMiwyLGZ1bmN0aW9uKCl7dGhpcy52ZXJ0aWNlcy5wdXNoKG5ldyBFLmRlZmF1bHQuVmVjdG9yKGUsdCxyKSksdGhpcy52ZXJ0aWNlcy5wdXNoKG5ldyBFLmRlZmF1bHQuVmVjdG9yKGksbixhKSksdGhpcy52ZXJ0aWNlcy5wdXNoKG5ldyBFLmRlZmF1bHQuVmVjdG9yKG8scyxsKSksdGhpcy52ZXJ0aWNlcy5wdXNoKG5ldyBFLmRlZmF1bHQuVmVjdG9yKHUsaCxjKSksdGhpcy51dnMucHVzaCgwLDAsMSwwLDEsMSwwLDEpLHRoaXMuc3Ryb2tlSW5kaWNlcz1bWzAsMV0sWzEsMl0sWzIsM10sWzMsMF1dfSk7ZC5jb21wdXRlTm9ybWFscygpLl9tYWtlVHJpYW5nbGVFZGdlcygpLl9lZGdlc1RvVmVydGljZXMoKSxkLmZhY2VzPVtbMCwxLDJdLFsyLDMsMF1dLHRoaXMuY3JlYXRlQnVmZmVycyhmLGQpfXJldHVybiB0aGlzLmRyYXdCdWZmZXJzKGYpLHRoaXN9LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5iZXppZXI9ZnVuY3Rpb24oZSx0LHIsaSxuLGEsbyxzLGwsdSxoLGMpezg9PT1hcmd1bWVudHMubGVuZ3RoJiYoaD1zLHU9byxzPWEsbz1uLG49aSxpPXIscj1hPWw9Yz0wKTt2YXIgZj10aGlzLl9wSW5zdC5fYmV6aWVyRGV0YWlsfHwyMDt0aGlzLmJlZ2luU2hhcGUoKTtmb3IodmFyIGQ9MDtkPD1mO2QrKyl7dmFyIHA9TWF0aC5wb3coMS1kL2YsMyksbT1kL2YqMypNYXRoLnBvdygxLWQvZiwyKSx2PTMqTWF0aC5wb3coZC9mLDIpKigxLWQvZikseT1NYXRoLnBvdyhkL2YsMyk7dGhpcy52ZXJ0ZXgoZSpwK2kqbStvKnYrdSp5LHQqcCtuKm0rcyp2K2gqeSxyKnArYSptK2wqditjKnkpfXJldHVybiB0aGlzLmVuZFNoYXBlKCksdGhpc30sRS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmN1cnZlPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyxsLHUsaCxjKXs4PT09YXJndW1lbnRzLmxlbmd0aCYmKHU9byxoPXMsbz1uLHM9aSxuPWk9cixyPWE9bD1jPTApO3ZhciBmPXRoaXMuX3BJbnN0Ll9jdXJ2ZURldGFpbDt0aGlzLmJlZ2luU2hhcGUoKTtmb3IodmFyIGQ9MDtkPD1mO2QrKyl7dmFyIHA9LjUqTWF0aC5wb3coZC9mLDMpLG09LjUqTWF0aC5wb3coZC9mLDIpLHY9ZC9mKi41LHk9cCooMyppLWUtMypvK3UpK20qKDIqZS01KmkrNCpvLXUpK3YqKC1lK28pKzIqaSouNSxnPXAqKDMqbi10LTMqcytoKSttKigyKnQtNSpuKzQqcy1oKSt2KigtdCtzKSsyKm4qLjUsYj1wKigzKmEtci0zKmwrYykrbSooMipyLTUqYSs0KmwtYykrdiooLXIrbCkrMiphKi41O3RoaXMudmVydGV4KHksZyxiKX1yZXR1cm4gdGhpcy5lbmRTaGFwZSgpLHRoaXN9LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5saW5lPWZ1bmN0aW9uKCl7cmV0dXJuIDY9PT1hcmd1bWVudHMubGVuZ3RoPyh0aGlzLmJlZ2luU2hhcGUoZC5MSU5FUyksdGhpcy52ZXJ0ZXgoYXJndW1lbnRzLmxlbmd0aDw9MD92b2lkIDA6YXJndW1lbnRzWzBdLGFyZ3VtZW50cy5sZW5ndGg8PTE/dm9pZCAwOmFyZ3VtZW50c1sxXSxhcmd1bWVudHMubGVuZ3RoPD0yP3ZvaWQgMDphcmd1bWVudHNbMl0pLHRoaXMudmVydGV4KGFyZ3VtZW50cy5sZW5ndGg8PTM/dm9pZCAwOmFyZ3VtZW50c1szXSxhcmd1bWVudHMubGVuZ3RoPD00P3ZvaWQgMDphcmd1bWVudHNbNF0sYXJndW1lbnRzLmxlbmd0aDw9NT92b2lkIDA6YXJndW1lbnRzWzVdKSx0aGlzLmVuZFNoYXBlKCkpOjQ9PT1hcmd1bWVudHMubGVuZ3RoJiYodGhpcy5iZWdpblNoYXBlKGQuTElORVMpLHRoaXMudmVydGV4KGFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXSxhcmd1bWVudHMubGVuZ3RoPD0xP3ZvaWQgMDphcmd1bWVudHNbMV0sMCksdGhpcy52ZXJ0ZXgoYXJndW1lbnRzLmxlbmd0aDw9Mj92b2lkIDA6YXJndW1lbnRzWzJdLGFyZ3VtZW50cy5sZW5ndGg8PTM/dm9pZCAwOmFyZ3VtZW50c1szXSwwKSx0aGlzLmVuZFNoYXBlKCkpLHRoaXN9LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5iZXppZXJWZXJ0ZXg9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXgubGVuZ3RoKXRocm93IEVycm9yKFwidmVydGV4KCkgbXVzdCBiZSB1c2VkIG9uY2UgYmVmb3JlIGNhbGxpbmcgYmV6aWVyVmVydGV4KClcIik7dmFyIGUsdCxyLGksbixhPVtdLG89W10scz1bXSxsPWFyZ3VtZW50cy5sZW5ndGg7aWYoKGU9MCk9PT10aGlzLl9sb29rVXBUYWJsZUJlemllci5sZW5ndGh8fHRoaXMuX2x1dEJlemllckRldGFpbCE9PXRoaXMuX3BJbnN0Ll9jdXJ2ZURldGFpbCl7dGhpcy5fbG9va1VwVGFibGVCZXppZXI9W10sdGhpcy5fbHV0QmV6aWVyRGV0YWlsPXRoaXMuX3BJbnN0Ll9jdXJ2ZURldGFpbDtmb3IodmFyIHU9MS90aGlzLl9sdXRCZXppZXJEZXRhaWwsaD0wLGM9MSxmPTA7aDwxOyl7aWYoZT1wYXJzZUZsb2F0KGgudG9GaXhlZCg2KSksdGhpcy5fbG9va1VwVGFibGVCZXppZXJbZl09dGhpcy5fYmV6aWVyQ29lZmZpY2llbnRzKGUpLGMudG9GaXhlZCg2KT09PXUudG9GaXhlZCg2KSl7ZT1wYXJzZUZsb2F0KGMudG9GaXhlZCg2KSkrcGFyc2VGbG9hdChoLnRvRml4ZWQoNikpLCsrZix0aGlzLl9sb29rVXBUYWJsZUJlemllcltmXT10aGlzLl9iZXppZXJDb2VmZmljaWVudHMoZSk7YnJlYWt9aCs9dSxjLT11LCsrZn19dmFyIGQ9dGhpcy5fbG9va1VwVGFibGVCZXppZXIubGVuZ3RoO2lmKDY9PT1sKXtmb3IodGhpcy5pc0Jlemllcj0hMCxhPVt0aGlzLmltbWVkaWF0ZU1vZGUuX2JlemllclZlcnRleFswXSxhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0sYXJndW1lbnRzLmxlbmd0aDw9Mj92b2lkIDA6YXJndW1lbnRzWzJdLGFyZ3VtZW50cy5sZW5ndGg8PTQ/dm9pZCAwOmFyZ3VtZW50c1s0XV0sbz1bdGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXhbMV0sYXJndW1lbnRzLmxlbmd0aDw9MT92b2lkIDA6YXJndW1lbnRzWzFdLGFyZ3VtZW50cy5sZW5ndGg8PTM/dm9pZCAwOmFyZ3VtZW50c1szXSxhcmd1bWVudHMubGVuZ3RoPD01P3ZvaWQgMDphcmd1bWVudHNbNV1dLG49MDtuPGQ7bisrKXQ9YVswXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVswXSthWzFdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzFdK2FbMl0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMl0rYVszXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVszXSxyPW9bMF0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMF0rb1sxXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsxXStvWzJdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzJdK29bM10qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bM10sdGhpcy52ZXJ0ZXgodCxyKTt0aGlzLmltbWVkaWF0ZU1vZGUuX2JlemllclZlcnRleFswXT1hcmd1bWVudHMubGVuZ3RoPD00P3ZvaWQgMDphcmd1bWVudHNbNF0sdGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXhbMV09YXJndW1lbnRzLmxlbmd0aDw9NT92b2lkIDA6YXJndW1lbnRzWzVdfWVsc2UgaWYoOT09PWwpe2Zvcih0aGlzLmlzQmV6aWVyPSEwLGE9W3RoaXMuaW1tZWRpYXRlTW9kZS5fYmV6aWVyVmVydGV4WzBdLGFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXSxhcmd1bWVudHMubGVuZ3RoPD0zP3ZvaWQgMDphcmd1bWVudHNbM10sYXJndW1lbnRzLmxlbmd0aDw9Nj92b2lkIDA6YXJndW1lbnRzWzZdXSxvPVt0aGlzLmltbWVkaWF0ZU1vZGUuX2JlemllclZlcnRleFsxXSxhcmd1bWVudHMubGVuZ3RoPD0xP3ZvaWQgMDphcmd1bWVudHNbMV0sYXJndW1lbnRzLmxlbmd0aDw9ND92b2lkIDA6YXJndW1lbnRzWzRdLGFyZ3VtZW50cy5sZW5ndGg8PTc/dm9pZCAwOmFyZ3VtZW50c1s3XV0scz1bdGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXhbMl0sYXJndW1lbnRzLmxlbmd0aDw9Mj92b2lkIDA6YXJndW1lbnRzWzJdLGFyZ3VtZW50cy5sZW5ndGg8PTU/dm9pZCAwOmFyZ3VtZW50c1s1XSxhcmd1bWVudHMubGVuZ3RoPD04P3ZvaWQgMDphcmd1bWVudHNbOF1dLG49MDtuPGQ7bisrKXQ9YVswXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVswXSthWzFdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzFdK2FbMl0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMl0rYVszXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVszXSxyPW9bMF0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMF0rb1sxXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsxXStvWzJdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzJdK29bM10qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bM10saT1zWzBdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzBdK3NbMV0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMV0rc1syXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsyXStzWzNdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzNdLHRoaXMudmVydGV4KHQscixpKTt0aGlzLmltbWVkaWF0ZU1vZGUuX2JlemllclZlcnRleFswXT1hcmd1bWVudHMubGVuZ3RoPD02P3ZvaWQgMDphcmd1bWVudHNbNl0sdGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXhbMV09YXJndW1lbnRzLmxlbmd0aDw9Nz92b2lkIDA6YXJndW1lbnRzWzddLHRoaXMuaW1tZWRpYXRlTW9kZS5fYmV6aWVyVmVydGV4WzJdPWFyZ3VtZW50cy5sZW5ndGg8PTg/dm9pZCAwOmFyZ3VtZW50c1s4XX19LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5xdWFkcmF0aWNWZXJ0ZXg9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5pbW1lZGlhdGVNb2RlLl9xdWFkcmF0aWNWZXJ0ZXgubGVuZ3RoKXRocm93IEVycm9yKFwidmVydGV4KCkgbXVzdCBiZSB1c2VkIG9uY2UgYmVmb3JlIGNhbGxpbmcgcXVhZHJhdGljVmVydGV4KClcIik7dmFyIGUsdCxyLGksbixhPVtdLG89W10scz1bXSxsPWFyZ3VtZW50cy5sZW5ndGg7aWYoKGU9MCk9PT10aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpYy5sZW5ndGh8fHRoaXMuX2x1dFF1YWRyYXRpY0RldGFpbCE9PXRoaXMuX3BJbnN0Ll9jdXJ2ZURldGFpbCl7dGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWM9W10sdGhpcy5fbHV0UXVhZHJhdGljRGV0YWlsPXRoaXMuX3BJbnN0Ll9jdXJ2ZURldGFpbDtmb3IodmFyIHU9MS90aGlzLl9sdXRRdWFkcmF0aWNEZXRhaWwsaD0wLGM9MSxmPTA7aDwxOyl7aWYoZT1wYXJzZUZsb2F0KGgudG9GaXhlZCg2KSksdGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWNbZl09dGhpcy5fcXVhZHJhdGljQ29lZmZpY2llbnRzKGUpLGMudG9GaXhlZCg2KT09PXUudG9GaXhlZCg2KSl7ZT1wYXJzZUZsb2F0KGMudG9GaXhlZCg2KSkrcGFyc2VGbG9hdChoLnRvRml4ZWQoNikpLCsrZix0aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpY1tmXT10aGlzLl9xdWFkcmF0aWNDb2VmZmljaWVudHMoZSk7YnJlYWt9aCs9dSxjLT11LCsrZn19dmFyIGQ9dGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWMubGVuZ3RoO2lmKDQ9PT1sKXtmb3IodGhpcy5pc1F1YWRyYXRpYz0hMCxhPVt0aGlzLmltbWVkaWF0ZU1vZGUuX3F1YWRyYXRpY1ZlcnRleFswXSxhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0sYXJndW1lbnRzLmxlbmd0aDw9Mj92b2lkIDA6YXJndW1lbnRzWzJdXSxvPVt0aGlzLmltbWVkaWF0ZU1vZGUuX3F1YWRyYXRpY1ZlcnRleFsxXSxhcmd1bWVudHMubGVuZ3RoPD0xP3ZvaWQgMDphcmd1bWVudHNbMV0sYXJndW1lbnRzLmxlbmd0aDw9Mz92b2lkIDA6YXJndW1lbnRzWzNdXSxuPTA7bjxkO24rKyl0PWFbMF0qdGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWNbbl1bMF0rYVsxXSp0aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpY1tuXVsxXSthWzJdKnRoaXMuX2xvb2tVcFRhYmxlUXVhZHJhdGljW25dWzJdLHI9b1swXSp0aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpY1tuXVswXStvWzFdKnRoaXMuX2xvb2tVcFRhYmxlUXVhZHJhdGljW25dWzFdK29bMl0qdGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWNbbl1bMl0sdGhpcy52ZXJ0ZXgodCxyKTt0aGlzLmltbWVkaWF0ZU1vZGUuX3F1YWRyYXRpY1ZlcnRleFswXT1hcmd1bWVudHMubGVuZ3RoPD0yP3ZvaWQgMDphcmd1bWVudHNbMl0sdGhpcy5pbW1lZGlhdGVNb2RlLl9xdWFkcmF0aWNWZXJ0ZXhbMV09YXJndW1lbnRzLmxlbmd0aDw9Mz92b2lkIDA6YXJndW1lbnRzWzNdfWVsc2UgaWYoNj09PWwpe2Zvcih0aGlzLmlzUXVhZHJhdGljPSEwLGE9W3RoaXMuaW1tZWRpYXRlTW9kZS5fcXVhZHJhdGljVmVydGV4WzBdLGFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXSxhcmd1bWVudHMubGVuZ3RoPD0zP3ZvaWQgMDphcmd1bWVudHNbM11dLG89W3RoaXMuaW1tZWRpYXRlTW9kZS5fcXVhZHJhdGljVmVydGV4WzFdLGFyZ3VtZW50cy5sZW5ndGg8PTE/dm9pZCAwOmFyZ3VtZW50c1sxXSxhcmd1bWVudHMubGVuZ3RoPD00P3ZvaWQgMDphcmd1bWVudHNbNF1dLHM9W3RoaXMuaW1tZWRpYXRlTW9kZS5fcXVhZHJhdGljVmVydGV4WzJdLGFyZ3VtZW50cy5sZW5ndGg8PTI/dm9pZCAwOmFyZ3VtZW50c1syXSxhcmd1bWVudHMubGVuZ3RoPD01P3ZvaWQgMDphcmd1bWVudHNbNV1dLG49MDtuPGQ7bisrKXQ9YVswXSp0aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpY1tuXVswXSthWzFdKnRoaXMuX2xvb2tVcFRhYmxlUXVhZHJhdGljW25dWzFdK2FbMl0qdGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWNbbl1bMl0scj1vWzBdKnRoaXMuX2xvb2tVcFRhYmxlUXVhZHJhdGljW25dWzBdK29bMV0qdGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWNbbl1bMV0rb1syXSp0aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpY1tuXVsyXSxpPXNbMF0qdGhpcy5fbG9va1VwVGFibGVRdWFkcmF0aWNbbl1bMF0rc1sxXSp0aGlzLl9sb29rVXBUYWJsZVF1YWRyYXRpY1tuXVsxXStzWzJdKnRoaXMuX2xvb2tVcFRhYmxlUXVhZHJhdGljW25dWzJdLHRoaXMudmVydGV4KHQscixpKTt0aGlzLmltbWVkaWF0ZU1vZGUuX3F1YWRyYXRpY1ZlcnRleFswXT1hcmd1bWVudHMubGVuZ3RoPD0zP3ZvaWQgMDphcmd1bWVudHNbM10sdGhpcy5pbW1lZGlhdGVNb2RlLl9xdWFkcmF0aWNWZXJ0ZXhbMV09YXJndW1lbnRzLmxlbmd0aDw9ND92b2lkIDA6YXJndW1lbnRzWzRdLHRoaXMuaW1tZWRpYXRlTW9kZS5fcXVhZHJhdGljVmVydGV4WzJdPWFyZ3VtZW50cy5sZW5ndGg8PTU/dm9pZCAwOmFyZ3VtZW50c1s1XX19LEUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5jdXJ2ZVZlcnRleD1mdW5jdGlvbigpe3ZhciBlLHQscixpLG4sYT1bXSxvPVtdLHM9W10sbD1hcmd1bWVudHMubGVuZ3RoO2lmKChlPTApPT09dGhpcy5fbG9va1VwVGFibGVCZXppZXIubGVuZ3RofHx0aGlzLl9sdXRCZXppZXJEZXRhaWwhPT10aGlzLl9wSW5zdC5fY3VydmVEZXRhaWwpe3RoaXMuX2xvb2tVcFRhYmxlQmV6aWVyPVtdLHRoaXMuX2x1dEJlemllckRldGFpbD10aGlzLl9wSW5zdC5fY3VydmVEZXRhaWw7Zm9yKHZhciB1PTEvdGhpcy5fbHV0QmV6aWVyRGV0YWlsLGg9MCxjPTEsZj0wO2g8MTspe2lmKGU9cGFyc2VGbG9hdChoLnRvRml4ZWQoNikpLHRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW2ZdPXRoaXMuX2JlemllckNvZWZmaWNpZW50cyhlKSxjLnRvRml4ZWQoNik9PT11LnRvRml4ZWQoNikpe2U9cGFyc2VGbG9hdChjLnRvRml4ZWQoNikpK3BhcnNlRmxvYXQoaC50b0ZpeGVkKDYpKSwrK2YsdGhpcy5fbG9va1VwVGFibGVCZXppZXJbZl09dGhpcy5fYmV6aWVyQ29lZmZpY2llbnRzKGUpO2JyZWFrfWgrPXUsYy09dSwrK2Z9fXZhciBkPXRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyLmxlbmd0aDtpZigyPT09bCl7aWYodGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleC5wdXNoKGFyZ3VtZW50cy5sZW5ndGg8PTA/dm9pZCAwOmFyZ3VtZW50c1swXSksdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleC5wdXNoKGFyZ3VtZW50cy5sZW5ndGg8PTE/dm9pZCAwOmFyZ3VtZW50c1sxXSksOD09PXRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXgubGVuZ3RoKXtmb3IodGhpcy5pc0N1cnZlPSEwLGE9dGhpcy5fYmV6aWVyVG9DYXRtdWxsKFt0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzBdLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbMl0sdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleFs0XSx0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzZdXSksbz10aGlzLl9iZXppZXJUb0NhdG11bGwoW3RoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbMV0sdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleFszXSx0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzVdLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbN11dKSxuPTA7bjxkO24rKyl0PWFbMF0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMF0rYVsxXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsxXSthWzJdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzJdK2FbM10qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bM10scj1vWzBdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzBdK29bMV0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMV0rb1syXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsyXStvWzNdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzNdLHRoaXMudmVydGV4KHQscik7Zm9yKG49MDtuPGw7bisrKXRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXguc2hpZnQoKX19ZWxzZSBpZigzPT09bCYmKHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXgucHVzaChhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0pLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXgucHVzaChhcmd1bWVudHMubGVuZ3RoPD0xP3ZvaWQgMDphcmd1bWVudHNbMV0pLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXgucHVzaChhcmd1bWVudHMubGVuZ3RoPD0yP3ZvaWQgMDphcmd1bWVudHNbMl0pLDEyPT09dGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleC5sZW5ndGgpKXtmb3IodGhpcy5pc0N1cnZlPSEwLGE9dGhpcy5fYmV6aWVyVG9DYXRtdWxsKFt0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzBdLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbM10sdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleFs2XSx0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzldXSksbz10aGlzLl9iZXppZXJUb0NhdG11bGwoW3RoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbMV0sdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleFs0XSx0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzddLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbMTBdXSkscz10aGlzLl9iZXppZXJUb0NhdG11bGwoW3RoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbMl0sdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleFs1XSx0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4WzhdLHRoaXMuaW1tZWRpYXRlTW9kZS5fY3VydmVWZXJ0ZXhbMTFdXSksbj0wO248ZDtuKyspdD1hWzBdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzBdK2FbMV0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMV0rYVsyXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsyXSthWzNdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzNdLHI9b1swXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVswXStvWzFdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzFdK29bMl0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMl0rb1szXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVszXSxpPXNbMF0qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bMF0rc1sxXSp0aGlzLl9sb29rVXBUYWJsZUJlemllcltuXVsxXStzWzJdKnRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyW25dWzJdK3NbM10qdGhpcy5fbG9va1VwVGFibGVCZXppZXJbbl1bM10sdGhpcy52ZXJ0ZXgodCxyLGkpO2ZvcihuPTA7bjxsO24rKyl0aGlzLmltbWVkaWF0ZU1vZGUuX2N1cnZlVmVydGV4LnNoaWZ0KCl9fSxFLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuaW1hZ2U9ZnVuY3Rpb24oZSx0LHIsaSxuLGEsbyxzLGwpe3RoaXMuX2lzRXJhc2luZyYmdGhpcy5ibGVuZE1vZGUodGhpcy5fY2FjaGVkQmxlbmRNb2RlKSx0aGlzLl9wSW5zdC5wdXNoKCksdGhpcy5fcEluc3Qubm9MaWdodHMoKSx0aGlzLl9wSW5zdC50ZXh0dXJlKGUpLHRoaXMuX3BJbnN0LnRleHR1cmVNb2RlKGQuTk9STUFMKTt2YXIgdT0wO3Q8PWUud2lkdGgmJih1PXQvZS53aWR0aCk7dmFyIGg9MTt0K2k8PWUud2lkdGgmJihoPSh0K2kpL2Uud2lkdGgpO3ZhciBjPTA7cjw9ZS5oZWlnaHQmJihjPXIvZS5oZWlnaHQpO3ZhciBmPTE7cituPD1lLmhlaWdodCYmKGY9KHIrbikvZS5oZWlnaHQpLHRoaXMuYmVnaW5TaGFwZSgpLHRoaXMudmVydGV4KGEsbywwLHUsYyksdGhpcy52ZXJ0ZXgoYStzLG8sMCxoLGMpLHRoaXMudmVydGV4KGErcyxvK2wsMCxoLGYpLHRoaXMudmVydGV4KGEsbytsLDAsdSxmKSx0aGlzLmVuZFNoYXBlKGQuQ0xPU0UpLHRoaXMuX3BJbnN0LnBvcCgpLHRoaXMuX2lzRXJhc2luZyYmdGhpcy5ibGVuZE1vZGUoZC5SRU1PVkUpfTt2YXIgbj1FLmRlZmF1bHQ7ci5kZWZhdWx0PW59LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuLi9jb3JlL21haW5cIjozNixcIi4vcDUuR2VvbWV0cnlcIjo4NX1dLDgwOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxmPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxuPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29yZS9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHMoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9Zi5kZWZhdWx0LnByb3RvdHlwZS5vcmJpdENvbnRyb2w9ZnVuY3Rpb24oZSx0LHIpe2lmKHRoaXMuX2Fzc2VydDNkKFwib3JiaXRDb250cm9sXCIpLGYuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwib3JiaXRDb250cm9sXCIsYXJndW1lbnRzKSx0aGlzLm1vdXNlWDx0aGlzLndpZHRoJiYwPHRoaXMubW91c2VYJiZ0aGlzLm1vdXNlWTx0aGlzLmhlaWdodCYmMDx0aGlzLm1vdXNlWSl7dmFyIGk9dGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYTt2b2lkIDA9PT1lJiYoZT0xKSx2b2lkIDA9PT10JiYodD1lKSx2b2lkIDA9PT1yJiYocj0uNSksITAhPT10aGlzLmNvbnRleHRNZW51RGlzYWJsZWQmJih0aGlzLmNhbnZhcy5vbmNvbnRleHRtZW51PWZ1bmN0aW9uKCl7cmV0dXJuITF9LHRoaXMuX3NldFByb3BlcnR5KFwiY29udGV4dE1lbnVEaXNhYmxlZFwiLCEwKSksITAhPT10aGlzLndoZWVsRGVmYXVsdERpc2FibGVkJiYodGhpcy5jYW52YXMub253aGVlbD1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLl9zZXRQcm9wZXJ0eShcIndoZWVsRGVmYXVsdERpc2FibGVkXCIsITApKTt2YXIgbj10aGlzLmhlaWdodDx0aGlzLndpZHRoP3RoaXMuaGVpZ2h0OnRoaXMud2lkdGg7aWYodGhpcy5fbW91c2VXaGVlbERlbHRhWSE9PXRoaXMuX3Btb3VzZVdoZWVsRGVsdGFZJiYoMDx0aGlzLl9tb3VzZVdoZWVsRGVsdGFZP3RoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuX29yYml0KDAsMCxyKm4pOnRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuX29yYml0KDAsMCwtcipuKSksdGhpcy5tb3VzZUlzUHJlc3NlZClpZih0aGlzLm1vdXNlQnV0dG9uPT09dGhpcy5MRUZUKXt2YXIgYT0tZSoodGhpcy5tb3VzZVgtdGhpcy5wbW91c2VYKS9uLG89dCoodGhpcy5tb3VzZVktdGhpcy5wbW91c2VZKS9uO3RoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuX29yYml0KGEsbywwKX1lbHNlIGlmKHRoaXMubW91c2VCdXR0b249PT10aGlzLlJJR0hUKXt2YXIgcz1pLl9nZXRMb2NhbEF4ZXMoKSxsPU1hdGguc3FydChzLnhbMF0qcy54WzBdK3MueFsyXSpzLnhbMl0pOzAhPT1sJiYocy54WzBdLz1sLHMueFsyXS89bCk7dmFyIHU9TWF0aC5zcXJ0KHMueVswXSpzLnlbMF0rcy55WzJdKnMueVsyXSk7MCE9PXUmJihzLnlbMF0vPXUscy55WzJdLz11KTt2YXIgaD0tMSplKih0aGlzLm1vdXNlWC10aGlzLnBtb3VzZVgpLGM9LTEqdCoodGhpcy5tb3VzZVktdGhpcy5wbW91c2VZKTtpLnNldFBvc2l0aW9uKGkuZXllWCtoKnMueFswXStjKnMuelswXSxpLmV5ZVksaS5leWVaK2gqcy54WzJdK2Mqcy56WzJdKX1yZXR1cm4gdGhpc319LGYuZGVmYXVsdC5wcm90b3R5cGUuZGVidWdNb2RlPWZ1bmN0aW9uKCl7dGhpcy5fYXNzZXJ0M2QoXCJkZWJ1Z01vZGVcIik7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07Zi5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJkZWJ1Z01vZGVcIix0KTtmb3IodmFyIGk9dGhpcy5fcmVnaXN0ZXJlZE1ldGhvZHMucG9zdC5sZW5ndGgtMTswPD1pO2ktLSl0aGlzLl9yZWdpc3RlcmVkTWV0aG9kcy5wb3N0W2ldLnRvU3RyaW5nKCkhPT10aGlzLl9ncmlkKCkudG9TdHJpbmcoKSYmdGhpcy5fcmVnaXN0ZXJlZE1ldGhvZHMucG9zdFtpXS50b1N0cmluZygpIT09dGhpcy5fYXhlc0ljb24oKS50b1N0cmluZygpfHx0aGlzLl9yZWdpc3RlcmVkTWV0aG9kcy5wb3N0LnNwbGljZShpLDEpO3RbMF09PT1uLkdSSUQ/dGhpcy5yZWdpc3Rlck1ldGhvZChcInBvc3RcIix0aGlzLl9ncmlkLmNhbGwodGhpcyx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0pKTp0WzBdPT09bi5BWEVTP3RoaXMucmVnaXN0ZXJNZXRob2QoXCJwb3N0XCIsdGhpcy5fYXhlc0ljb24uY2FsbCh0aGlzLHRbMV0sdFsyXSx0WzNdLHRbNF0pKToodGhpcy5yZWdpc3Rlck1ldGhvZChcInBvc3RcIix0aGlzLl9ncmlkLmNhbGwodGhpcyx0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0pKSx0aGlzLnJlZ2lzdGVyTWV0aG9kKFwicG9zdFwiLHRoaXMuX2F4ZXNJY29uLmNhbGwodGhpcyx0WzVdLHRbNl0sdFs3XSx0WzhdKSkpfSxmLmRlZmF1bHQucHJvdG90eXBlLm5vRGVidWdNb2RlPWZ1bmN0aW9uKCl7dGhpcy5fYXNzZXJ0M2QoXCJub0RlYnVnTW9kZVwiKTtmb3IodmFyIGU9dGhpcy5fcmVnaXN0ZXJlZE1ldGhvZHMucG9zdC5sZW5ndGgtMTswPD1lO2UtLSl0aGlzLl9yZWdpc3RlcmVkTWV0aG9kcy5wb3N0W2VdLnRvU3RyaW5nKCkhPT10aGlzLl9ncmlkKCkudG9TdHJpbmcoKSYmdGhpcy5fcmVnaXN0ZXJlZE1ldGhvZHMucG9zdFtlXS50b1N0cmluZygpIT09dGhpcy5fYXhlc0ljb24oKS50b1N0cmluZygpfHx0aGlzLl9yZWdpc3RlcmVkTWV0aG9kcy5wb3N0LnNwbGljZShlLDEpfSxmLmRlZmF1bHQucHJvdG90eXBlLl9ncmlkPWZ1bmN0aW9uKGUscixpLG4sYSl7dm9pZCAwPT09ZSYmKGU9dGhpcy53aWR0aC8yKSx2b2lkIDA9PT1yJiYocj1NYXRoLnJvdW5kKGUvMzApPDQ/NDpNYXRoLnJvdW5kKGUvMzApKSx2b2lkIDA9PT1pJiYoaT0wKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1hJiYoYT0wKTt2YXIgbz1lL3Iscz1lLzI7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5wdXNoKCksdGhpcy5zdHJva2UoMjU1KnRoaXMuX3JlbmRlcmVyLmN1clN0cm9rZUNvbG9yWzBdLDI1NSp0aGlzLl9yZW5kZXJlci5jdXJTdHJva2VDb2xvclsxXSwyNTUqdGhpcy5fcmVuZGVyZXIuY3VyU3Ryb2tlQ29sb3JbMl0pLHRoaXMuX3JlbmRlcmVyLnVNVk1hdHJpeC5zZXQodGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFswXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzFdLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbMl0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFszXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzRdLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbNV0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFs2XSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzddLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbOF0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFs5XSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzEwXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzExXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzEyXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzEzXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzE0XSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzE1XSk7Zm9yKHZhciBlPTA7ZTw9cjtlKyspdGhpcy5iZWdpblNoYXBlKHRoaXMuTElORVMpLHRoaXMudmVydGV4KC1zK2ksbixlKm8tcythKSx0aGlzLnZlcnRleCgrcytpLG4sZSpvLXMrYSksdGhpcy5lbmRTaGFwZSgpO2Zvcih2YXIgdD0wO3Q8PXI7dCsrKXRoaXMuYmVnaW5TaGFwZSh0aGlzLkxJTkVTKSx0aGlzLnZlcnRleCh0Km8tcytpLG4sLXMrYSksdGhpcy52ZXJ0ZXgodCpvLXMraSxuLCtzK2EpLHRoaXMuZW5kU2hhcGUoKTt0aGlzLnBvcCgpfX0sZi5kZWZhdWx0LnByb3RvdHlwZS5fYXhlc0ljb249ZnVuY3Rpb24oZSx0LHIsaSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPTQwPHRoaXMud2lkdGgvMjA/dGhpcy53aWR0aC8yMDo0MCksdm9pZCAwPT09dCYmKHQ9LXRoaXMud2lkdGgvNCksdm9pZCAwPT09ciYmKHI9dCksdm9pZCAwPT09aSYmKGk9dCksZnVuY3Rpb24oKXt0aGlzLnB1c2goKSx0aGlzLl9yZW5kZXJlci51TVZNYXRyaXguc2V0KHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbMF0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxXSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzJdLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbM10sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFs0XSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzVdLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbNl0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFs3XSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzhdLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbOV0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxMF0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxMV0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxMl0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxM10sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxNF0sdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxNV0pLHRoaXMuc3Ryb2tlV2VpZ2h0KDIpLHRoaXMuc3Ryb2tlKDI1NSwwLDApLHRoaXMuYmVnaW5TaGFwZSh0aGlzLkxJTkVTKSx0aGlzLnZlcnRleCh0LHIsaSksdGhpcy52ZXJ0ZXgodCtlLHIsaSksdGhpcy5lbmRTaGFwZSgpLHRoaXMuc3Ryb2tlKDAsMjU1LDApLHRoaXMuYmVnaW5TaGFwZSh0aGlzLkxJTkVTKSx0aGlzLnZlcnRleCh0LHIsaSksdGhpcy52ZXJ0ZXgodCxyK2UsaSksdGhpcy5lbmRTaGFwZSgpLHRoaXMuc3Ryb2tlKDAsMCwyNTUpLHRoaXMuYmVnaW5TaGFwZSh0aGlzLkxJTkVTKSx0aGlzLnZlcnRleCh0LHIsaSksdGhpcy52ZXJ0ZXgodCxyLGkrZSksdGhpcy5lbmRTaGFwZSgpLHRoaXMucG9wKCl9fTt2YXIgYT1mLmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuLi9jb3JlL21haW5cIjozNn1dLDgxOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxtPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTttLmRlZmF1bHQucHJvdG90eXBlLmFtYmllbnRMaWdodD1mdW5jdGlvbihlLHQscixpKXt0aGlzLl9hc3NlcnQzZChcImFtYmllbnRMaWdodFwiKSxtLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImFtYmllbnRMaWdodFwiLGFyZ3VtZW50cyk7dmFyIG49dGhpcy5jb2xvci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmFtYmllbnRMaWdodENvbG9ycy5wdXNoKG4uX2FycmF5WzBdLG4uX2FycmF5WzFdLG4uX2FycmF5WzJdKSx0aGlzLl9yZW5kZXJlci5fZW5hYmxlTGlnaHRpbmc9ITAsdGhpc30sbS5kZWZhdWx0LnByb3RvdHlwZS5zcGVjdWxhckNvbG9yPWZ1bmN0aW9uKGUsdCxyKXt0aGlzLl9hc3NlcnQzZChcInNwZWN1bGFyQ29sb3JcIiksbS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzcGVjdWxhckNvbG9yXCIsYXJndW1lbnRzKTt2YXIgaT10aGlzLmNvbG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuc3BlY3VsYXJDb2xvcnM9W2kuX2FycmF5WzBdLGkuX2FycmF5WzFdLGkuX2FycmF5WzJdXSx0aGlzfSxtLmRlZmF1bHQucHJvdG90eXBlLmRpcmVjdGlvbmFsTGlnaHQ9ZnVuY3Rpb24oZSx0LHIsaSxuLGEpe3ZhciBvLHMsbCx1O3RoaXMuX2Fzc2VydDNkKFwiZGlyZWN0aW9uYWxMaWdodFwiKSxtLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImRpcmVjdGlvbmFsTGlnaHRcIixhcmd1bWVudHMpLG89ZSBpbnN0YW5jZW9mIG0uZGVmYXVsdC5Db2xvcj9lOnRoaXMuY29sb3IoZSx0LHIpO3ZhciBoPWFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTFdO3U9XCJudW1iZXJcIj09dHlwZW9mIGg/KHM9YXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtM10sbD1hcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0yXSxhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXSk6KHM9aC54LGw9aC55LGgueik7dmFyIGM9TWF0aC5zcXJ0KHMqcytsKmwrdSp1KTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuZGlyZWN0aW9uYWxMaWdodERpcmVjdGlvbnMucHVzaChzL2MsbC9jLHUvYyksdGhpcy5fcmVuZGVyZXIuZGlyZWN0aW9uYWxMaWdodERpZmZ1c2VDb2xvcnMucHVzaChvLl9hcnJheVswXSxvLl9hcnJheVsxXSxvLl9hcnJheVsyXSksQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcy5fcmVuZGVyZXIuZGlyZWN0aW9uYWxMaWdodFNwZWN1bGFyQ29sb3JzLHRoaXMuX3JlbmRlcmVyLnNwZWN1bGFyQ29sb3JzKSx0aGlzLl9yZW5kZXJlci5fZW5hYmxlTGlnaHRpbmc9ITAsdGhpc30sbS5kZWZhdWx0LnByb3RvdHlwZS5wb2ludExpZ2h0PWZ1bmN0aW9uKGUsdCxyLGksbixhKXt2YXIgbyxzLGwsdTt0aGlzLl9hc3NlcnQzZChcInBvaW50TGlnaHRcIiksbS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJwb2ludExpZ2h0XCIsYXJndW1lbnRzKSxvPWUgaW5zdGFuY2VvZiBtLmRlZmF1bHQuQ29sb3I/ZTp0aGlzLmNvbG9yKGUsdCxyKTt2YXIgaD1hcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXTtyZXR1cm4gdT1cIm51bWJlclwiPT10eXBlb2YgaD8ocz1hcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0zXSxsPWFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTJdLGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTFdKToocz1oLngsbD1oLnksaC56KSx0aGlzLl9yZW5kZXJlci5wb2ludExpZ2h0UG9zaXRpb25zLnB1c2gocyxsLHUpLHRoaXMuX3JlbmRlcmVyLnBvaW50TGlnaHREaWZmdXNlQ29sb3JzLnB1c2goby5fYXJyYXlbMF0sby5fYXJyYXlbMV0sby5fYXJyYXlbMl0pLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMuX3JlbmRlcmVyLnBvaW50TGlnaHRTcGVjdWxhckNvbG9ycyx0aGlzLl9yZW5kZXJlci5zcGVjdWxhckNvbG9ycyksdGhpcy5fcmVuZGVyZXIuX2VuYWJsZUxpZ2h0aW5nPSEwLHRoaXN9LG0uZGVmYXVsdC5wcm90b3R5cGUubGlnaHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwibGlnaHRzXCIpLHRoaXMuYW1iaWVudExpZ2h0KDEyOCwxMjgsMTI4KSx0aGlzLmRpcmVjdGlvbmFsTGlnaHQoMTI4LDEyOCwxMjgsMCwwLC0xKSx0aGlzfSxtLmRlZmF1bHQucHJvdG90eXBlLmxpZ2h0RmFsbG9mZj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwibGlnaHRGYWxsb2ZmXCIpLG0uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibGlnaHRGYWxsb2ZmXCIsYXJndW1lbnRzKSxlPDAmJihlPTAsY29uc29sZS53YXJuKFwiVmFsdWUgb2YgY29uc3RhbnQgYXJndW1lbnQgaW4gbGlnaHRGYWxsb2ZmKCkgc2hvdWxkIGJlIG5ldmVyIGJlIG5lZ2F0aXZlLiBTZXQgdG8gMC5cIikpLHQ8MCYmKHQ9MCxjb25zb2xlLndhcm4oXCJWYWx1ZSBvZiBsaW5lYXIgYXJndW1lbnQgaW4gbGlnaHRGYWxsb2ZmKCkgc2hvdWxkIGJlIG5ldmVyIGJlIG5lZ2F0aXZlLiBTZXQgdG8gMC5cIikpLHI8MCYmKHI9MCxjb25zb2xlLndhcm4oXCJWYWx1ZSBvZiBxdWFkcmF0aWMgYXJndW1lbnQgaW4gbGlnaHRGYWxsb2ZmKCkgc2hvdWxkIGJlIG5ldmVyIGJlIG5lZ2F0aXZlLiBTZXQgdG8gMC5cIikpLDA9PT1lJiYwPT09dCYmMD09PXImJihlPTEsY29uc29sZS53YXJuKFwiRWl0aGVyIG9uZSBvZiB0aGUgdGhyZWUgYXJndW1lbnRzIGluIGxpZ2h0RmFsbG9mZigpIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gemVyby4gU2V0IGNvbnN0YW50IGFyZ3VtZW50IHRvIDEuXCIpKSx0aGlzLl9yZW5kZXJlci5jb25zdGFudEF0dGVudWF0aW9uPWUsdGhpcy5fcmVuZGVyZXIubGluZWFyQXR0ZW51YXRpb249dCx0aGlzLl9yZW5kZXJlci5xdWFkcmF0aWNBdHRlbnVhdGlvbj1yLHRoaXN9LG0uZGVmYXVsdC5wcm90b3R5cGUuc3BvdExpZ2h0PWZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyxsLHUsaCl7dmFyIGMsZixkO3RoaXMuX2Fzc2VydDNkKFwic3BvdExpZ2h0XCIpLG0uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic3BvdExpZ2h0XCIsYXJndW1lbnRzKTt2YXIgcD1hcmd1bWVudHMubGVuZ3RoO3N3aXRjaChwKXtjYXNlIDExOmNhc2UgMTA6Yz10aGlzLmNvbG9yKGUsdCxyKSxmPW5ldyBtLmRlZmF1bHQuVmVjdG9yKGksbixhKSxkPW5ldyBtLmRlZmF1bHQuVmVjdG9yKG8scyxsKTticmVhaztjYXNlIDk6ZSBpbnN0YW5jZW9mIG0uZGVmYXVsdC5Db2xvcj8oYz1lLGY9bmV3IG0uZGVmYXVsdC5WZWN0b3IodCxyLGkpLGQ9bmV3IG0uZGVmYXVsdC5WZWN0b3IobixhLG8pLHU9cyxoPWwpOmkgaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yPyhjPXRoaXMuY29sb3IoZSx0LHIpLGY9aSxkPW5ldyBtLmRlZmF1bHQuVmVjdG9yKG4sYSxvKSx1PXMsaD1sKTpvIGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3Rvcj8oYz10aGlzLmNvbG9yKGUsdCxyKSxmPW5ldyBtLmRlZmF1bHQuVmVjdG9yKGksbixhKSxkPW8sdT1zLGg9bCk6KGM9dGhpcy5jb2xvcihlLHQsciksZj1uZXcgbS5kZWZhdWx0LlZlY3RvcihpLG4sYSksZD1uZXcgbS5kZWZhdWx0LlZlY3RvcihvLHMsbCkpO2JyZWFrO2Nhc2UgODp1PShkPWUgaW5zdGFuY2VvZiBtLmRlZmF1bHQuQ29sb3I/KGM9ZSxmPW5ldyBtLmRlZmF1bHQuVmVjdG9yKHQscixpKSxuZXcgbS5kZWZhdWx0LlZlY3RvcihuLGEsbykpOmkgaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yPyhjPXRoaXMuY29sb3IoZSx0LHIpLGY9aSxuZXcgbS5kZWZhdWx0LlZlY3RvcihuLGEsbykpOihjPXRoaXMuY29sb3IoZSx0LHIpLGY9bmV3IG0uZGVmYXVsdC5WZWN0b3IoaSxuLGEpLG8pLHMpO2JyZWFrO2Nhc2UgNzplIGluc3RhbmNlb2YgbS5kZWZhdWx0LkNvbG9yJiZ0IGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3Rvcj8oYz1lLGY9dCxkPW5ldyBtLmRlZmF1bHQuVmVjdG9yKHIsaSxuKSx1PWEsaD1vKTplIGluc3RhbmNlb2YgbS5kZWZhdWx0LkNvbG9yJiZuIGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3Rvcj8oYz1lLGY9bmV3IG0uZGVmYXVsdC5WZWN0b3IodCxyLGkpLGQ9bix1PWEsaD1vKTppIGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3RvciYmbiBpbnN0YW5jZW9mIG0uZGVmYXVsdC5WZWN0b3I/KGM9dGhpcy5jb2xvcihlLHQsciksZj1pLGQ9bix1PWEsaD1vKTpkPWUgaW5zdGFuY2VvZiBtLmRlZmF1bHQuQ29sb3I/KGM9ZSxmPW5ldyBtLmRlZmF1bHQuVmVjdG9yKHQscixpKSxuZXcgbS5kZWZhdWx0LlZlY3RvcihuLGEsbykpOmkgaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yPyhjPXRoaXMuY29sb3IoZSx0LHIpLGY9aSxuZXcgbS5kZWZhdWx0LlZlY3RvcihuLGEsbykpOihjPXRoaXMuY29sb3IoZSx0LHIpLGY9bmV3IG0uZGVmYXVsdC5WZWN0b3IoaSxuLGEpLG8pO2JyZWFrO2Nhc2UgNjppIGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3RvciYmbiBpbnN0YW5jZW9mIG0uZGVmYXVsdC5WZWN0b3I/KGM9dGhpcy5jb2xvcihlLHQsciksZj1pLGQ9bix1PWEpOmUgaW5zdGFuY2VvZiBtLmRlZmF1bHQuQ29sb3ImJm4gaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yPyhjPWUsZj1uZXcgbS5kZWZhdWx0LlZlY3Rvcih0LHIsaSksZD1uLHU9YSk6ZSBpbnN0YW5jZW9mIG0uZGVmYXVsdC5Db2xvciYmdCBpbnN0YW5jZW9mIG0uZGVmYXVsdC5WZWN0b3ImJihjPWUsZj10LGQ9bmV3IG0uZGVmYXVsdC5WZWN0b3IocixpLG4pLHU9YSk7YnJlYWs7Y2FzZSA1OmUgaW5zdGFuY2VvZiBtLmRlZmF1bHQuQ29sb3ImJnQgaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yJiZyIGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3Rvcj8oYz1lLGY9dCxkPXIsdT1pLGg9bik6aSBpbnN0YW5jZW9mIG0uZGVmYXVsdC5WZWN0b3ImJm4gaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yPyhjPXRoaXMuY29sb3IoZSx0LHIpLGY9aSxkPW4pOmUgaW5zdGFuY2VvZiBtLmRlZmF1bHQuQ29sb3ImJm4gaW5zdGFuY2VvZiBtLmRlZmF1bHQuVmVjdG9yPyhjPWUsZj1uZXcgbS5kZWZhdWx0LlZlY3Rvcih0LHIsaSksZD1uKTplIGluc3RhbmNlb2YgbS5kZWZhdWx0LkNvbG9yJiZ0IGluc3RhbmNlb2YgbS5kZWZhdWx0LlZlY3RvciYmKGM9ZSxmPXQsZD1uZXcgbS5kZWZhdWx0LlZlY3RvcihyLGksbikpO2JyZWFrO2Nhc2UgNDpjPWUsZj10LGQ9cix1PWk7YnJlYWs7Y2FzZSAzOmM9ZSxmPXQsZD1yO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIGNvbnNvbGUud2FybihcIlNvcnJ5LCBpbnB1dCBmb3Igc3BvdGxpZ2h0KCkgaXMgbm90IGluIHByZXNjcmliZWQgZm9ybWF0LiBUb28gXCIuY29uY2F0KHA8Mz9cImZld1wiOlwibWFueVwiLFwiIGFyZ3VtZW50cyB3ZXJlIHByb3ZpZGVkXCIpKSx0aGlzfXJldHVybiB0aGlzLl9yZW5kZXJlci5zcG90TGlnaHREaWZmdXNlQ29sb3JzLnB1c2goYy5fYXJyYXlbMF0sYy5fYXJyYXlbMV0sYy5fYXJyYXlbMl0pLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMuX3JlbmRlcmVyLnNwb3RMaWdodFNwZWN1bGFyQ29sb3JzLHRoaXMuX3JlbmRlcmVyLnNwZWN1bGFyQ29sb3JzKSx0aGlzLl9yZW5kZXJlci5zcG90TGlnaHRQb3NpdGlvbnMucHVzaChmLngsZi55LGYueiksZC5ub3JtYWxpemUoKSx0aGlzLl9yZW5kZXJlci5zcG90TGlnaHREaXJlY3Rpb25zLnB1c2goZC54LGQueSxkLnopLHZvaWQgMD09PXUmJih1PU1hdGguUEkvMyksdm9pZCAwIT09aCYmaDwxPyhoPTEsY29uc29sZS53YXJuKFwiVmFsdWUgb2YgY29uY2VudHJhdGlvbiBuZWVkcyB0byBiZSBncmVhdGVyIHRoYW4gMS4gU2V0dGluZyBpdCB0byAxXCIpKTp2b2lkIDA9PT1oJiYoaD0xMDApLHU9dGhpcy5fcmVuZGVyZXIuX3BJbnN0Ll90b1JhZGlhbnModSksdGhpcy5fcmVuZGVyZXIuc3BvdExpZ2h0QW5nbGUucHVzaChNYXRoLmNvcyh1KSksdGhpcy5fcmVuZGVyZXIuc3BvdExpZ2h0Q29uYy5wdXNoKGgpLHRoaXMuX3JlbmRlcmVyLl9lbmFibGVMaWdodGluZz0hMCx0aGlzfSxtLmRlZmF1bHQucHJvdG90eXBlLm5vTGlnaHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwibm9MaWdodHNcIiksbS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJub0xpZ2h0c1wiLGFyZ3VtZW50cyksdGhpcy5fcmVuZGVyZXIuX2VuYWJsZUxpZ2h0aW5nPSExLHRoaXMuX3JlbmRlcmVyLmFtYmllbnRMaWdodENvbG9ycy5sZW5ndGg9MCx0aGlzLl9yZW5kZXJlci5zcGVjdWxhckNvbG9ycz1bMSwxLDFdLHRoaXMuX3JlbmRlcmVyLmRpcmVjdGlvbmFsTGlnaHREaXJlY3Rpb25zLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLmRpcmVjdGlvbmFsTGlnaHREaWZmdXNlQ29sb3JzLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLmRpcmVjdGlvbmFsTGlnaHRTcGVjdWxhckNvbG9ycy5sZW5ndGg9MCx0aGlzLl9yZW5kZXJlci5wb2ludExpZ2h0UG9zaXRpb25zLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLnBvaW50TGlnaHREaWZmdXNlQ29sb3JzLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLnBvaW50TGlnaHRTcGVjdWxhckNvbG9ycy5sZW5ndGg9MCx0aGlzLl9yZW5kZXJlci5zcG90TGlnaHRQb3NpdGlvbnMubGVuZ3RoPTAsdGhpcy5fcmVuZGVyZXIuc3BvdExpZ2h0RGlyZWN0aW9ucy5sZW5ndGg9MCx0aGlzLl9yZW5kZXJlci5zcG90TGlnaHREaWZmdXNlQ29sb3JzLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLnNwb3RMaWdodFNwZWN1bGFyQ29sb3JzLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLnNwb3RMaWdodEFuZ2xlLmxlbmd0aD0wLHRoaXMuX3JlbmRlcmVyLnNwb3RMaWdodENvbmMubGVuZ3RoPTAsdGhpcy5fcmVuZGVyZXIuY29uc3RhbnRBdHRlbnVhdGlvbj0xLHRoaXMuX3JlbmRlcmVyLmxpbmVhckF0dGVudWF0aW9uPTAsdGhpcy5fcmVuZGVyZXIucXVhZHJhdGljQXR0ZW51YXRpb249MCx0aGlzLl9yZW5kZXJlci5fdXNlU2hpbmluZXNzPTEsdGhpc307dmFyIG49bS5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDgyOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxTPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtmdW5jdGlvbiBzKGUsdCxyKXtmb3IodmFyIGk9MCxuPWUubGVuZ3RoO2k8bjtpKyspaWYoZVtpXSE9PXQuZ2V0VWludDgocitpLCExKSlyZXR1cm4hMTtyZXR1cm4hMH1lKFwiLi9wNS5HZW9tZXRyeVwiKSxTLmRlZmF1bHQucHJvdG90eXBlLmxvYWRNb2RlbD1mdW5jdGlvbihlKXt2YXIgdCxyLGk7Uy5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJsb2FkTW9kZWxcIixhcmd1bWVudHMpO3ZhciBuPWUuc2xpY2UoLTQpO1wiYm9vbGVhblwiPT10eXBlb2YgYXJndW1lbnRzWzFdPyh0PWFyZ3VtZW50c1sxXSxyPWFyZ3VtZW50c1syXSxpPWFyZ3VtZW50c1szXSx2b2lkIDAhPT1hcmd1bWVudHNbNF0mJihuPWFyZ3VtZW50c1s0XSkpOih0PSExLHI9YXJndW1lbnRzWzFdLGk9YXJndW1lbnRzWzJdLHZvaWQgMCE9PWFyZ3VtZW50c1szXSYmKG49YXJndW1lbnRzWzNdKSk7dmFyIGE9bmV3IFMuZGVmYXVsdC5HZW9tZXRyeTthLmdpZD1cIlwiLmNvbmNhdChlLFwifFwiKS5jb25jYXQodCk7dmFyIG89dGhpcztyZXR1cm4gbi5tYXRjaCgvXFwuc3RsJC9pKT90aGlzLmh0dHBEbyhlLFwiR0VUXCIsXCJhcnJheUJ1ZmZlclwiLGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe2lmKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgRGF0YVZpZXcoZSkscj1bMTE1LDExMSwxMDgsMTA1LDEwMF0saT0wO2k8NTtpKyspaWYocyhyLHQsaSkpcmV0dXJuITE7cmV0dXJuITB9KHQpKSFmdW5jdGlvbihlLHQpe2Zvcih2YXIgcixpLG4sYSxvLHMsbCx1PW5ldyBEYXRhVmlldyh0KSxoPXUuZ2V0VWludDMyKDgwLCEwKSxjPSExLGY9MDtmPDcwO2YrKykxMTI5MjcwMzUxPT09dS5nZXRVaW50MzIoZiwhMSkmJjgyPT09dS5nZXRVaW50OChmKzQpJiY2MT09PXUuZ2V0VWludDgoZis1KSYmKGM9ITAsYT1bXSxvPXUuZ2V0VWludDgoZis2KS8yNTUscz11LmdldFVpbnQ4KGYrNykvMjU1LGw9dS5nZXRVaW50OChmKzgpLzI1NSk7Zm9yKHZhciBkPTA7ZDxoO2QrKyl7dmFyIHA9ODQrNTAqZCxtPXUuZ2V0RmxvYXQzMihwLCEwKSx2PXUuZ2V0RmxvYXQzMig0K3AsITApLHk9dS5nZXRGbG9hdDMyKDgrcCwhMCk7aWYoYyl7dmFyIGc9dS5nZXRVaW50MTYoNDgrcCwhMCk7bj0wPT0oMzI3NjgmZyk/KHI9KDMxJmcpLzMxLGk9KGc+PjUmMzEpLzMxLChnPj4xMCYzMSkvMzEpOihyPW8saT1zLGwpfWZvcih2YXIgYj1uZXcgUy5kZWZhdWx0LlZlY3RvcihtLHYseSksXz0xO188PTM7XysrKXt2YXIgeD1wKzEyKl8sdz1uZXcgUy5kZWZhdWx0LlZlY3Rvcih1LmdldEZsb2F0MzIoeCwhMCksdS5nZXRGbG9hdDMyKDQreCwhMCksdS5nZXRGbG9hdDMyKDgreCwhMCkpO2UudmVydGljZXMucHVzaCh3KSxlLnZlcnRleE5vcm1hbHMucHVzaChiKSxjJiZhLnB1c2gocixpLG4pfWUuZmFjZXMucHVzaChbMypkLDMqZCsxLDMqZCsyXSksZS51dnMucHVzaChbMCwwXSxbMCwwXSxbMCwwXSl9fShlLHQpO2Vsc2V7dmFyIHI9bmV3IERhdGFWaWV3KHQpO2lmKCEoXCJUZXh0RGVjb2RlclwiaW4gd2luZG93KSlyZXR1cm4gY29uc29sZS53YXJuKFwiU29ycnksIEFTQ0lJIFNUTCBsb2FkaW5nIG9ubHkgd29ya3MgaW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IFRleHREZWNvZGVyIChodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PXRleHRlbmNvZGVyKVwiKTt2YXIgaT1uZXcgVGV4dERlY29kZXIoXCJ1dGYtOFwiKS5kZWNvZGUocikuc3BsaXQoXCJcXG5cIik7IWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByLGksbj1cIlwiLGE9W10sbz0wO288dC5sZW5ndGg7KytvKXtmb3IodmFyIHM9dFtvXS50cmltKCksbD1zLnNwbGl0KFwiIFwiKSx1PTA7dTxsLmxlbmd0aDsrK3UpXCJcIj09PWxbdV0mJmwuc3BsaWNlKHUsMSk7aWYoMCE9PWwubGVuZ3RoKXN3aXRjaChuKXtjYXNlXCJcIjppZihcInNvbGlkXCIhPT1sWzBdKXJldHVybiBjb25zb2xlLmVycm9yKHMpLGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgc3RhdGUgXCInLmNvbmNhdChsWzBdLCdcIiwgc2hvdWxkIGJlIFwic29saWRcIicpKTtuPVwic29saWRcIjticmVhaztjYXNlXCJzb2xpZFwiOmlmKFwiZmFjZXRcIiE9PWxbMF18fFwibm9ybWFsXCIhPT1sWzFdKXJldHVybiBjb25zb2xlLmVycm9yKHMpLGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgc3RhdGUgXCInLmNvbmNhdChsWzBdLCdcIiwgc2hvdWxkIGJlIFwiZmFjZXQgbm9ybWFsXCInKSk7cj1uZXcgUy5kZWZhdWx0LlZlY3RvcihwYXJzZUZsb2F0KGxbMl0pLHBhcnNlRmxvYXQobFszXSkscGFyc2VGbG9hdChsWzRdKSksZS52ZXJ0ZXhOb3JtYWxzLnB1c2gocixyLHIpLG49XCJmYWNldCBub3JtYWxcIjticmVhaztjYXNlXCJmYWNldCBub3JtYWxcIjppZihcIm91dGVyXCIhPT1sWzBdfHxcImxvb3BcIiE9PWxbMV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IocyksY29uc29sZS5lcnJvcignSW52YWxpZCBzdGF0ZSBcIicuY29uY2F0KGxbMF0sJ1wiLCBzaG91bGQgYmUgXCJvdXRlciBsb29wXCInKSk7bj1cInZlcnRleFwiO2JyZWFrO2Nhc2VcInZlcnRleFwiOmlmKFwidmVydGV4XCI9PT1sWzBdKWk9bmV3IFMuZGVmYXVsdC5WZWN0b3IocGFyc2VGbG9hdChsWzFdKSxwYXJzZUZsb2F0KGxbMl0pLHBhcnNlRmxvYXQobFszXSkpLGUudmVydGljZXMucHVzaChpKSxlLnV2cy5wdXNoKFswLDBdKSxhLnB1c2goZS52ZXJ0aWNlcy5pbmRleE9mKGkpKTtlbHNle2lmKFwiZW5kbG9vcFwiIT09bFswXSlyZXR1cm4gY29uc29sZS5lcnJvcihzKSxjb25zb2xlLmVycm9yKCdJbnZhbGlkIHN0YXRlIFwiJy5jb25jYXQobFswXSwnXCIsIHNob3VsZCBiZSBcInZlcnRleFwiIG9yIFwiZW5kbG9vcFwiJykpO2UuZmFjZXMucHVzaChhKSxhPVtdLG49XCJlbmRsb29wXCJ9YnJlYWs7Y2FzZVwiZW5kbG9vcFwiOmlmKFwiZW5kZmFjZXRcIiE9PWxbMF0pcmV0dXJuIGNvbnNvbGUuZXJyb3IocyksY29uc29sZS5lcnJvcignSW52YWxpZCBzdGF0ZSBcIicuY29uY2F0KGxbMF0sJ1wiLCBzaG91bGQgYmUgXCJlbmRmYWNldFwiJykpO249XCJlbmRmYWNldFwiO2JyZWFrO2Nhc2VcImVuZGZhY2V0XCI6aWYoXCJlbmRzb2xpZFwiIT09bFswXSl7aWYoXCJmYWNldFwiIT09bFswXXx8XCJub3JtYWxcIiE9PWxbMV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IocyksY29uc29sZS5lcnJvcignSW52YWxpZCBzdGF0ZSBcIicuY29uY2F0KGxbMF0sJ1wiLCBzaG91bGQgYmUgXCJlbmRzb2xpZFwiIG9yIFwiZmFjZXQgbm9ybWFsXCInKSk7cj1uZXcgUy5kZWZhdWx0LlZlY3RvcihwYXJzZUZsb2F0KGxbMl0pLHBhcnNlRmxvYXQobFszXSkscGFyc2VGbG9hdChsWzRdKSksZS52ZXJ0ZXhOb3JtYWxzLnB1c2gocixyLHIpLG49XCJmYWNldCBub3JtYWxcIn1icmVhaztkZWZhdWx0OmNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgc3RhdGUgXCInLmNvbmNhdChuLCdcIicpKX19fShlLGkpfX0oYSxlKSx0JiZhLm5vcm1hbGl6ZSgpLG8uX2RlY3JlbWVudFByZWxvYWQoKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiByJiZyKGEpfSxpKTpuLm1hdGNoKC9cXC5vYmokL2kpP3RoaXMubG9hZFN0cmluZ3MoZSxmdW5jdGlvbihlKXshZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9e3Y6W10sdnQ6W10sdm46W119LGk9e30sbj0wO248dC5sZW5ndGg7KytuKXt2YXIgYT10W25dLnRyaW0oKS5zcGxpdCgvXFxiXFxzKy8pO2lmKDA8YS5sZW5ndGgpaWYoXCJ2XCI9PT1hWzBdfHxcInZuXCI9PT1hWzBdKXt2YXIgbz1uZXcgUy5kZWZhdWx0LlZlY3RvcihwYXJzZUZsb2F0KGFbMV0pLHBhcnNlRmxvYXQoYVsyXSkscGFyc2VGbG9hdChhWzNdKSk7clthWzBdXS5wdXNoKG8pfWVsc2UgaWYoXCJ2dFwiPT09YVswXSl7dmFyIHM9W3BhcnNlRmxvYXQoYVsxXSkscGFyc2VGbG9hdChhWzJdKV07clthWzBdXS5wdXNoKHMpfWVsc2UgaWYoXCJmXCI9PT1hWzBdKWZvcih2YXIgbD0zO2w8YS5sZW5ndGg7KytsKXtmb3IodmFyIHU9W10saD1bMSxsLTEsbF0sYz0wO2M8aC5sZW5ndGg7KytjKXt2YXIgZj1hW2hbY11dLGQ9MDtpZih2b2lkIDAhPT1pW2ZdKWQ9aVtmXTtlbHNle2Zvcih2YXIgcD1mLnNwbGl0KFwiL1wiKSxtPTA7bTxwLmxlbmd0aDttKyspcFttXT1wYXJzZUludChwW21dKS0xO2Q9aVtmXT1lLnZlcnRpY2VzLmxlbmd0aCxlLnZlcnRpY2VzLnB1c2goci52W3BbMF1dLmNvcHkoKSksci52dFtwWzFdXT9lLnV2cy5wdXNoKHIudnRbcFsxXV0uc2xpY2UoKSk6ZS51dnMucHVzaChbMCwwXSksci52bltwWzJdXSYmZS52ZXJ0ZXhOb3JtYWxzLnB1c2goci52bltwWzJdXS5jb3B5KCkpfXUucHVzaChkKX11WzBdIT09dVsxXSYmdVswXSE9PXVbMl0mJnVbMV0hPT11WzJdJiZlLmZhY2VzLnB1c2godSl9fTA9PT1lLnZlcnRleE5vcm1hbHMubGVuZ3RoJiZlLmNvbXB1dGVOb3JtYWxzKCl9KGEsZSksdCYmYS5ub3JtYWxpemUoKSxvLl9kZWNyZW1lbnRQcmVsb2FkKCksXCJmdW5jdGlvblwiPT10eXBlb2YgciYmcihhKX0saSk6KFMuZGVmYXVsdC5fZnJpZW5kbHlGaWxlTG9hZEVycm9yKDMsZSksaT9pKCk6Y29uc29sZS5lcnJvcihcIlNvcnJ5LCB0aGUgZmlsZSB0eXBlIGlzIGludmFsaWQuIE9ubHkgT0JKIGFuZCBTVEwgZmlsZXMgYXJlIHN1cHBvcnRlZC5cIikpLGF9LFMuZGVmYXVsdC5wcm90b3R5cGUubW9kZWw9ZnVuY3Rpb24oZSl7dGhpcy5fYXNzZXJ0M2QoXCJtb2RlbFwiKSxTLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcIm1vZGVsXCIsYXJndW1lbnRzKSwwPGUudmVydGljZXMubGVuZ3RoJiYodGhpcy5fcmVuZGVyZXIuZ2VvbWV0cnlJbkhhc2goZS5naWQpfHwoZS5fbWFrZVRyaWFuZ2xlRWRnZXMoKS5fZWRnZXNUb1ZlcnRpY2VzKCksdGhpcy5fcmVuZGVyZXIuY3JlYXRlQnVmZmVycyhlLmdpZCxlKSksdGhpcy5fcmVuZGVyZXIuZHJhd0J1ZmZlcnMoZS5naWQpKX07dmFyIG49Uy5kZWZhdWx0O3IuZGVmYXVsdD1ufSx7XCIuLi9jb3JlL21haW5cIjozNixcIi4vcDUuR2VvbWV0cnlcIjo4NX1dLDgzOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSkoZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSx1PShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxuPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29yZS9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHMoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9ZShcIi4vcDUuVGV4dHVyZVwiKSx1LmRlZmF1bHQucHJvdG90eXBlLmxvYWRTaGFkZXI9ZnVuY3Rpb24oZSx0LHIsaSl7dS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJsb2FkU2hhZGVyXCIsYXJndW1lbnRzKSxpPWl8fGNvbnNvbGUuZXJyb3I7ZnVuY3Rpb24gbigpe28uX2RlY3JlbWVudFByZWxvYWQoKSxyJiZyKGEpfXZhciBhPW5ldyB1LmRlZmF1bHQuU2hhZGVyLG89dGhpcyxzPSExLGw9ITE7cmV0dXJuIHRoaXMubG9hZFN0cmluZ3MoZSxmdW5jdGlvbihlKXthLl92ZXJ0U3JjPWUuam9pbihcIlxcblwiKSxsPSEwLHMmJm4oKX0saSksdGhpcy5sb2FkU3RyaW5ncyh0LGZ1bmN0aW9uKGUpe2EuX2ZyYWdTcmM9ZS5qb2luKFwiXFxuXCIpLHM9ITAsbCYmbigpfSxpKSxhfSx1LmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9hc3NlcnQzZChcImNyZWF0ZVNoYWRlclwiKSx1LmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcImNyZWF0ZVNoYWRlclwiLGFyZ3VtZW50cyksbmV3IHUuZGVmYXVsdC5TaGFkZXIodGhpcy5fcmVuZGVyZXIsZSx0KX0sdS5kZWZhdWx0LnByb3RvdHlwZS5zaGFkZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2Fzc2VydDNkKFwic2hhZGVyXCIpLHUuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwic2hhZGVyXCIsYXJndW1lbnRzKSx2b2lkIDA9PT1lLl9yZW5kZXJlciYmKGUuX3JlbmRlcmVyPXRoaXMuX3JlbmRlcmVyKSxlLmlzU3Ryb2tlU2hhZGVyKCk/dGhpcy5fcmVuZGVyZXIudXNlclN0cm9rZVNoYWRlcj1lOih0aGlzLl9yZW5kZXJlci51c2VyRmlsbFNoYWRlcj1lLHRoaXMuX3JlbmRlcmVyLl91c2VOb3JtYWxNYXRlcmlhbD0hMSksZS5pbml0KCksdGhpc30sdS5kZWZhdWx0LnByb3RvdHlwZS5yZXNldFNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW5kZXJlci51c2VyRmlsbFNoYWRlcj10aGlzLl9yZW5kZXJlci51c2VyU3Ryb2tlU2hhZGVyPW51bGwsdGhpc30sdS5kZWZhdWx0LnByb3RvdHlwZS5ub3JtYWxNYXRlcmlhbD1mdW5jdGlvbigpe3RoaXMuX2Fzc2VydDNkKFwibm9ybWFsTWF0ZXJpYWxcIik7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIHUuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwibm9ybWFsTWF0ZXJpYWxcIix0KSx0aGlzLl9yZW5kZXJlci5kcmF3TW9kZT1uLkZJTEwsdGhpcy5fcmVuZGVyZXIuX3VzZVNwZWN1bGFyTWF0ZXJpYWw9ITEsdGhpcy5fcmVuZGVyZXIuX3VzZUVtaXNzaXZlTWF0ZXJpYWw9ITEsdGhpcy5fcmVuZGVyZXIuX3VzZU5vcm1hbE1hdGVyaWFsPSEwLHRoaXMuX3JlbmRlcmVyLmN1ckZpbGxDb2xvcj1bMSwxLDEsMV0sdGhpcy5fcmVuZGVyZXIuX3NldFByb3BlcnR5KFwiX2RvRmlsbFwiLCEwKSx0aGlzLm5vU3Ryb2tlKCksdGhpc30sdS5kZWZhdWx0LnByb3RvdHlwZS50ZXh0dXJlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9hc3NlcnQzZChcInRleHR1cmVcIiksdS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJ0ZXh0dXJlXCIsYXJndW1lbnRzKSxlLmdpZlByb3BlcnRpZXMmJmUuX2FuaW1hdGVHaWYodGhpcyksdGhpcy5fcmVuZGVyZXIuZHJhd01vZGU9bi5URVhUVVJFLHRoaXMuX3JlbmRlcmVyLl91c2VTcGVjdWxhck1hdGVyaWFsPSExLHRoaXMuX3JlbmRlcmVyLl91c2VFbWlzc2l2ZU1hdGVyaWFsPSExLHRoaXMuX3JlbmRlcmVyLl91c2VOb3JtYWxNYXRlcmlhbD0hMSx0aGlzLl9yZW5kZXJlci5fdGV4PWUsdGhpcy5fcmVuZGVyZXIuX3NldFByb3BlcnR5KFwiX2RvRmlsbFwiLCEwKSx0aGlzfSx1LmRlZmF1bHQucHJvdG90eXBlLnRleHR1cmVNb2RlPWZ1bmN0aW9uKGUpe2UhPT1uLklNQUdFJiZlIT09bi5OT1JNQUw/Y29uc29sZS53YXJuKFwiWW91IHRyaWVkIHRvIHNldCBcIi5jb25jYXQoZSxcIiB0ZXh0dXJlTW9kZSBvbmx5IHN1cHBvcnRzIElNQUdFICYgTk9STUFMIFwiKSk6dGhpcy5fcmVuZGVyZXIudGV4dHVyZU1vZGU9ZX0sdS5kZWZhdWx0LnByb3RvdHlwZS50ZXh0dXJlV3JhcD1mdW5jdGlvbihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ZTt0aGlzLl9yZW5kZXJlci50ZXh0dXJlV3JhcFg9ZSx0aGlzLl9yZW5kZXJlci50ZXh0dXJlV3JhcFk9dDtmb3IodmFyIHI9dGhpcy5fcmVuZGVyZXIudGV4dHVyZXMsaT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0uc2V0V3JhcE1vZGUoZSx0KX0sdS5kZWZhdWx0LnByb3RvdHlwZS5hbWJpZW50TWF0ZXJpYWw9ZnVuY3Rpb24oZSx0LHIpe3RoaXMuX2Fzc2VydDNkKFwiYW1iaWVudE1hdGVyaWFsXCIpLHUuZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiYW1iaWVudE1hdGVyaWFsXCIsYXJndW1lbnRzKTt2YXIgaT11LmRlZmF1bHQucHJvdG90eXBlLmNvbG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuY3VyRmlsbENvbG9yPWkuX2FycmF5LHRoaXMuX3JlbmRlcmVyLl91c2VTcGVjdWxhck1hdGVyaWFsPSExLHRoaXMuX3JlbmRlcmVyLl91c2VFbWlzc2l2ZU1hdGVyaWFsPSExLHRoaXMuX3JlbmRlcmVyLl91c2VOb3JtYWxNYXRlcmlhbD0hMSx0aGlzLl9yZW5kZXJlci5fZW5hYmxlTGlnaHRpbmc9ITAsdGhpcy5fcmVuZGVyZXIuX3RleD1udWxsLHRoaXN9LHUuZGVmYXVsdC5wcm90b3R5cGUuZW1pc3NpdmVNYXRlcmlhbD1mdW5jdGlvbihlLHQscixpKXt0aGlzLl9hc3NlcnQzZChcImVtaXNzaXZlTWF0ZXJpYWxcIiksdS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJlbWlzc2l2ZU1hdGVyaWFsXCIsYXJndW1lbnRzKTt2YXIgbj11LmRlZmF1bHQucHJvdG90eXBlLmNvbG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuY3VyRmlsbENvbG9yPW4uX2FycmF5LHRoaXMuX3JlbmRlcmVyLl91c2VTcGVjdWxhck1hdGVyaWFsPSExLHRoaXMuX3JlbmRlcmVyLl91c2VFbWlzc2l2ZU1hdGVyaWFsPSEwLHRoaXMuX3JlbmRlcmVyLl91c2VOb3JtYWxNYXRlcmlhbD0hMSx0aGlzLl9yZW5kZXJlci5fZW5hYmxlTGlnaHRpbmc9ITAsdGhpcy5fcmVuZGVyZXIuX3RleD1udWxsLHRoaXN9LHUuZGVmYXVsdC5wcm90b3R5cGUuc3BlY3VsYXJNYXRlcmlhbD1mdW5jdGlvbihlLHQscixpKXt0aGlzLl9hc3NlcnQzZChcInNwZWN1bGFyTWF0ZXJpYWxcIiksdS5kZWZhdWx0Ll92YWxpZGF0ZVBhcmFtZXRlcnMoXCJzcGVjdWxhck1hdGVyaWFsXCIsYXJndW1lbnRzKTt2YXIgbj11LmRlZmF1bHQucHJvdG90eXBlLmNvbG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuY3VyRmlsbENvbG9yPW4uX2FycmF5LHRoaXMuX3JlbmRlcmVyLl91c2VTcGVjdWxhck1hdGVyaWFsPSEwLHRoaXMuX3JlbmRlcmVyLl91c2VFbWlzc2l2ZU1hdGVyaWFsPSExLHRoaXMuX3JlbmRlcmVyLl91c2VOb3JtYWxNYXRlcmlhbD0hMSx0aGlzLl9yZW5kZXJlci5fZW5hYmxlTGlnaHRpbmc9ITAsdGhpcy5fcmVuZGVyZXIuX3RleD1udWxsLHRoaXN9LHUuZGVmYXVsdC5wcm90b3R5cGUuc2hpbmluZXNzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9hc3NlcnQzZChcInNoaW5pbmVzc1wiKSx1LmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcInNoaW5pbmVzc1wiLGFyZ3VtZW50cyksZTwxJiYoZT0xKSx0aGlzLl9yZW5kZXJlci5fdXNlU2hpbmluZXNzPWUsdGhpc30sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9hcHBseUNvbG9yQmxlbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5HTCxyPXRoaXMuZHJhd01vZGU9PT1uLlRFWFRVUkV8fGVbZS5sZW5ndGgtMV08MXx8dGhpcy5faXNFcmFzaW5nO3JldHVybiByIT09dGhpcy5faXNCbGVuZGluZyYmKHJ8fHRoaXMuY3VyQmxlbmRNb2RlIT09bi5CTEVORCYmdGhpcy5jdXJCbGVuZE1vZGUhPT1uLkFERD90LmVuYWJsZSh0LkJMRU5EKTp0LmRpc2FibGUodC5CTEVORCksdC5kZXB0aE1hc2soITApLHRoaXMuX2lzQmxlbmRpbmc9ciksdGhpcy5fYXBwbHlCbGVuZE1vZGUoKSxlfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2FwcGx5QmxlbmRNb2RlPWZ1bmN0aW9uKCl7aWYodGhpcy5fY2FjaGVkQmxlbmRNb2RlIT09dGhpcy5jdXJCbGVuZE1vZGUpe3ZhciBlPXRoaXMuR0w7c3dpdGNoKHRoaXMuY3VyQmxlbmRNb2RlKXtjYXNlIG4uQkxFTkQ6Y2FzZSBuLkFERDplLmJsZW5kRXF1YXRpb24oZS5GVU5DX0FERCksZS5ibGVuZEZ1bmMoZS5TUkNfQUxQSEEsZS5PTkVfTUlOVVNfU1JDX0FMUEhBKTticmVhaztjYXNlIG4uUkVNT1ZFOmUuYmxlbmRFcXVhdGlvbihlLkZVTkNfUkVWRVJTRV9TVUJUUkFDVCksZS5ibGVuZEZ1bmMoZS5TUkNfQUxQSEEsZS5EU1RfQUxQSEEpO2JyZWFrO2Nhc2Ugbi5NVUxUSVBMWTplLmJsZW5kRXF1YXRpb25TZXBhcmF0ZShlLkZVTkNfQURELGUuRlVOQ19BREQpLGUuYmxlbmRGdW5jU2VwYXJhdGUoZS5aRVJPLGUuU1JDX0NPTE9SLGUuT05FLGUuT05FKTticmVhaztjYXNlIG4uU0NSRUVOOmUuYmxlbmRFcXVhdGlvblNlcGFyYXRlKGUuRlVOQ19BREQsZS5GVU5DX0FERCksZS5ibGVuZEZ1bmNTZXBhcmF0ZShlLk9ORV9NSU5VU19EU1RfQ09MT1IsZS5PTkUsZS5PTkUsZS5PTkUpO2JyZWFrO2Nhc2Ugbi5FWENMVVNJT046ZS5ibGVuZEVxdWF0aW9uU2VwYXJhdGUoZS5GVU5DX0FERCxlLkZVTkNfQUREKSxlLmJsZW5kRnVuY1NlcGFyYXRlKGUuT05FX01JTlVTX0RTVF9DT0xPUixlLk9ORV9NSU5VU19TUkNfQ09MT1IsZS5PTkUsZS5PTkUpO2JyZWFrO2Nhc2Ugbi5SRVBMQUNFOmUuYmxlbmRFcXVhdGlvbihlLkZVTkNfQUREKSxlLmJsZW5kRnVuYyhlLk9ORSxlLlpFUk8pO2JyZWFrO2Nhc2Ugbi5TVUJUUkFDVDplLmJsZW5kRXF1YXRpb25TZXBhcmF0ZShlLkZVTkNfUkVWRVJTRV9TVUJUUkFDVCxlLkZVTkNfQUREKSxlLmJsZW5kRnVuY1NlcGFyYXRlKGUuU1JDX0FMUEhBLGUuT05FLGUuT05FLGUuT05FKTticmVhaztjYXNlIG4uREFSS0VTVDp0aGlzLmJsZW5kRXh0PyhlLmJsZW5kRXF1YXRpb25TZXBhcmF0ZSh0aGlzLmJsZW5kRXh0Lk1JTl9FWFQsZS5GVU5DX0FERCksZS5ibGVuZEZ1bmNTZXBhcmF0ZShlLk9ORSxlLk9ORSxlLk9ORSxlLk9ORSkpOmNvbnNvbGUud2FybihcImJsZW5kTW9kZShEQVJLRVNUKSBkb2VzIG5vdCB3b3JrIGluIHlvdXIgYnJvd3NlciBpbiBXRUJHTCBtb2RlLlwiKTticmVhaztjYXNlIG4uTElHSFRFU1Q6dGhpcy5ibGVuZEV4dD8oZS5ibGVuZEVxdWF0aW9uU2VwYXJhdGUodGhpcy5ibGVuZEV4dC5NQVhfRVhULGUuRlVOQ19BREQpLGUuYmxlbmRGdW5jU2VwYXJhdGUoZS5PTkUsZS5PTkUsZS5PTkUsZS5PTkUpKTpjb25zb2xlLndhcm4oXCJibGVuZE1vZGUoTElHSFRFU1QpIGRvZXMgbm90IHdvcmsgaW4geW91ciBicm93c2VyIGluIFdFQkdMIG1vZGUuXCIpO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcihcIk9vcHMhIFNvbWVob3cgUmVuZGVyZXJHTCBzZXQgY3VyQmxlbmRNb2RlIHRvIGFuIHVuc3VwcG9ydGVkIG1vZGUuXCIpfXRoaXMuX2lzRXJhc2luZ3x8KHRoaXMuX2NhY2hlZEJsZW5kTW9kZT10aGlzLmN1ckJsZW5kTW9kZSl9fTt2YXIgYT11LmRlZmF1bHQ7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuLi9jb3JlL21haW5cIjozNixcIi4vcDUuVGV4dHVyZVwiOjkyfV0sODQ6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG09KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O20uZGVmYXVsdC5wcm90b3R5cGUuY2FtZXJhPWZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5fYXNzZXJ0M2QoXCJjYW1lcmFcIik7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspcltpXT1hcmd1bWVudHNbaV07cmV0dXJuIG0uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiY2FtZXJhXCIsciksKGU9dGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYSkuY2FtZXJhLmFwcGx5KGUsciksdGhpc30sbS5kZWZhdWx0LnByb3RvdHlwZS5wZXJzcGVjdGl2ZT1mdW5jdGlvbigpe3ZhciBlO3RoaXMuX2Fzc2VydDNkKFwicGVyc3BlY3RpdmVcIik7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspcltpXT1hcmd1bWVudHNbaV07cmV0dXJuIG0uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwicGVyc3BlY3RpdmVcIixyKSwoZT10aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhKS5wZXJzcGVjdGl2ZS5hcHBseShlLHIpLHRoaXN9LG0uZGVmYXVsdC5wcm90b3R5cGUub3J0aG89ZnVuY3Rpb24oKXt2YXIgZTt0aGlzLl9hc3NlcnQzZChcIm9ydGhvXCIpO2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSsrKXJbaV09YXJndW1lbnRzW2ldO3JldHVybiBtLmRlZmF1bHQuX3ZhbGlkYXRlUGFyYW1ldGVycyhcIm9ydGhvXCIsciksKGU9dGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYSkub3J0aG8uYXBwbHkoZSxyKSx0aGlzfSxtLmRlZmF1bHQucHJvdG90eXBlLmZydXN0dW09ZnVuY3Rpb24oKXt2YXIgZTt0aGlzLl9hc3NlcnQzZChcImZydXN0dW1cIik7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspcltpXT1hcmd1bWVudHNbaV07cmV0dXJuIG0uZGVmYXVsdC5fdmFsaWRhdGVQYXJhbWV0ZXJzKFwiZnJ1c3R1bVwiLHIpLChlPXRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEpLmZydXN0dW0uYXBwbHkoZSxyKSx0aGlzfSxtLmRlZmF1bHQucHJvdG90eXBlLmNyZWF0ZUNhbWVyYT1mdW5jdGlvbigpe3RoaXMuX2Fzc2VydDNkKFwiY3JlYXRlQ2FtZXJhXCIpO3ZhciBlPW5ldyBtLmRlZmF1bHQuQ2FtZXJhKHRoaXMuX3JlbmRlcmVyKTtyZXR1cm4gZS5fY29tcHV0ZUNhbWVyYURlZmF1bHRTZXR0aW5ncygpLGUuX3NldERlZmF1bHRDYW1lcmEoKSx0aGlzLl9yZW5kZXJlci5fY3VyQ2FtZXJhPWV9LG0uZGVmYXVsdC5DYW1lcmE9ZnVuY3Rpb24oZSl7dGhpcy5fcmVuZGVyZXI9ZSx0aGlzLmNhbWVyYVR5cGU9XCJkZWZhdWx0XCIsdGhpcy5jYW1lcmFNYXRyaXg9bmV3IG0uZGVmYXVsdC5NYXRyaXgsdGhpcy5wcm9qTWF0cml4PW5ldyBtLmRlZmF1bHQuTWF0cml4fSxtLmRlZmF1bHQuQ2FtZXJhLnByb3RvdHlwZS5wZXJzcGVjdGl2ZT1mdW5jdGlvbihlLHQscixpKXt0aGlzLmNhbWVyYVR5cGU9MDxhcmd1bWVudHMubGVuZ3RoP1wiY3VzdG9tXCI6XCJkZWZhdWx0XCIsdm9pZCAwPT09ZT8oZT10aGlzLmRlZmF1bHRDYW1lcmFGT1YsdGhpcy5jYW1lcmFGT1Y9ZSk6dGhpcy5jYW1lcmFGT1Y9dGhpcy5fcmVuZGVyZXIuX3BJbnN0Ll90b1JhZGlhbnMoZSksdm9pZCAwPT09dCYmKHQ9dGhpcy5kZWZhdWx0QXNwZWN0UmF0aW8pLHZvaWQgMD09PXImJihyPXRoaXMuZGVmYXVsdENhbWVyYU5lYXIpLHZvaWQgMD09PWkmJihpPXRoaXMuZGVmYXVsdENhbWVyYUZhcikscjw9MWUtNCYmKHI9LjAxLGNvbnNvbGUubG9nKFwiQXZvaWQgcGVyc3BlY3RpdmUgbmVhciBwbGFuZSB2YWx1ZXMgY2xvc2UgdG8gb3IgYmVsb3cgMC4gU2V0dGluZyB2YWx1ZSB0byAwLjAxLlwiKSksaTxyJiZjb25zb2xlLmxvZyhcIlBlcnNwZWN0aXZlIGZhciBwbGFuZSB2YWx1ZSBpcyBsZXNzIHRoYW4gbmVhciBwbGFuZSB2YWx1ZS4gTm90aGluZyB3aWxsIGJlIHNob3duLlwiKSx0aGlzLmFzcGVjdFJhdGlvPXQsdGhpcy5jYW1lcmFOZWFyPXIsdGhpcy5jYW1lcmFGYXI9aSx0aGlzLnByb2pNYXRyaXg9bS5kZWZhdWx0Lk1hdHJpeC5pZGVudGl0eSgpO3ZhciBuPTEvTWF0aC50YW4odGhpcy5jYW1lcmFGT1YvMiksYT0xLyh0aGlzLmNhbWVyYU5lYXItdGhpcy5jYW1lcmFGYXIpO3RoaXMucHJvak1hdHJpeC5zZXQobi90LDAsMCwwLDAsLW4sMCwwLDAsMCwoaStyKSphLC0xLDAsMCwyKmkqciphLDApLHRoaXMuX2lzQWN0aXZlKCkmJnRoaXMuX3JlbmRlcmVyLnVQTWF0cml4LnNldCh0aGlzLnByb2pNYXRyaXgubWF0NFswXSx0aGlzLnByb2pNYXRyaXgubWF0NFsxXSx0aGlzLnByb2pNYXRyaXgubWF0NFsyXSx0aGlzLnByb2pNYXRyaXgubWF0NFszXSx0aGlzLnByb2pNYXRyaXgubWF0NFs0XSx0aGlzLnByb2pNYXRyaXgubWF0NFs1XSx0aGlzLnByb2pNYXRyaXgubWF0NFs2XSx0aGlzLnByb2pNYXRyaXgubWF0NFs3XSx0aGlzLnByb2pNYXRyaXgubWF0NFs4XSx0aGlzLnByb2pNYXRyaXgubWF0NFs5XSx0aGlzLnByb2pNYXRyaXgubWF0NFsxMF0sdGhpcy5wcm9qTWF0cml4Lm1hdDRbMTFdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzEyXSx0aGlzLnByb2pNYXRyaXgubWF0NFsxM10sdGhpcy5wcm9qTWF0cml4Lm1hdDRbMTRdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzE1XSl9LG0uZGVmYXVsdC5DYW1lcmEucHJvdG90eXBlLm9ydGhvPWZ1bmN0aW9uKGUsdCxyLGksbixhKXt2b2lkIDA9PT1lJiYoZT0tdGhpcy5fcmVuZGVyZXIud2lkdGgvMiksdm9pZCAwPT09dCYmKHQ9dGhpcy5fcmVuZGVyZXIud2lkdGgvMiksdm9pZCAwPT09ciYmKHI9LXRoaXMuX3JlbmRlcmVyLmhlaWdodC8yKSx2b2lkIDA9PT1pJiYoaT10aGlzLl9yZW5kZXJlci5oZWlnaHQvMiksdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09YSYmKGE9TWF0aC5tYXgodGhpcy5fcmVuZGVyZXIud2lkdGgsdGhpcy5fcmVuZGVyZXIuaGVpZ2h0KSk7dmFyIG89dC1lLHM9aS1yLGw9YS1uLHU9Mi9vLGg9Mi9zLGM9LTIvbCxmPS0odCtlKS9vLGQ9LShpK3IpL3MscD0tKGErbikvbDt0aGlzLnByb2pNYXRyaXg9bS5kZWZhdWx0Lk1hdHJpeC5pZGVudGl0eSgpLHRoaXMucHJvak1hdHJpeC5zZXQodSwwLDAsMCwwLC1oLDAsMCwwLDAsYywwLGYsZCxwLDEpLHRoaXMuX2lzQWN0aXZlKCkmJnRoaXMuX3JlbmRlcmVyLnVQTWF0cml4LnNldCh0aGlzLnByb2pNYXRyaXgubWF0NFswXSx0aGlzLnByb2pNYXRyaXgubWF0NFsxXSx0aGlzLnByb2pNYXRyaXgubWF0NFsyXSx0aGlzLnByb2pNYXRyaXgubWF0NFszXSx0aGlzLnByb2pNYXRyaXgubWF0NFs0XSx0aGlzLnByb2pNYXRyaXgubWF0NFs1XSx0aGlzLnByb2pNYXRyaXgubWF0NFs2XSx0aGlzLnByb2pNYXRyaXgubWF0NFs3XSx0aGlzLnByb2pNYXRyaXgubWF0NFs4XSx0aGlzLnByb2pNYXRyaXgubWF0NFs5XSx0aGlzLnByb2pNYXRyaXgubWF0NFsxMF0sdGhpcy5wcm9qTWF0cml4Lm1hdDRbMTFdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzEyXSx0aGlzLnByb2pNYXRyaXgubWF0NFsxM10sdGhpcy5wcm9qTWF0cml4Lm1hdDRbMTRdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzE1XSksdGhpcy5jYW1lcmFUeXBlPVwiY3VzdG9tXCJ9LG0uZGVmYXVsdC5DYW1lcmEucHJvdG90eXBlLmZydXN0dW09ZnVuY3Rpb24oZSx0LHIsaSxuLGEpe3ZvaWQgMD09PWUmJihlPS10aGlzLl9yZW5kZXJlci53aWR0aC8yKSx2b2lkIDA9PT10JiYodD10aGlzLl9yZW5kZXJlci53aWR0aC8yKSx2b2lkIDA9PT1yJiYocj0tdGhpcy5fcmVuZGVyZXIuaGVpZ2h0LzIpLHZvaWQgMD09PWkmJihpPXRoaXMuX3JlbmRlcmVyLmhlaWdodC8yKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1hJiYoYT1NYXRoLm1heCh0aGlzLl9yZW5kZXJlci53aWR0aCx0aGlzLl9yZW5kZXJlci5oZWlnaHQpKTt2YXIgbz10LWUscz1pLXIsbD1hLW4sdT0yKm4vbyxoPTIqbi9zLGM9LTIqYSpuL2wsZj0odCtlKS9vLGQ9KGkrcikvcyxwPS0oYStuKS9sO3RoaXMucHJvak1hdHJpeD1tLmRlZmF1bHQuTWF0cml4LmlkZW50aXR5KCksdGhpcy5wcm9qTWF0cml4LnNldCh1LDAsMCwwLDAsaCwwLDAsZixkLHAsLTEsMCwwLGMsMCksdGhpcy5faXNBY3RpdmUoKSYmdGhpcy5fcmVuZGVyZXIudVBNYXRyaXguc2V0KHRoaXMucHJvak1hdHJpeC5tYXQ0WzBdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzFdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzJdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzNdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzRdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzVdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzZdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzddLHRoaXMucHJvak1hdHJpeC5tYXQ0WzhdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzldLHRoaXMucHJvak1hdHJpeC5tYXQ0WzEwXSx0aGlzLnByb2pNYXRyaXgubWF0NFsxMV0sdGhpcy5wcm9qTWF0cml4Lm1hdDRbMTJdLHRoaXMucHJvak1hdHJpeC5tYXQ0WzEzXSx0aGlzLnByb2pNYXRyaXgubWF0NFsxNF0sdGhpcy5wcm9qTWF0cml4Lm1hdDRbMTVdKSx0aGlzLmNhbWVyYVR5cGU9XCJjdXN0b21cIn0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUuX3JvdGF0ZVZpZXc9ZnVuY3Rpb24oZSx0LHIsaSl7dmFyIG49dGhpcy5jZW50ZXJYLGE9dGhpcy5jZW50ZXJZLG89dGhpcy5jZW50ZXJaO24tPXRoaXMuZXllWCxhLT10aGlzLmV5ZVksby09dGhpcy5leWVaO3ZhciBzPW0uZGVmYXVsdC5NYXRyaXguaWRlbnRpdHkodGhpcy5fcmVuZGVyZXIuX3BJbnN0KTtzLnJvdGF0ZSh0aGlzLl9yZW5kZXJlci5fcEluc3QuX3RvUmFkaWFucyhlKSx0LHIsaSk7dmFyIGw9W24qcy5tYXQ0WzBdK2Eqcy5tYXQ0WzRdK28qcy5tYXQ0WzhdLG4qcy5tYXQ0WzFdK2Eqcy5tYXQ0WzVdK28qcy5tYXQ0WzldLG4qcy5tYXQ0WzJdK2Eqcy5tYXQ0WzZdK28qcy5tYXQ0WzEwXV07bFswXSs9dGhpcy5leWVYLGxbMV0rPXRoaXMuZXllWSxsWzJdKz10aGlzLmV5ZVosdGhpcy5jYW1lcmEodGhpcy5leWVYLHRoaXMuZXllWSx0aGlzLmV5ZVosbFswXSxsWzFdLGxbMl0sdGhpcy51cFgsdGhpcy51cFksdGhpcy51cFopfSxtLmRlZmF1bHQuQ2FtZXJhLnByb3RvdHlwZS5wYW49ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2V0TG9jYWxBeGVzKCk7dGhpcy5fcm90YXRlVmlldyhlLHQueVswXSx0LnlbMV0sdC55WzJdKX0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUudGlsdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRMb2NhbEF4ZXMoKTt0aGlzLl9yb3RhdGVWaWV3KGUsdC54WzBdLHQueFsxXSx0LnhbMl0pfSxtLmRlZmF1bHQuQ2FtZXJhLnByb3RvdHlwZS5sb29rQXQ9ZnVuY3Rpb24oZSx0LHIpe3RoaXMuY2FtZXJhKHRoaXMuZXllWCx0aGlzLmV5ZVksdGhpcy5leWVaLGUsdCxyLHRoaXMudXBYLHRoaXMudXBZLHRoaXMudXBaKX0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUuY2FtZXJhPWZ1bmN0aW9uKGUsdCxyLGksbixhLG8scyxsKXt2b2lkIDA9PT1lJiYoZT10aGlzLmRlZmF1bHRFeWVYLHQ9dGhpcy5kZWZhdWx0RXllWSxyPXRoaXMuZGVmYXVsdEV5ZVosaT1lLG49dCxzPTEsbD1vPWE9MCksdGhpcy5leWVYPWUsdGhpcy5leWVZPXQsdGhpcy5leWVaPXIsdm9pZCAwIT09aSYmKHRoaXMuY2VudGVyWD1pLHRoaXMuY2VudGVyWT1uLHRoaXMuY2VudGVyWj1hKSx2b2lkIDAhPT1vJiYodGhpcy51cFg9byx0aGlzLnVwWT1zLHRoaXMudXBaPWwpO3ZhciB1PXRoaXMuX2dldExvY2FsQXhlcygpO3RoaXMuY2FtZXJhTWF0cml4LnNldCh1LnhbMF0sdS55WzBdLHUuelswXSwwLHUueFsxXSx1LnlbMV0sdS56WzFdLDAsdS54WzJdLHUueVsyXSx1LnpbMl0sMCwwLDAsMCwxKTt2YXIgaD0tZSxjPS10LGY9LXI7cmV0dXJuIHRoaXMuY2FtZXJhTWF0cml4LnRyYW5zbGF0ZShbaCxjLGZdKSx0aGlzLl9pc0FjdGl2ZSgpJiZ0aGlzLl9yZW5kZXJlci51TVZNYXRyaXguc2V0KHRoaXMuY2FtZXJhTWF0cml4Lm1hdDRbMF0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxXSx0aGlzLmNhbWVyYU1hdHJpeC5tYXQ0WzJdLHRoaXMuY2FtZXJhTWF0cml4Lm1hdDRbM10sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFs0XSx0aGlzLmNhbWVyYU1hdHJpeC5tYXQ0WzVdLHRoaXMuY2FtZXJhTWF0cml4Lm1hdDRbNl0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFs3XSx0aGlzLmNhbWVyYU1hdHJpeC5tYXQ0WzhdLHRoaXMuY2FtZXJhTWF0cml4Lm1hdDRbOV0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxMF0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxMV0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxMl0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxM10sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxNF0sdGhpcy5jYW1lcmFNYXRyaXgubWF0NFsxNV0pLHRoaXN9LG0uZGVmYXVsdC5DYW1lcmEucHJvdG90eXBlLm1vdmU9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMuX2dldExvY2FsQXhlcygpLG49W2kueFswXSplLGkueFsxXSplLGkueFsyXSplXSxhPVtpLnlbMF0qdCxpLnlbMV0qdCxpLnlbMl0qdF0sbz1baS56WzBdKnIsaS56WzFdKnIsaS56WzJdKnJdO3RoaXMuY2FtZXJhKHRoaXMuZXllWCtuWzBdK2FbMF0rb1swXSx0aGlzLmV5ZVkrblsxXSthWzFdK29bMV0sdGhpcy5leWVaK25bMl0rYVsyXStvWzJdLHRoaXMuY2VudGVyWCtuWzBdK2FbMF0rb1swXSx0aGlzLmNlbnRlclkrblsxXSthWzFdK29bMV0sdGhpcy5jZW50ZXJaK25bMl0rYVsyXStvWzJdLDAsMSwwKX0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUuc2V0UG9zaXRpb249ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWUtdGhpcy5leWVYLG49dC10aGlzLmV5ZVksYT1yLXRoaXMuZXllWjt0aGlzLmNhbWVyYShlLHQscix0aGlzLmNlbnRlclgraSx0aGlzLmNlbnRlclkrbix0aGlzLmNlbnRlclorYSwwLDEsMCl9LG0uZGVmYXVsdC5DYW1lcmEucHJvdG90eXBlLl9jb21wdXRlQ2FtZXJhRGVmYXVsdFNldHRpbmdzPWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0Q2FtZXJhRk9WPTYwLzE4MCpNYXRoLlBJLHRoaXMuZGVmYXVsdEFzcGVjdFJhdGlvPXRoaXMuX3JlbmRlcmVyLndpZHRoL3RoaXMuX3JlbmRlcmVyLmhlaWdodCx0aGlzLmRlZmF1bHRFeWVYPTAsdGhpcy5kZWZhdWx0RXllWT0wLHRoaXMuZGVmYXVsdEV5ZVo9dGhpcy5fcmVuZGVyZXIuaGVpZ2h0LzIvTWF0aC50YW4odGhpcy5kZWZhdWx0Q2FtZXJhRk9WLzIpLHRoaXMuZGVmYXVsdENlbnRlclg9MCx0aGlzLmRlZmF1bHRDZW50ZXJZPTAsdGhpcy5kZWZhdWx0Q2VudGVyWj0wLHRoaXMuZGVmYXVsdENhbWVyYU5lYXI9LjEqdGhpcy5kZWZhdWx0RXllWix0aGlzLmRlZmF1bHRDYW1lcmFGYXI9MTAqdGhpcy5kZWZhdWx0RXllWn0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUuX3NldERlZmF1bHRDYW1lcmE9ZnVuY3Rpb24oKXt0aGlzLmNhbWVyYUZPVj10aGlzLmRlZmF1bHRDYW1lcmFGT1YsdGhpcy5hc3BlY3RSYXRpbz10aGlzLmRlZmF1bHRBc3BlY3RSYXRpbyx0aGlzLmV5ZVg9dGhpcy5kZWZhdWx0RXllWCx0aGlzLmV5ZVk9dGhpcy5kZWZhdWx0RXllWSx0aGlzLmV5ZVo9dGhpcy5kZWZhdWx0RXllWix0aGlzLmNlbnRlclg9dGhpcy5kZWZhdWx0Q2VudGVyWCx0aGlzLmNlbnRlclk9dGhpcy5kZWZhdWx0Q2VudGVyWSx0aGlzLmNlbnRlclo9dGhpcy5kZWZhdWx0Q2VudGVyWix0aGlzLnVwWD0wLHRoaXMudXBZPTEsdGhpcy51cFo9MCx0aGlzLmNhbWVyYU5lYXI9dGhpcy5kZWZhdWx0Q2FtZXJhTmVhcix0aGlzLmNhbWVyYUZhcj10aGlzLmRlZmF1bHRDYW1lcmFGYXIsdGhpcy5wZXJzcGVjdGl2ZSgpLHRoaXMuY2FtZXJhKCksdGhpcy5jYW1lcmFUeXBlPVwiZGVmYXVsdFwifSxtLmRlZmF1bHQuQ2FtZXJhLnByb3RvdHlwZS5fcmVzaXplPWZ1bmN0aW9uKCl7XCJkZWZhdWx0XCI9PT10aGlzLmNhbWVyYVR5cGU/KHRoaXMuX2NvbXB1dGVDYW1lcmFEZWZhdWx0U2V0dGluZ3MoKSx0aGlzLl9zZXREZWZhdWx0Q2FtZXJhKCkpOnRoaXMucGVyc3BlY3RpdmUodGhpcy5jYW1lcmFGT1YsdGhpcy5fcmVuZGVyZXIud2lkdGgvdGhpcy5fcmVuZGVyZXIuaGVpZ2h0KX0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUuY29weT1mdW5jdGlvbigpe3ZhciBlPW5ldyBtLmRlZmF1bHQuQ2FtZXJhKHRoaXMuX3JlbmRlcmVyKTtyZXR1cm4gZS5jYW1lcmFGT1Y9dGhpcy5jYW1lcmFGT1YsZS5hc3BlY3RSYXRpbz10aGlzLmFzcGVjdFJhdGlvLGUuZXllWD10aGlzLmV5ZVgsZS5leWVZPXRoaXMuZXllWSxlLmV5ZVo9dGhpcy5leWVaLGUuY2VudGVyWD10aGlzLmNlbnRlclgsZS5jZW50ZXJZPXRoaXMuY2VudGVyWSxlLmNlbnRlclo9dGhpcy5jZW50ZXJaLGUuY2FtZXJhTmVhcj10aGlzLmNhbWVyYU5lYXIsZS5jYW1lcmFGYXI9dGhpcy5jYW1lcmFGYXIsZS5jYW1lcmFUeXBlPXRoaXMuY2FtZXJhVHlwZSxlLmNhbWVyYU1hdHJpeD10aGlzLmNhbWVyYU1hdHJpeC5jb3B5KCksZS5wcm9qTWF0cml4PXRoaXMucHJvak1hdHJpeC5jb3B5KCksZX0sbS5kZWZhdWx0LkNhbWVyYS5wcm90b3R5cGUuX2dldExvY2FsQXhlcz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZXllWC10aGlzLmNlbnRlclgsdD10aGlzLmV5ZVktdGhpcy5jZW50ZXJZLHI9dGhpcy5leWVaLXRoaXMuY2VudGVyWixpPU1hdGguc3FydChlKmUrdCp0K3Iqcik7MCE9PWkmJihlLz1pLHQvPWksci89aSk7dmFyIG49dGhpcy51cFgsYT10aGlzLnVwWSxvPXRoaXMudXBaLHM9YSpyLW8qdCxsPS1uKnIrbyplLHU9bip0LWEqZTtuPXQqdS1yKmwsYT0tZSp1K3IqcyxvPWUqbC10KnM7dmFyIGg9TWF0aC5zcXJ0KHMqcytsKmwrdSp1KTswIT09aCYmKHMvPWgsbC89aCx1Lz1oKTt2YXIgYz1NYXRoLnNxcnQobipuK2EqYStvKm8pO3JldHVybiAwIT09YyYmKG4vPWMsYS89YyxvLz1jKSx7eDpbcyxsLHVdLHk6W24sYSxvXSx6OltlLHQscl19fSxtLmRlZmF1bHQuQ2FtZXJhLnByb3RvdHlwZS5fb3JiaXQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPXRoaXMuZXllWC10aGlzLmNlbnRlclgsbj10aGlzLmV5ZVktdGhpcy5jZW50ZXJZLGE9dGhpcy5leWVaLXRoaXMuY2VudGVyWixvPU1hdGguc3FydChpKmkrbipuK2EqYSkscz1NYXRoLmF0YW4yKGksYSksbD1NYXRoLmFjb3MoTWF0aC5tYXgoLTEsTWF0aC5taW4oMSxuL28pKSk7cys9ZSwobys9cik8MCYmKG89LjEpLChsKz10KT5NYXRoLlBJP2w9TWF0aC5QSTpsPD0wJiYobD0uMDAxKTt2YXIgdT1NYXRoLnNpbihsKSpvKk1hdGguc2luKHMpLGg9TWF0aC5jb3MobCkqbyxjPU1hdGguc2luKGwpKm8qTWF0aC5jb3Mocyk7dGhpcy5jYW1lcmEodSt0aGlzLmNlbnRlclgsaCt0aGlzLmNlbnRlclksYyt0aGlzLmNlbnRlclosdGhpcy5jZW50ZXJYLHRoaXMuY2VudGVyWSx0aGlzLmNlbnRlclosMCwxLDApfSxtLmRlZmF1bHQuQ2FtZXJhLnByb3RvdHlwZS5faXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PXRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmF9LG0uZGVmYXVsdC5wcm90b3R5cGUuc2V0Q2FtZXJhPWZ1bmN0aW9uKGUpe3RoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmE9ZSx0aGlzLl9yZW5kZXJlci51UE1hdHJpeC5zZXQoZS5wcm9qTWF0cml4Lm1hdDRbMF0sZS5wcm9qTWF0cml4Lm1hdDRbMV0sZS5wcm9qTWF0cml4Lm1hdDRbMl0sZS5wcm9qTWF0cml4Lm1hdDRbM10sZS5wcm9qTWF0cml4Lm1hdDRbNF0sZS5wcm9qTWF0cml4Lm1hdDRbNV0sZS5wcm9qTWF0cml4Lm1hdDRbNl0sZS5wcm9qTWF0cml4Lm1hdDRbN10sZS5wcm9qTWF0cml4Lm1hdDRbOF0sZS5wcm9qTWF0cml4Lm1hdDRbOV0sZS5wcm9qTWF0cml4Lm1hdDRbMTBdLGUucHJvak1hdHJpeC5tYXQ0WzExXSxlLnByb2pNYXRyaXgubWF0NFsxMl0sZS5wcm9qTWF0cml4Lm1hdDRbMTNdLGUucHJvak1hdHJpeC5tYXQ0WzE0XSxlLnByb2pNYXRyaXgubWF0NFsxNV0pfTt2YXIgbj1tLmRlZmF1bHQuQ2FtZXJhO3IuZGVmYXVsdD1ufSx7XCIuLi9jb3JlL21haW5cIjozNn1dLDg1OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxoPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtoLmRlZmF1bHQuR2VvbWV0cnk9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0aGlzLnZlcnRpY2VzPVtdLHRoaXMubGluZVZlcnRpY2VzPVtdLHRoaXMubGluZU5vcm1hbHM9W10sdGhpcy52ZXJ0ZXhOb3JtYWxzPVtdLHRoaXMuZmFjZXM9W10sdGhpcy51dnM9W10sdGhpcy5lZGdlcz1bXSx0aGlzLnZlcnRleENvbG9ycz1bXSx0aGlzLmRldGFpbFg9dm9pZCAwIT09ZT9lOjEsdGhpcy5kZXRhaWxZPXZvaWQgMCE9PXQ/dDoxLHRoaXMuZGlydHlGbGFncz17fSxyIGluc3RhbmNlb2YgRnVuY3Rpb24mJnIuY2FsbCh0aGlzKSx0aGlzfSxoLmRlZmF1bHQuR2VvbWV0cnkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5saW5lVmVydGljZXMubGVuZ3RoPTAsdGhpcy5saW5lTm9ybWFscy5sZW5ndGg9MCx0aGlzLnZlcnRpY2VzLmxlbmd0aD0wLHRoaXMuZWRnZXMubGVuZ3RoPTAsdGhpcy52ZXJ0ZXhDb2xvcnMubGVuZ3RoPTAsdGhpcy52ZXJ0ZXhOb3JtYWxzLmxlbmd0aD0wLHRoaXMudXZzLmxlbmd0aD0wLHRoaXMuZGlydHlGbGFncz17fX0saC5kZWZhdWx0Lkdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlRmFjZXM9ZnVuY3Rpb24oKXt0aGlzLmZhY2VzLmxlbmd0aD0wO2Zvcih2YXIgZSx0LHIsaSxuPXRoaXMuZGV0YWlsWCsxLGE9MDthPHRoaXMuZGV0YWlsWTthKyspZm9yKHZhciBvPTA7bzx0aGlzLmRldGFpbFg7bysrKXQ9KGU9YSpuK28pKzEscj0oYSsxKSpuK28rMSxpPShhKzEpKm4rbyx0aGlzLmZhY2VzLnB1c2goW2UsdCxpXSksdGhpcy5mYWNlcy5wdXNoKFtpLHQscl0pO3JldHVybiB0aGlzfSxoLmRlZmF1bHQuR2VvbWV0cnkucHJvdG90eXBlLl9nZXRGYWNlTm9ybWFsPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZmFjZXNbZV0scj10aGlzLnZlcnRpY2VzW3RbMF1dLGk9dGhpcy52ZXJ0aWNlc1t0WzFdXSxuPXRoaXMudmVydGljZXNbdFsyXV0sYT1oLmRlZmF1bHQuVmVjdG9yLnN1YihpLHIpLG89aC5kZWZhdWx0LlZlY3Rvci5zdWIobixyKSxzPWguZGVmYXVsdC5WZWN0b3IuY3Jvc3MoYSxvKSxsPWguZGVmYXVsdC5WZWN0b3IubWFnKHMpLHU9bC8oaC5kZWZhdWx0LlZlY3Rvci5tYWcoYSkqaC5kZWZhdWx0LlZlY3Rvci5tYWcobykpO3JldHVybiAwPT09dXx8aXNOYU4odSk/KGNvbnNvbGUud2FybihcInA1Lkdlb21ldHJ5LnByb3RvdHlwZS5fZ2V0RmFjZU5vcm1hbDpcIixcImZhY2UgaGFzIGNvbGluZWFyIHNpZGVzIG9yIGEgcmVwZWF0ZWQgdmVydGV4XCIpLHMpOigxPHUmJih1PTEpLHMubXVsdChNYXRoLmFzaW4odSkvbCkpfSxoLmRlZmF1bHQuR2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVOb3JtYWxzPWZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLnZlcnRleE5vcm1hbHMscj10aGlzLnZlcnRpY2VzLGk9dGhpcy5mYWNlcztmb3IoZT10Lmxlbmd0aD0wO2U8ci5sZW5ndGg7KytlKXQucHVzaChuZXcgaC5kZWZhdWx0LlZlY3Rvcik7Zm9yKHZhciBuPTA7bjxpLmxlbmd0aDsrK24pZm9yKHZhciBhPWlbbl0sbz10aGlzLl9nZXRGYWNlTm9ybWFsKG4pLHM9MDtzPDM7KytzKXt0W2Fbc11dLmFkZChvKX1mb3IoZT0wO2U8ci5sZW5ndGg7KytlKXRbZV0ubm9ybWFsaXplKCk7cmV0dXJuIHRoaXN9LGguZGVmYXVsdC5HZW9tZXRyeS5wcm90b3R5cGUuYXZlcmFnZU5vcm1hbHM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPD10aGlzLmRldGFpbFk7ZSsrKXt2YXIgdD10aGlzLmRldGFpbFgrMSxyPWguZGVmYXVsdC5WZWN0b3IuYWRkKHRoaXMudmVydGV4Tm9ybWFsc1tlKnRdLHRoaXMudmVydGV4Tm9ybWFsc1tlKnQrdGhpcy5kZXRhaWxYXSk7cj1oLmRlZmF1bHQuVmVjdG9yLmRpdihyLDIpLHRoaXMudmVydGV4Tm9ybWFsc1tlKnRdPXIsdGhpcy52ZXJ0ZXhOb3JtYWxzW2UqdCt0aGlzLmRldGFpbFhdPXJ9cmV0dXJuIHRoaXN9LGguZGVmYXVsdC5HZW9tZXRyeS5wcm90b3R5cGUuYXZlcmFnZVBvbGVOb3JtYWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW5ldyBoLmRlZmF1bHQuVmVjdG9yKDAsMCwwKSx0PTA7dDx0aGlzLmRldGFpbFg7dCsrKWUuYWRkKHRoaXMudmVydGV4Tm9ybWFsc1t0XSk7ZT1oLmRlZmF1bHQuVmVjdG9yLmRpdihlLHRoaXMuZGV0YWlsWCk7Zm9yKHZhciByPTA7cjx0aGlzLmRldGFpbFg7cisrKXRoaXMudmVydGV4Tm9ybWFsc1tyXT1lO2U9bmV3IGguZGVmYXVsdC5WZWN0b3IoMCwwLDApO2Zvcih2YXIgaT10aGlzLnZlcnRpY2VzLmxlbmd0aC0xO2k+dGhpcy52ZXJ0aWNlcy5sZW5ndGgtMS10aGlzLmRldGFpbFg7aS0tKWUuYWRkKHRoaXMudmVydGV4Tm9ybWFsc1tpXSk7ZT1oLmRlZmF1bHQuVmVjdG9yLmRpdihlLHRoaXMuZGV0YWlsWCk7Zm9yKHZhciBuPXRoaXMudmVydGljZXMubGVuZ3RoLTE7bj50aGlzLnZlcnRpY2VzLmxlbmd0aC0xLXRoaXMuZGV0YWlsWDtuLS0pdGhpcy52ZXJ0ZXhOb3JtYWxzW25dPWU7cmV0dXJuIHRoaXN9LGguZGVmYXVsdC5HZW9tZXRyeS5wcm90b3R5cGUuX21ha2VUcmlhbmdsZUVkZ2VzPWZ1bmN0aW9uKCl7aWYodGhpcy5lZGdlcy5sZW5ndGg9MCxBcnJheS5pc0FycmF5KHRoaXMuc3Ryb2tlSW5kaWNlcykpZm9yKHZhciBlPTAsdD10aGlzLnN0cm9rZUluZGljZXMubGVuZ3RoO2U8dDtlKyspdGhpcy5lZGdlcy5wdXNoKHRoaXMuc3Ryb2tlSW5kaWNlc1tlXSk7ZWxzZSBmb3IodmFyIHI9MDtyPHRoaXMuZmFjZXMubGVuZ3RoO3IrKyl0aGlzLmVkZ2VzLnB1c2goW3RoaXMuZmFjZXNbcl1bMF0sdGhpcy5mYWNlc1tyXVsxXV0pLHRoaXMuZWRnZXMucHVzaChbdGhpcy5mYWNlc1tyXVsxXSx0aGlzLmZhY2VzW3JdWzJdXSksdGhpcy5lZGdlcy5wdXNoKFt0aGlzLmZhY2VzW3JdWzJdLHRoaXMuZmFjZXNbcl1bMF1dKTtyZXR1cm4gdGhpc30saC5kZWZhdWx0Lkdlb21ldHJ5LnByb3RvdHlwZS5fZWRnZXNUb1ZlcnRpY2VzPWZ1bmN0aW9uKCl7dGhpcy5saW5lVmVydGljZXMubGVuZ3RoPTA7Zm9yKHZhciBlPXRoaXMubGluZU5vcm1hbHMubGVuZ3RoPTA7ZTx0aGlzLmVkZ2VzLmxlbmd0aDtlKyspe3ZhciB0PXRoaXMudmVydGljZXNbdGhpcy5lZGdlc1tlXVswXV0scj10aGlzLnZlcnRpY2VzW3RoaXMuZWRnZXNbZV1bMV1dLGk9ci5jb3B5KCkuc3ViKHQpLm5vcm1hbGl6ZSgpLG49dC5hcnJheSgpLGE9dC5hcnJheSgpLG89ci5hcnJheSgpLHM9ci5hcnJheSgpLGw9aS5hcnJheSgpLHU9aS5hcnJheSgpO2wucHVzaCgxKSx1LnB1c2goLTEpLHRoaXMubGluZU5vcm1hbHMucHVzaChsLHUsbCxsLHUsdSksdGhpcy5saW5lVmVydGljZXMucHVzaChuLGEsbyxvLGEscyl9cmV0dXJuIHRoaXN9LGguZGVmYXVsdC5HZW9tZXRyeS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYoMDx0aGlzLnZlcnRpY2VzLmxlbmd0aCl7Zm9yKHZhciBlPXRoaXMudmVydGljZXNbMF0uY29weSgpLHQ9dGhpcy52ZXJ0aWNlc1swXS5jb3B5KCkscj0wO3I8dGhpcy52ZXJ0aWNlcy5sZW5ndGg7cisrKWUueD1NYXRoLm1heChlLngsdGhpcy52ZXJ0aWNlc1tyXS54KSx0Lng9TWF0aC5taW4odC54LHRoaXMudmVydGljZXNbcl0ueCksZS55PU1hdGgubWF4KGUueSx0aGlzLnZlcnRpY2VzW3JdLnkpLHQueT1NYXRoLm1pbih0LnksdGhpcy52ZXJ0aWNlc1tyXS55KSxlLno9TWF0aC5tYXgoZS56LHRoaXMudmVydGljZXNbcl0ueiksdC56PU1hdGgubWluKHQueix0aGlzLnZlcnRpY2VzW3JdLnopO2Zvcih2YXIgaT1oLmRlZmF1bHQuVmVjdG9yLmxlcnAoZSx0LC41KSxuPWguZGVmYXVsdC5WZWN0b3Iuc3ViKGUsdCksYT0yMDAvTWF0aC5tYXgoTWF0aC5tYXgobi54LG4ueSksbi56KSxvPTA7bzx0aGlzLnZlcnRpY2VzLmxlbmd0aDtvKyspdGhpcy52ZXJ0aWNlc1tvXS5zdWIoaSksdGhpcy52ZXJ0aWNlc1tvXS5tdWx0KGEpfXJldHVybiB0aGlzfTt2YXIgbj1oLmRlZmF1bHQuR2VvbWV0cnk7ci5kZWZhdWx0PW59LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sODY6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLFA9KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9O3ZhciBuPUFycmF5LFI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBBcnJheX07XCJ1bmRlZmluZWRcIiE9dHlwZW9mIEZsb2F0MzJBcnJheSYmKG49RmxvYXQzMkFycmF5LFI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBBcnJheXx8ZSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheX0pLFAuZGVmYXVsdC5NYXRyaXg9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHQ9MDt0PGUubGVuZ3RoOysrdCllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gZS5sZW5ndGgmJmVbZS5sZW5ndGgtMV1pbnN0YW5jZW9mIFAuZGVmYXVsdCYmKHRoaXMucDU9ZVtlLmxlbmd0aC0xXSksXCJtYXQzXCI9PT1lWzBdP3RoaXMubWF0Mz1BcnJheS5pc0FycmF5KGVbMV0pP2VbMV06bmV3IG4oWzEsMCwwLDAsMSwwLDAsMCwxXSk6dGhpcy5tYXQ0PUFycmF5LmlzQXJyYXkoZVswXSk/ZVswXTpuZXcgbihbMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0pLHRoaXN9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFAuZGVmYXVsdC5NYXRyaXg/dGhpcy5tYXQ0PWUubWF0NDpSKGUpP3RoaXMubWF0ND1lOjE2PT09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMubWF0NFswXT1lLHRoaXMubWF0NFsxXT1hcmd1bWVudHNbMV0sdGhpcy5tYXQ0WzJdPWFyZ3VtZW50c1syXSx0aGlzLm1hdDRbM109YXJndW1lbnRzWzNdLHRoaXMubWF0NFs0XT1hcmd1bWVudHNbNF0sdGhpcy5tYXQ0WzVdPWFyZ3VtZW50c1s1XSx0aGlzLm1hdDRbNl09YXJndW1lbnRzWzZdLHRoaXMubWF0NFs3XT1hcmd1bWVudHNbN10sdGhpcy5tYXQ0WzhdPWFyZ3VtZW50c1s4XSx0aGlzLm1hdDRbOV09YXJndW1lbnRzWzldLHRoaXMubWF0NFsxMF09YXJndW1lbnRzWzEwXSx0aGlzLm1hdDRbMTFdPWFyZ3VtZW50c1sxMV0sdGhpcy5tYXQ0WzEyXT1hcmd1bWVudHNbMTJdLHRoaXMubWF0NFsxM109YXJndW1lbnRzWzEzXSx0aGlzLm1hdDRbMTRdPWFyZ3VtZW50c1sxNF0sdGhpcy5tYXQ0WzE1XT1hcmd1bWVudHNbMTVdKSx0aGlzfSxQLmRlZmF1bHQuTWF0cml4LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFAuZGVmYXVsdC5NYXRyaXgodGhpcy5tYXQ0LHRoaXMucDUpfSxQLmRlZmF1bHQuTWF0cml4LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IFAuZGVmYXVsdC5NYXRyaXgodGhpcy5wNSk7cmV0dXJuIGUubWF0NFswXT10aGlzLm1hdDRbMF0sZS5tYXQ0WzFdPXRoaXMubWF0NFsxXSxlLm1hdDRbMl09dGhpcy5tYXQ0WzJdLGUubWF0NFszXT10aGlzLm1hdDRbM10sZS5tYXQ0WzRdPXRoaXMubWF0NFs0XSxlLm1hdDRbNV09dGhpcy5tYXQ0WzVdLGUubWF0NFs2XT10aGlzLm1hdDRbNl0sZS5tYXQ0WzddPXRoaXMubWF0NFs3XSxlLm1hdDRbOF09dGhpcy5tYXQ0WzhdLGUubWF0NFs5XT10aGlzLm1hdDRbOV0sZS5tYXQ0WzEwXT10aGlzLm1hdDRbMTBdLGUubWF0NFsxMV09dGhpcy5tYXQ0WzExXSxlLm1hdDRbMTJdPXRoaXMubWF0NFsxMl0sZS5tYXQ0WzEzXT10aGlzLm1hdDRbMTNdLGUubWF0NFsxNF09dGhpcy5tYXQ0WzE0XSxlLm1hdDRbMTVdPXRoaXMubWF0NFsxNV0sZX0sUC5kZWZhdWx0Lk1hdHJpeC5pZGVudGl0eT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFAuZGVmYXVsdC5NYXRyaXgoZSl9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnRyYW5zcG9zZT1mdW5jdGlvbihlKXt2YXIgdCxyLGksbixhLG87cmV0dXJuIGUgaW5zdGFuY2VvZiBQLmRlZmF1bHQuTWF0cml4Pyh0PWUubWF0NFsxXSxyPWUubWF0NFsyXSxpPWUubWF0NFszXSxuPWUubWF0NFs2XSxhPWUubWF0NFs3XSxvPWUubWF0NFsxMV0sdGhpcy5tYXQ0WzBdPWUubWF0NFswXSx0aGlzLm1hdDRbMV09ZS5tYXQ0WzRdLHRoaXMubWF0NFsyXT1lLm1hdDRbOF0sdGhpcy5tYXQ0WzNdPWUubWF0NFsxMl0sdGhpcy5tYXQ0WzRdPXQsdGhpcy5tYXQ0WzVdPWUubWF0NFs1XSx0aGlzLm1hdDRbNl09ZS5tYXQ0WzldLHRoaXMubWF0NFs3XT1lLm1hdDRbMTNdLHRoaXMubWF0NFs4XT1yLHRoaXMubWF0NFs5XT1uLHRoaXMubWF0NFsxMF09ZS5tYXQ0WzEwXSx0aGlzLm1hdDRbMTFdPWUubWF0NFsxNF0sdGhpcy5tYXQ0WzEyXT1pLHRoaXMubWF0NFsxM109YSx0aGlzLm1hdDRbMTRdPW8sdGhpcy5tYXQ0WzE1XT1lLm1hdDRbMTVdKTpSKGUpJiYodD1lWzFdLHI9ZVsyXSxpPWVbM10sbj1lWzZdLGE9ZVs3XSxvPWVbMTFdLHRoaXMubWF0NFswXT1lWzBdLHRoaXMubWF0NFsxXT1lWzRdLHRoaXMubWF0NFsyXT1lWzhdLHRoaXMubWF0NFszXT1lWzEyXSx0aGlzLm1hdDRbNF09dCx0aGlzLm1hdDRbNV09ZVs1XSx0aGlzLm1hdDRbNl09ZVs5XSx0aGlzLm1hdDRbN109ZVsxM10sdGhpcy5tYXQ0WzhdPXIsdGhpcy5tYXQ0WzldPW4sdGhpcy5tYXQ0WzEwXT1lWzEwXSx0aGlzLm1hdDRbMTFdPWVbMTRdLHRoaXMubWF0NFsxMl09aSx0aGlzLm1hdDRbMTNdPWEsdGhpcy5tYXQ0WzE0XT1vLHRoaXMubWF0NFsxNV09ZVsxNV0pLHRoaXN9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLmludmVydD1mdW5jdGlvbihlKXt2YXIgdCxyLGksbixhLG8scyxsLHUsaCxjLGYsZCxwLG0sdjtlIGluc3RhbmNlb2YgUC5kZWZhdWx0Lk1hdHJpeD8odD1lLm1hdDRbMF0scj1lLm1hdDRbMV0saT1lLm1hdDRbMl0sbj1lLm1hdDRbM10sYT1lLm1hdDRbNF0sbz1lLm1hdDRbNV0scz1lLm1hdDRbNl0sbD1lLm1hdDRbN10sdT1lLm1hdDRbOF0saD1lLm1hdDRbOV0sYz1lLm1hdDRbMTBdLGY9ZS5tYXQ0WzExXSxkPWUubWF0NFsxMl0scD1lLm1hdDRbMTNdLG09ZS5tYXQ0WzE0XSx2PWUubWF0NFsxNV0pOlIoZSkmJih0PWVbMF0scj1lWzFdLGk9ZVsyXSxuPWVbM10sYT1lWzRdLG89ZVs1XSxzPWVbNl0sbD1lWzddLHU9ZVs4XSxoPWVbOV0sYz1lWzEwXSxmPWVbMTFdLGQ9ZVsxMl0scD1lWzEzXSxtPWVbMTRdLHY9ZVsxNV0pO3ZhciB5PXQqby1yKmEsZz10KnMtaSphLGI9dCpsLW4qYSxfPXIqcy1pKm8seD1yKmwtbipvLHc9aSpsLW4qcyxTPXUqcC1oKmQsTT11Km0tYypkLFQ9dSp2LWYqZCxFPWgqbS1jKnAsQz1oKnYtZipwLEw9Yyp2LWYqbSxPPXkqTC1nKkMrYipFK18qVC14Kk0rdypTO3JldHVybiBPPyhPPTEvTyx0aGlzLm1hdDRbMF09KG8qTC1zKkMrbCpFKSpPLHRoaXMubWF0NFsxXT0oaSpDLXIqTC1uKkUpKk8sdGhpcy5tYXQ0WzJdPShwKnctbSp4K3YqXykqTyx0aGlzLm1hdDRbM109KGMqeC1oKnctZipfKSpPLHRoaXMubWF0NFs0XT0ocypULWEqTC1sKk0pKk8sdGhpcy5tYXQ0WzVdPSh0KkwtaSpUK24qTSkqTyx0aGlzLm1hdDRbNl09KG0qYi1kKnctdipnKSpPLHRoaXMubWF0NFs3XT0odSp3LWMqYitmKmcpKk8sdGhpcy5tYXQ0WzhdPShhKkMtbypUK2wqUykqTyx0aGlzLm1hdDRbOV09KHIqVC10KkMtbipTKSpPLHRoaXMubWF0NFsxMF09KGQqeC1wKmIrdip5KSpPLHRoaXMubWF0NFsxMV09KGgqYi11KngtZip5KSpPLHRoaXMubWF0NFsxMl09KG8qTS1hKkUtcypTKSpPLHRoaXMubWF0NFsxM109KHQqRS1yKk0raSpTKSpPLHRoaXMubWF0NFsxNF09KHAqZy1kKl8tbSp5KSpPLHRoaXMubWF0NFsxNV09KHUqXy1oKmcrYyp5KSpPLHRoaXMpOm51bGx9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLmludmVydDN4Mz1mdW5jdGlvbigpe3ZhciBlPXRoaXMubWF0M1swXSx0PXRoaXMubWF0M1sxXSxyPXRoaXMubWF0M1syXSxpPXRoaXMubWF0M1szXSxuPXRoaXMubWF0M1s0XSxhPXRoaXMubWF0M1s1XSxvPXRoaXMubWF0M1s2XSxzPXRoaXMubWF0M1s3XSxsPXRoaXMubWF0M1s4XSx1PWwqbi1hKnMsaD0tbCppK2EqbyxjPXMqaS1uKm8sZj1lKnUrdCpoK3IqYztyZXR1cm4gZj8oZj0xL2YsdGhpcy5tYXQzWzBdPXUqZix0aGlzLm1hdDNbMV09KC1sKnQrcipzKSpmLHRoaXMubWF0M1syXT0oYSp0LXIqbikqZix0aGlzLm1hdDNbM109aCpmLHRoaXMubWF0M1s0XT0obCplLXIqbykqZix0aGlzLm1hdDNbNV09KC1hKmUrcippKSpmLHRoaXMubWF0M1s2XT1jKmYsdGhpcy5tYXQzWzddPSgtcyplK3QqbykqZix0aGlzLm1hdDNbOF09KG4qZS10KmkpKmYsdGhpcyk6bnVsbH0sUC5kZWZhdWx0Lk1hdHJpeC5wcm90b3R5cGUudHJhbnNwb3NlM3gzPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMV0scj1lWzJdLGk9ZVs1XTtyZXR1cm4gdGhpcy5tYXQzWzFdPWVbM10sdGhpcy5tYXQzWzJdPWVbNl0sdGhpcy5tYXQzWzNdPXQsdGhpcy5tYXQzWzVdPWVbN10sdGhpcy5tYXQzWzZdPXIsdGhpcy5tYXQzWzddPWksdGhpc30sUC5kZWZhdWx0Lk1hdHJpeC5wcm90b3R5cGUuaW52ZXJzZVRyYW5zcG9zZT1mdW5jdGlvbihlKXt2b2lkIDA9PT10aGlzLm1hdDM/Y29uc29sZS5lcnJvcihcInNvcnJ5LCB0aGlzIGZ1bmN0aW9uIG9ubHkgd29ya3Mgd2l0aCBtYXQzXCIpOih0aGlzLm1hdDNbMF09ZS5tYXQ0WzBdLHRoaXMubWF0M1sxXT1lLm1hdDRbMV0sdGhpcy5tYXQzWzJdPWUubWF0NFsyXSx0aGlzLm1hdDNbM109ZS5tYXQ0WzRdLHRoaXMubWF0M1s0XT1lLm1hdDRbNV0sdGhpcy5tYXQzWzVdPWUubWF0NFs2XSx0aGlzLm1hdDNbNl09ZS5tYXQ0WzhdLHRoaXMubWF0M1s3XT1lLm1hdDRbOV0sdGhpcy5tYXQzWzhdPWUubWF0NFsxMF0pO3ZhciB0PXRoaXMuaW52ZXJ0M3gzKCk7aWYodCl0LnRyYW5zcG9zZTN4Myh0aGlzLm1hdDMpO2Vsc2UgZm9yKHZhciByPTA7cjw5O3IrKyl0aGlzLm1hdDNbcl09MDtyZXR1cm4gdGhpc30sUC5kZWZhdWx0Lk1hdHJpeC5wcm90b3R5cGUuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1hdDRbMF0qdGhpcy5tYXQ0WzVdLXRoaXMubWF0NFsxXSp0aGlzLm1hdDRbNF0sdD10aGlzLm1hdDRbMF0qdGhpcy5tYXQ0WzZdLXRoaXMubWF0NFsyXSp0aGlzLm1hdDRbNF0scj10aGlzLm1hdDRbMF0qdGhpcy5tYXQ0WzddLXRoaXMubWF0NFszXSp0aGlzLm1hdDRbNF0saT10aGlzLm1hdDRbMV0qdGhpcy5tYXQ0WzZdLXRoaXMubWF0NFsyXSp0aGlzLm1hdDRbNV0sbj10aGlzLm1hdDRbMV0qdGhpcy5tYXQ0WzddLXRoaXMubWF0NFszXSp0aGlzLm1hdDRbNV0sYT10aGlzLm1hdDRbMl0qdGhpcy5tYXQ0WzddLXRoaXMubWF0NFszXSp0aGlzLm1hdDRbNl0sbz10aGlzLm1hdDRbOF0qdGhpcy5tYXQ0WzEzXS10aGlzLm1hdDRbOV0qdGhpcy5tYXQ0WzEyXSxzPXRoaXMubWF0NFs4XSp0aGlzLm1hdDRbMTRdLXRoaXMubWF0NFsxMF0qdGhpcy5tYXQ0WzEyXSxsPXRoaXMubWF0NFs4XSp0aGlzLm1hdDRbMTVdLXRoaXMubWF0NFsxMV0qdGhpcy5tYXQ0WzEyXSx1PXRoaXMubWF0NFs5XSp0aGlzLm1hdDRbMTRdLXRoaXMubWF0NFsxMF0qdGhpcy5tYXQ0WzEzXSxoPXRoaXMubWF0NFs5XSp0aGlzLm1hdDRbMTVdLXRoaXMubWF0NFsxMV0qdGhpcy5tYXQ0WzEzXTtyZXR1cm4gZSoodGhpcy5tYXQ0WzEwXSp0aGlzLm1hdDRbMTVdLXRoaXMubWF0NFsxMV0qdGhpcy5tYXQ0WzE0XSktdCpoK3IqdStpKmwtbipzK2Eqb30sUC5kZWZhdWx0Lk1hdHJpeC5wcm90b3R5cGUubXVsdD1mdW5jdGlvbihlKXt2YXIgdDtpZihlPT09dGhpc3x8ZT09PXRoaXMubWF0NCl0PXRoaXMuY29weSgpLm1hdDQ7ZWxzZSBpZihlIGluc3RhbmNlb2YgUC5kZWZhdWx0Lk1hdHJpeCl0PWUubWF0NDtlbHNlIGlmKFIoZSkpdD1lO2Vsc2V7aWYoMTYhPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybjt0PWFyZ3VtZW50c312YXIgcj10aGlzLm1hdDRbMF0saT10aGlzLm1hdDRbMV0sbj10aGlzLm1hdDRbMl0sYT10aGlzLm1hdDRbM107cmV0dXJuIHRoaXMubWF0NFswXT1yKnRbMF0raSp0WzRdK24qdFs4XSthKnRbMTJdLHRoaXMubWF0NFsxXT1yKnRbMV0raSp0WzVdK24qdFs5XSthKnRbMTNdLHRoaXMubWF0NFsyXT1yKnRbMl0raSp0WzZdK24qdFsxMF0rYSp0WzE0XSx0aGlzLm1hdDRbM109cip0WzNdK2kqdFs3XStuKnRbMTFdK2EqdFsxNV0scj10aGlzLm1hdDRbNF0saT10aGlzLm1hdDRbNV0sbj10aGlzLm1hdDRbNl0sYT10aGlzLm1hdDRbN10sdGhpcy5tYXQ0WzRdPXIqdFswXStpKnRbNF0rbip0WzhdK2EqdFsxMl0sdGhpcy5tYXQ0WzVdPXIqdFsxXStpKnRbNV0rbip0WzldK2EqdFsxM10sdGhpcy5tYXQ0WzZdPXIqdFsyXStpKnRbNl0rbip0WzEwXSthKnRbMTRdLHRoaXMubWF0NFs3XT1yKnRbM10raSp0WzddK24qdFsxMV0rYSp0WzE1XSxyPXRoaXMubWF0NFs4XSxpPXRoaXMubWF0NFs5XSxuPXRoaXMubWF0NFsxMF0sYT10aGlzLm1hdDRbMTFdLHRoaXMubWF0NFs4XT1yKnRbMF0raSp0WzRdK24qdFs4XSthKnRbMTJdLHRoaXMubWF0NFs5XT1yKnRbMV0raSp0WzVdK24qdFs5XSthKnRbMTNdLHRoaXMubWF0NFsxMF09cip0WzJdK2kqdFs2XStuKnRbMTBdK2EqdFsxNF0sdGhpcy5tYXQ0WzExXT1yKnRbM10raSp0WzddK24qdFsxMV0rYSp0WzE1XSxyPXRoaXMubWF0NFsxMl0saT10aGlzLm1hdDRbMTNdLG49dGhpcy5tYXQ0WzE0XSxhPXRoaXMubWF0NFsxNV0sdGhpcy5tYXQ0WzEyXT1yKnRbMF0raSp0WzRdK24qdFs4XSthKnRbMTJdLHRoaXMubWF0NFsxM109cip0WzFdK2kqdFs1XStuKnRbOV0rYSp0WzEzXSx0aGlzLm1hdDRbMTRdPXIqdFsyXStpKnRbNl0rbip0WzEwXSthKnRbMTRdLHRoaXMubWF0NFsxNV09cip0WzNdK2kqdFs3XStuKnRbMTFdK2EqdFsxNV0sdGhpc30sUC5kZWZhdWx0Lk1hdHJpeC5wcm90b3R5cGUuYXBwbHk9ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZT09PXRoaXN8fGU9PT10aGlzLm1hdDQpdD10aGlzLmNvcHkoKS5tYXQ0O2Vsc2UgaWYoZSBpbnN0YW5jZW9mIFAuZGVmYXVsdC5NYXRyaXgpdD1lLm1hdDQ7ZWxzZSBpZihSKGUpKXQ9ZTtlbHNle2lmKDE2IT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm47dD1hcmd1bWVudHN9dmFyIHI9dGhpcy5tYXQ0LGk9clswXSxuPXJbNF0sYT1yWzhdLG89clsxMl07clswXT10WzBdKmkrdFsxXSpuK3RbMl0qYSt0WzNdKm8scls0XT10WzRdKmkrdFs1XSpuK3RbNl0qYSt0WzddKm8scls4XT10WzhdKmkrdFs5XSpuK3RbMTBdKmErdFsxMV0qbyxyWzEyXT10WzEyXSppK3RbMTNdKm4rdFsxNF0qYSt0WzE1XSpvO3ZhciBzPXJbMV0sbD1yWzVdLHU9cls5XSxoPXJbMTNdO3JbMV09dFswXSpzK3RbMV0qbCt0WzJdKnUrdFszXSpoLHJbNV09dFs0XSpzK3RbNV0qbCt0WzZdKnUrdFs3XSpoLHJbOV09dFs4XSpzK3RbOV0qbCt0WzEwXSp1K3RbMTFdKmgsclsxM109dFsxMl0qcyt0WzEzXSpsK3RbMTRdKnUrdFsxNV0qaDt2YXIgYz1yWzJdLGY9cls2XSxkPXJbMTBdLHA9clsxNF07clsyXT10WzBdKmMrdFsxXSpmK3RbMl0qZCt0WzNdKnAscls2XT10WzRdKmMrdFs1XSpmK3RbNl0qZCt0WzddKnAsclsxMF09dFs4XSpjK3RbOV0qZit0WzEwXSpkK3RbMTFdKnAsclsxNF09dFsxMl0qYyt0WzEzXSpmK3RbMTRdKmQrdFsxNV0qcDt2YXIgbT1yWzNdLHY9cls3XSx5PXJbMTFdLGc9clsxNV07cmV0dXJuIHJbM109dFswXSptK3RbMV0qdit0WzJdKnkrdFszXSpnLHJbN109dFs0XSptK3RbNV0qdit0WzZdKnkrdFs3XSpnLHJbMTFdPXRbOF0qbSt0WzldKnYrdFsxMF0qeSt0WzExXSpnLHJbMTVdPXRbMTJdKm0rdFsxM10qdit0WzE0XSp5K3RbMTVdKmcsdGhpc30sUC5kZWZhdWx0Lk1hdHJpeC5wcm90b3R5cGUuc2NhbGU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlIGluc3RhbmNlb2YgUC5kZWZhdWx0LlZlY3Rvcj8odD1lLnkscj1lLnosZT1lLngpOmUgaW5zdGFuY2VvZiBBcnJheSYmKHQ9ZVsxXSxyPWVbMl0sZT1lWzBdKSx0aGlzLm1hdDRbMF0qPWUsdGhpcy5tYXQ0WzFdKj1lLHRoaXMubWF0NFsyXSo9ZSx0aGlzLm1hdDRbM10qPWUsdGhpcy5tYXQ0WzRdKj10LHRoaXMubWF0NFs1XSo9dCx0aGlzLm1hdDRbNl0qPXQsdGhpcy5tYXQ0WzddKj10LHRoaXMubWF0NFs4XSo9cix0aGlzLm1hdDRbOV0qPXIsdGhpcy5tYXQ0WzEwXSo9cix0aGlzLm1hdDRbMTFdKj1yLHRoaXN9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnJvdGF0ZT1mdW5jdGlvbihlLHQscixpKXt0IGluc3RhbmNlb2YgUC5kZWZhdWx0LlZlY3Rvcj8ocj10LnksaT10LnosdD10LngpOnQgaW5zdGFuY2VvZiBBcnJheSYmKHI9dFsxXSxpPXRbMl0sdD10WzBdKTt2YXIgbj1NYXRoLnNxcnQodCp0K3IqcitpKmkpO3QqPTEvbixyKj0xL24saSo9MS9uO3ZhciBhPXRoaXMubWF0NFswXSxvPXRoaXMubWF0NFsxXSxzPXRoaXMubWF0NFsyXSxsPXRoaXMubWF0NFszXSx1PXRoaXMubWF0NFs0XSxoPXRoaXMubWF0NFs1XSxjPXRoaXMubWF0NFs2XSxmPXRoaXMubWF0NFs3XSxkPXRoaXMubWF0NFs4XSxwPXRoaXMubWF0NFs5XSxtPXRoaXMubWF0NFsxMF0sdj10aGlzLm1hdDRbMTFdLHk9TWF0aC5zaW4oZSksZz1NYXRoLmNvcyhlKSxiPTEtZyxfPXQqdCpiK2cseD1yKnQqYitpKnksdz1pKnQqYi1yKnksUz10KnIqYi1pKnksTT1yKnIqYitnLFQ9aSpyKmIrdCp5LEU9dCppKmIrcip5LEM9cippKmItdCp5LEw9aSppKmIrZztyZXR1cm4gdGhpcy5tYXQ0WzBdPWEqXyt1KngrZCp3LHRoaXMubWF0NFsxXT1vKl8raCp4K3Aqdyx0aGlzLm1hdDRbMl09cypfK2MqeCttKncsdGhpcy5tYXQ0WzNdPWwqXytmKngrdip3LHRoaXMubWF0NFs0XT1hKlMrdSpNK2QqVCx0aGlzLm1hdDRbNV09bypTK2gqTStwKlQsdGhpcy5tYXQ0WzZdPXMqUytjKk0rbSpULHRoaXMubWF0NFs3XT1sKlMrZipNK3YqVCx0aGlzLm1hdDRbOF09YSpFK3UqQytkKkwsdGhpcy5tYXQ0WzldPW8qRStoKkMrcCpMLHRoaXMubWF0NFsxMF09cypFK2MqQyttKkwsdGhpcy5tYXQ0WzExXT1sKkUrZipDK3YqTCx0aGlzfSxQLmRlZmF1bHQuTWF0cml4LnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXSxyPWVbMV0saT1lWzJdfHwwO3RoaXMubWF0NFsxMl0rPXRoaXMubWF0NFswXSp0K3RoaXMubWF0NFs0XSpyK3RoaXMubWF0NFs4XSppLHRoaXMubWF0NFsxM10rPXRoaXMubWF0NFsxXSp0K3RoaXMubWF0NFs1XSpyK3RoaXMubWF0NFs5XSppLHRoaXMubWF0NFsxNF0rPXRoaXMubWF0NFsyXSp0K3RoaXMubWF0NFs2XSpyK3RoaXMubWF0NFsxMF0qaSx0aGlzLm1hdDRbMTVdKz10aGlzLm1hdDRbM10qdCt0aGlzLm1hdDRbN10qcit0aGlzLm1hdDRbMTFdKml9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnJvdGF0ZVg9ZnVuY3Rpb24oZSl7dGhpcy5yb3RhdGUoZSwxLDAsMCl9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oZSl7dGhpcy5yb3RhdGUoZSwwLDEsMCl9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnJvdGF0ZVo9ZnVuY3Rpb24oZSl7dGhpcy5yb3RhdGUoZSwwLDAsMSl9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnBlcnNwZWN0aXZlPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPTEvTWF0aC50YW4oZS8yKSxhPTEvKHItaSk7cmV0dXJuIHRoaXMubWF0NFswXT1uL3QsdGhpcy5tYXQ0WzFdPTAsdGhpcy5tYXQ0WzJdPTAsdGhpcy5tYXQ0WzNdPTAsdGhpcy5tYXQ0WzRdPTAsdGhpcy5tYXQ0WzVdPW4sdGhpcy5tYXQ0WzZdPTAsdGhpcy5tYXQ0WzddPTAsdGhpcy5tYXQ0WzhdPTAsdGhpcy5tYXQ0WzldPTAsdGhpcy5tYXQ0WzEwXT0oaStyKSphLHRoaXMubWF0NFsxMV09LTEsdGhpcy5tYXQ0WzEyXT0wLHRoaXMubWF0NFsxM109MCx0aGlzLm1hdDRbMTRdPTIqaSpyKmEsdGhpcy5tYXQ0WzE1XT0wLHRoaXN9LFAuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLm9ydGhvPWZ1bmN0aW9uKGUsdCxyLGksbixhKXt2YXIgbz0xLyhlLXQpLHM9MS8oci1pKSxsPTEvKG4tYSk7cmV0dXJuIHRoaXMubWF0NFswXT0tMipvLHRoaXMubWF0NFsxXT0wLHRoaXMubWF0NFsyXT0wLHRoaXMubWF0NFszXT0wLHRoaXMubWF0NFs0XT0wLHRoaXMubWF0NFs1XT0tMipzLHRoaXMubWF0NFs2XT0wLHRoaXMubWF0NFs3XT0wLHRoaXMubWF0NFs4XT0wLHRoaXMubWF0NFs5XT0wLHRoaXMubWF0NFsxMF09MipsLHRoaXMubWF0NFsxMV09MCx0aGlzLm1hdDRbMTJdPShlK3QpKm8sdGhpcy5tYXQ0WzEzXT0oaStyKSpzLHRoaXMubWF0NFsxNF09KGErbikqbCx0aGlzLm1hdDRbMTVdPTEsdGhpc307dmFyIGE9UC5kZWZhdWx0Lk1hdHJpeDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzZ9XSw4NzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LlJlbmRlckJ1ZmZlcj1mdW5jdGlvbihlLHQscixpLG4sYSl7dGhpcy5zaXplPWUsdGhpcy5zcmM9dCx0aGlzLmRzdD1yLHRoaXMuYXR0cj1pLHRoaXMuX3JlbmRlcmVyPW4sdGhpcy5tYXA9YX0sbi5kZWZhdWx0LlJlbmRlckJ1ZmZlci5wcm90b3R5cGUuX3ByZXBhcmVCdWZmZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcixpPXQuYXR0cmlidXRlcyxuPXRoaXMuX3JlbmRlcmVyLkdMO3I9ZS5tb2RlbD9lLm1vZGVsOmU7dmFyIGE9aVt0aGlzLmF0dHJdO2lmKGEpe3ZhciBvPWVbdGhpcy5kc3RdLHM9clt0aGlzLnNyY107aWYoMDxzLmxlbmd0aCl7dmFyIGw9IW87aWYobCYmKGVbdGhpcy5kc3RdPW89bi5jcmVhdGVCdWZmZXIoKSksbi5iaW5kQnVmZmVyKG4uQVJSQVlfQlVGRkVSLG8pLGx8fCExIT09ci5kaXJ0eUZsYWdzW3RoaXMuc3JjXSl7dmFyIHU9dGhpcy5tYXAsaD11P3Uocyk6czt0aGlzLl9yZW5kZXJlci5fYmluZEJ1ZmZlcihvLG4uQVJSQVlfQlVGRkVSLGgpLHIuZGlydHlGbGFnc1t0aGlzLnNyY109ITF9dC5lbmFibGVBdHRyaWIoYSx0aGlzLnNpemUpfX19O3ZhciBhPW4uZGVmYXVsdC5SZW5kZXJCdWZmZXI7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sODg6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLHM9KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LGw9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD11KCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gdSgpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHU9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1lKFwiLi9wNS5SZW5kZXJCdWZmZXJcIikscy5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmJlZ2luU2hhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaW1tZWRpYXRlTW9kZS5zaGFwZU1vZGU9dm9pZCAwIT09ZT9lOmwuVFJJQU5HTEVfRkFOLHRoaXMuaW1tZWRpYXRlTW9kZS5nZW9tZXRyeS5yZXNldCgpLHRoaXN9LHMuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS52ZXJ0ZXg9ZnVuY3Rpb24oZSx0KXt2YXIgcixpLG47cj1pPW49MCwzPT09YXJndW1lbnRzLmxlbmd0aD9yPWFyZ3VtZW50c1syXTo0PT09YXJndW1lbnRzLmxlbmd0aD8oaT1hcmd1bWVudHNbMl0sbj1hcmd1bWVudHNbM10pOjU9PT1hcmd1bWVudHMubGVuZ3RoJiYocj1hcmd1bWVudHNbMl0saT1hcmd1bWVudHNbM10sbj1hcmd1bWVudHNbNF0pO3ZhciBhPW5ldyBzLmRlZmF1bHQuVmVjdG9yKGUsdCxyKTt0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkudmVydGljZXMucHVzaChhKTt2YXIgbz10aGlzLmN1ckZpbGxDb2xvcnx8Wy41LC41LC41LDFdO3JldHVybiB0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkudmVydGV4Q29sb3JzLnB1c2gob1swXSxvWzFdLG9bMl0sb1szXSksdGhpcy50ZXh0dXJlTW9kZT09PWwuSU1BR0UmJihudWxsIT09dGhpcy5fdGV4PzA8dGhpcy5fdGV4LndpZHRoJiYwPHRoaXMuX3RleC5oZWlnaHQmJihpLz10aGlzLl90ZXgud2lkdGgsbi89dGhpcy5fdGV4LmhlaWdodCk6bnVsbD09PXRoaXMuX3RleCYmNDw9YXJndW1lbnRzLmxlbmd0aCYmY29uc29sZS53YXJuKFwiWW91IG11c3QgZmlyc3QgY2FsbCB0ZXh0dXJlKCkgYmVmb3JlIHVzaW5nIHZlcnRleCgpIHdpdGggaW1hZ2UgYmFzZWQgdSBhbmQgdiBjb29yZGluYXRlc1wiKSksdGhpcy5pbW1lZGlhdGVNb2RlLmdlb21ldHJ5LnV2cy5wdXNoKGksbiksdGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXhbMF09ZSx0aGlzLmltbWVkaWF0ZU1vZGUuX2JlemllclZlcnRleFsxXT10LHRoaXMuaW1tZWRpYXRlTW9kZS5fYmV6aWVyVmVydGV4WzJdPXIsdGhpcy5pbW1lZGlhdGVNb2RlLl9xdWFkcmF0aWNWZXJ0ZXhbMF09ZSx0aGlzLmltbWVkaWF0ZU1vZGUuX3F1YWRyYXRpY1ZlcnRleFsxXT10LHRoaXMuaW1tZWRpYXRlTW9kZS5fcXVhZHJhdGljVmVydGV4WzJdPXIsdGhpc30scy5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmVuZFNoYXBlPWZ1bmN0aW9uKGUsdCxyLGksbixhKXtyZXR1cm4gdGhpcy5pbW1lZGlhdGVNb2RlLnNoYXBlTW9kZT09PWwuUE9JTlRTP3RoaXMuX2RyYXdQb2ludHModGhpcy5pbW1lZGlhdGVNb2RlLmdlb21ldHJ5LnZlcnRpY2VzLHRoaXMuaW1tZWRpYXRlTW9kZS5idWZmZXJzLnBvaW50KToodGhpcy5fcHJvY2Vzc1ZlcnRpY2VzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9kb0ZpbGwmJjE8dGhpcy5pbW1lZGlhdGVNb2RlLmdlb21ldHJ5LnZlcnRpY2VzLmxlbmd0aCYmdGhpcy5fZHJhd0ltbWVkaWF0ZUZpbGwoKSx0aGlzLl9kb1N0cm9rZSYmMTx0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkubGluZVZlcnRpY2VzLmxlbmd0aCYmdGhpcy5fZHJhd0ltbWVkaWF0ZVN0cm9rZSgpLHRoaXMuaXNCZXppZXI9ITEsdGhpcy5pc1F1YWRyYXRpYz0hMSx0aGlzLmlzQ3VydmU9ITEsdGhpcy5pbW1lZGlhdGVNb2RlLl9iZXppZXJWZXJ0ZXgubGVuZ3RoPTAsdGhpcy5pbW1lZGlhdGVNb2RlLl9xdWFkcmF0aWNWZXJ0ZXgubGVuZ3RoPTAsdGhpcy5pbW1lZGlhdGVNb2RlLl9jdXJ2ZVZlcnRleC5sZW5ndGg9MCksdGhpc30scy5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9wcm9jZXNzVmVydGljZXM9ZnVuY3Rpb24oZSl7aWYoMCE9PXRoaXMuaW1tZWRpYXRlTW9kZS5nZW9tZXRyeS52ZXJ0aWNlcy5sZW5ndGgpe3ZhciB0PXRoaXMuX2RvU3Ryb2tlJiZ0aGlzLmRyYXdNb2RlIT09bC5URVhUVVJFLHI9ZT09PWwuQ0xPU0U7dCYmKHRoaXMuaW1tZWRpYXRlTW9kZS5nZW9tZXRyeS5lZGdlcz10aGlzLl9jYWxjdWxhdGVFZGdlcyh0aGlzLmltbWVkaWF0ZU1vZGUuc2hhcGVNb2RlLHRoaXMuaW1tZWRpYXRlTW9kZS5nZW9tZXRyeS52ZXJ0aWNlcyxyKSx0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkuX2VkZ2VzVG9WZXJ0aWNlcygpKTt2YXIgaT10aGlzLmltbWVkaWF0ZU1vZGUuc2hhcGVNb2RlPT09bC5URVNTOyh0aGlzLmlzQmV6aWVyfHx0aGlzLmlzUXVhZHJhdGljfHx0aGlzLmlzQ3VydmV8fGkpJiZ0aGlzLmltbWVkaWF0ZU1vZGUuc2hhcGVNb2RlIT09bC5MSU5FUyYmdGhpcy5fdGVzc2VsYXRlU2hhcGUoKX19LHMuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fY2FsY3VsYXRlRWRnZXM9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPVtdLG49MDtzd2l0Y2goZSl7Y2FzZSBsLlRSSUFOR0xFX1NUUklQOmZvcihuPTA7bjx0Lmxlbmd0aC0yO24rKylpLnB1c2goW24sbisxXSksaS5wdXNoKFtuLG4rMl0pO2kucHVzaChbbixuKzFdKTticmVhaztjYXNlIGwuVFJJQU5HTEVTOmZvcihuPTA7bjx0Lmxlbmd0aC0yO24rPTMpaS5wdXNoKFtuLG4rMV0pLGkucHVzaChbbisxLG4rMl0pLGkucHVzaChbbisyLG5dKTticmVhaztjYXNlIGwuTElORVM6Zm9yKG49MDtuPHQubGVuZ3RoLTE7bis9MilpLnB1c2goW24sbisxXSk7YnJlYWs7ZGVmYXVsdDpmb3Iobj0wO248dC5sZW5ndGgtMTtuKyspaS5wdXNoKFtuLG4rMV0pfXJldHVybiByJiZpLnB1c2goW3QubGVuZ3RoLTEsMF0pLGl9LHMuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fdGVzc2VsYXRlU2hhcGU9ZnVuY3Rpb24oKXt0aGlzLmltbWVkaWF0ZU1vZGUuc2hhcGVNb2RlPWwuVFJJQU5HTEVTO3ZhciBlPVtuZXcgRmxvYXQzMkFycmF5KHRoaXMuX3ZUb05BcnJheSh0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkudmVydGljZXMpKV0sdD10aGlzLl90cmlhbmd1bGF0ZShlKTt0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkudmVydGljZXM9W107Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cis9Myl0aGlzLnZlcnRleCh0W3JdLHRbcisxXSx0W3IrMl0pfSxzLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2RyYXdJbW1lZGlhdGVGaWxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5HTCx0PXRoaXMuX2dldEltbWVkaWF0ZUZpbGxTaGFkZXIoKTt0aGlzLl9jYWxjdWxhdGVOb3JtYWxzKHRoaXMuaW1tZWRpYXRlTW9kZS5nZW9tZXRyeSksdGhpcy5fc2V0RmlsbFVuaWZvcm1zKHQpO3ZhciByPSEwLGk9ITEsbj12b2lkIDA7dHJ5e2Zvcih2YXIgYSxvPXRoaXMuaW1tZWRpYXRlTW9kZS5idWZmZXJzLmZpbGxbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0oYT1vLm5leHQoKSkuZG9uZSk7cj0hMCl7YS52YWx1ZS5fcHJlcGFyZUJ1ZmZlcih0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnksdCl9fWNhdGNoKGUpe2k9ITAsbj1lfWZpbmFsbHl7dHJ5e3J8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBufX10aGlzLmltbWVkaWF0ZU1vZGUuc2hhcGVNb2RlIT09bC5MSU5FX1NUUklQJiZ0aGlzLmltbWVkaWF0ZU1vZGUuc2hhcGVNb2RlIT09bC5MSU5FU3x8KHRoaXMuaW1tZWRpYXRlTW9kZS5zaGFwZU1vZGU9bC5UUklBTkdMRV9GQU4pLHRoaXMuX2FwcGx5Q29sb3JCbGVuZCh0aGlzLmN1ckZpbGxDb2xvciksZS5kcmF3QXJyYXlzKHRoaXMuaW1tZWRpYXRlTW9kZS5zaGFwZU1vZGUsMCx0aGlzLmltbWVkaWF0ZU1vZGUuZ2VvbWV0cnkudmVydGljZXMubGVuZ3RoKSx0LnVuYmluZFNoYWRlcigpfSxzLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2RyYXdJbW1lZGlhdGVTdHJva2U9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLkdMLHQ9dGhpcy5fZ2V0SW1tZWRpYXRlU3Ryb2tlU2hhZGVyKCk7dGhpcy5fc2V0U3Ryb2tlVW5pZm9ybXModCk7dmFyIHI9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciBhLG89dGhpcy5pbW1lZGlhdGVNb2RlLmJ1ZmZlcnMuc3Ryb2tlW1N5bWJvbC5pdGVyYXRvcl0oKTshKHI9KGE9by5uZXh0KCkpLmRvbmUpO3I9ITApe2EudmFsdWUuX3ByZXBhcmVCdWZmZXIodGhpcy5pbW1lZGlhdGVNb2RlLmdlb21ldHJ5LHQpfX1jYXRjaChlKXtpPSEwLG49ZX1maW5hbGx5e3RyeXtyfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgbn19dGhpcy5fYXBwbHlDb2xvckJsZW5kKHRoaXMuY3VyU3Ryb2tlQ29sb3IpLGUuZHJhd0FycmF5cyhlLlRSSUFOR0xFUywwLHRoaXMuaW1tZWRpYXRlTW9kZS5nZW9tZXRyeS5saW5lVmVydGljZXMubGVuZ3RoKSx0LnVuYmluZFNoYWRlcigpfSxzLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2NhbGN1bGF0ZU5vcm1hbHM9ZnVuY3Rpb24oZSl7ZS52ZXJ0aWNlcy5mb3JFYWNoKGZ1bmN0aW9uKCl7ZS52ZXJ0ZXhOb3JtYWxzLnB1c2gobmV3IHMuZGVmYXVsdC5WZWN0b3IoMCwwLDEpKX0pfTt2YXIgbj1zLmRlZmF1bHQuUmVuZGVyZXJHTDtyLmRlZmF1bHQ9bn0se1wiLi4vY29yZS9jb25zdGFudHNcIjoyNixcIi4uL2NvcmUvbWFpblwiOjM2LFwiLi9wNS5SZW5kZXJCdWZmZXJcIjo4N31dLDg5OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksci5kZWZhdWx0PXZvaWQgMDt2YXIgaSxvPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfTtlKFwiLi9wNS5SZW5kZXJlckdMXCIpLGUoXCIuL3A1LlJlbmRlckJ1ZmZlclwiKTt2YXIgbj0wO28uZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5faW5pdEJ1ZmZlckRlZmF1bHRzPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2ZyZWVCdWZmZXJzKGUpLDFlMzwrK24pe3ZhciB0PU9iamVjdC5rZXlzKHRoaXMucmV0YWluZWRNb2RlLmdlb21ldHJ5KVswXTtkZWxldGUgdGhpcy5yZXRhaW5lZE1vZGUuZ2VvbWV0cnlbdF0sbi0tfXJldHVybiB0aGlzLnJldGFpbmVkTW9kZS5nZW9tZXRyeVtlXT17fX0sby5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9mcmVlQnVmZmVycz1mdW5jdGlvbihlKXt2YXIgcz10aGlzLnJldGFpbmVkTW9kZS5nZW9tZXRyeVtlXTtpZihzKXtkZWxldGUgdGhpcy5yZXRhaW5lZE1vZGUuZ2VvbWV0cnlbZV0sbi0tO3ZhciBsPXRoaXMuR0w7cy5pbmRleEJ1ZmZlciYmbC5kZWxldGVCdWZmZXIocy5pbmRleEJ1ZmZlciksdCh0aGlzLnJldGFpbmVkTW9kZS5idWZmZXJzLnN0cm9rZSksdCh0aGlzLnJldGFpbmVkTW9kZS5idWZmZXJzLmZpbGwpfWZ1bmN0aW9uIHQoZSl7dmFyIHQ9ITAscj0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBuLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShuPWEubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbz1uLnZhbHVlO3Nbby5kc3RdJiYobC5kZWxldGVCdWZmZXIoc1tvLmRzdF0pLHNbby5kc3RdPW51bGwpfX1jYXRjaChlKXtyPSEwLGk9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHIpdGhyb3cgaX19fX0sby5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmNyZWF0ZUJ1ZmZlcnM9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLkdMLGk9dGhpcy5faW5pdEJ1ZmZlckRlZmF1bHRzKGUpO2kubW9kZWw9dDt2YXIgbj1pLmluZGV4QnVmZmVyO2lmKHQuZmFjZXMubGVuZ3RoKXtuPW58fChpLmluZGV4QnVmZmVyPXIuY3JlYXRlQnVmZmVyKCkpO3ZhciBhPW8uZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZmxhdHRlbih0LmZhY2VzKTt0aGlzLl9iaW5kQnVmZmVyKG4sci5FTEVNRU5UX0FSUkFZX0JVRkZFUixhLFVpbnQxNkFycmF5KSxpLnZlcnRleENvdW50PTMqdC5mYWNlcy5sZW5ndGh9ZWxzZSBuJiYoci5kZWxldGVCdWZmZXIobiksaS5pbmRleEJ1ZmZlcj1udWxsKSxpLnZlcnRleENvdW50PXQudmVydGljZXM/dC52ZXJ0aWNlcy5sZW5ndGg6MDtyZXR1cm4gaS5saW5lVmVydGV4Q291bnQ9dC5saW5lVmVydGljZXM/dC5saW5lVmVydGljZXMubGVuZ3RoOjAsaX0sby5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmRyYXdCdWZmZXJzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuR0wscj10aGlzLnJldGFpbmVkTW9kZS5nZW9tZXRyeVtlXTtpZih0aGlzLl9kb1N0cm9rZSYmMDxyLmxpbmVWZXJ0ZXhDb3VudCl7dmFyIGk9dGhpcy5fZ2V0UmV0YWluZWRTdHJva2VTaGFkZXIoKTt0aGlzLl9zZXRTdHJva2VVbmlmb3JtcyhpKTt2YXIgbj0hMCxhPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHMsbD10aGlzLnJldGFpbmVkTW9kZS5idWZmZXJzLnN0cm9rZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShzPWwubmV4dCgpKS5kb25lKTtuPSEwKXtzLnZhbHVlLl9wcmVwYXJlQnVmZmVyKHIsaSl9fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PWwucmV0dXJufHxsLnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX10aGlzLl9hcHBseUNvbG9yQmxlbmQodGhpcy5jdXJTdHJva2VDb2xvciksdGhpcy5fZHJhd0FycmF5cyh0LlRSSUFOR0xFUyxlKSxpLnVuYmluZFNoYWRlcigpfWlmKHRoaXMuX2RvRmlsbCl7dmFyIHU9dGhpcy5fZ2V0UmV0YWluZWRGaWxsU2hhZGVyKCk7dGhpcy5fc2V0RmlsbFVuaWZvcm1zKHUpO3ZhciBoPSEwLGM9ITEsZj12b2lkIDA7dHJ5e2Zvcih2YXIgZCxwPXRoaXMucmV0YWluZWRNb2RlLmJ1ZmZlcnMuZmlsbFtTeW1ib2wuaXRlcmF0b3JdKCk7IShoPShkPXAubmV4dCgpKS5kb25lKTtoPSEwKXtkLnZhbHVlLl9wcmVwYXJlQnVmZmVyKHIsdSl9fWNhdGNoKGUpe2M9ITAsZj1lfWZpbmFsbHl7dHJ5e2h8fG51bGw9PXAucmV0dXJufHxwLnJldHVybigpfWZpbmFsbHl7aWYoYyl0aHJvdyBmfX1yLmluZGV4QnVmZmVyJiZ0aGlzLl9iaW5kQnVmZmVyKHIuaW5kZXhCdWZmZXIsdC5FTEVNRU5UX0FSUkFZX0JVRkZFUiksdGhpcy5fYXBwbHlDb2xvckJsZW5kKHRoaXMuY3VyRmlsbENvbG9yKSx0aGlzLl9kcmF3RWxlbWVudHModC5UUklBTkdMRVMsZSksdS51bmJpbmRTaGFkZXIoKX1yZXR1cm4gdGhpc30sby5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmRyYXdCdWZmZXJzU2NhbGVkPWZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuPXRoaXMudU1WTWF0cml4LmNvcHkoKTt0cnl7dGhpcy51TVZNYXRyaXguc2NhbGUodCxyLGkpLHRoaXMuZHJhd0J1ZmZlcnMoZSl9ZmluYWxseXt0aGlzLnVNVk1hdHJpeD1ufX0sby5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9kcmF3QXJyYXlzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuR0wuZHJhd0FycmF5cyhlLDAsdGhpcy5yZXRhaW5lZE1vZGUuZ2VvbWV0cnlbdF0ubGluZVZlcnRleENvdW50KSx0aGlzfSxvLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2RyYXdFbGVtZW50cz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMucmV0YWluZWRNb2RlLmdlb21ldHJ5W3RdLGk9dGhpcy5HTDtyLmluZGV4QnVmZmVyP2kuZHJhd0VsZW1lbnRzKGkuVFJJQU5HTEVTLHIudmVydGV4Q291bnQsaS5VTlNJR05FRF9TSE9SVCwwKTppLmRyYXdBcnJheXMoZXx8aS5UUklBTkdMRVMsMCxyLnZlcnRleENvdW50KX0sby5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9kcmF3UG9pbnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5HTCxpPXRoaXMuX2dldEltbWVkaWF0ZVBvaW50U2hhZGVyKCk7dGhpcy5fc2V0UG9pbnRVbmlmb3JtcyhpKSx0aGlzLl9iaW5kQnVmZmVyKHQsci5BUlJBWV9CVUZGRVIsdGhpcy5fdlRvTkFycmF5KGUpLEZsb2F0MzJBcnJheSxyLlNUQVRJQ19EUkFXKSxpLmVuYWJsZUF0dHJpYihpLmF0dHJpYnV0ZXMuYVBvc2l0aW9uLDMpLHIuZHJhd0FycmF5cyhyLlBvaW50cywwLGUubGVuZ3RoKSxpLnVuYmluZFNoYWRlcigpfTt2YXIgYT1vLmRlZmF1bHQuUmVuZGVyZXJHTDtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9tYWluXCI6MzYsXCIuL3A1LlJlbmRlckJ1ZmZlclwiOjg3LFwiLi9wNS5SZW5kZXJlckdMXCI6OTB9XSw5MDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0pKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIHU9bihlKFwiLi4vY29yZS9tYWluXCIpKSxhPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29yZS9jb25zdGFudHNcIikpLGk9bihlKFwibGlidGVzc1wiKSk7ZShcIi4vcDUuU2hhZGVyXCIpLGUoXCIuL3A1LkNhbWVyYVwiKSxlKFwiLi4vY29yZS9wNS5SZW5kZXJlclwiKSxlKFwiLi9wNS5NYXRyaXhcIik7ZShcInBhdGhcIik7ZnVuY3Rpb24gcygpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBuKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBsKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxyPW5ldyBBcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspclt0XT1lW3RdO3JldHVybiByfX0oZSl8fGZ1bmN0aW9uKGUpe2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSl8fFwiW29iamVjdCBBcmd1bWVudHNdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZVwiKX0oKX12YXIgaD1cInByZWNpc2lvbiBoaWdocCBmbG9hdDtcXG5wcmVjaXNpb24gaGlnaHAgaW50O1xcblxcbnVuaWZvcm0gbWF0NCB1Vmlld01hdHJpeDtcXG5cXG51bmlmb3JtIGJvb2wgdVVzZUxpZ2h0aW5nO1xcblxcbnVuaWZvcm0gaW50IHVBbWJpZW50TGlnaHRDb3VudDtcXG51bmlmb3JtIHZlYzMgdUFtYmllbnRDb2xvcls1XTtcXG5cXG51bmlmb3JtIGludCB1RGlyZWN0aW9uYWxMaWdodENvdW50O1xcbnVuaWZvcm0gdmVjMyB1TGlnaHRpbmdEaXJlY3Rpb25bNV07XFxudW5pZm9ybSB2ZWMzIHVEaXJlY3Rpb25hbERpZmZ1c2VDb2xvcnNbNV07XFxudW5pZm9ybSB2ZWMzIHVEaXJlY3Rpb25hbFNwZWN1bGFyQ29sb3JzWzVdO1xcblxcbnVuaWZvcm0gaW50IHVQb2ludExpZ2h0Q291bnQ7XFxudW5pZm9ybSB2ZWMzIHVQb2ludExpZ2h0TG9jYXRpb25bNV07XFxudW5pZm9ybSB2ZWMzIHVQb2ludExpZ2h0RGlmZnVzZUNvbG9yc1s1XTtcXHRcXG51bmlmb3JtIHZlYzMgdVBvaW50TGlnaHRTcGVjdWxhckNvbG9yc1s1XTtcXG5cXG51bmlmb3JtIGludCB1U3BvdExpZ2h0Q291bnQ7XFxudW5pZm9ybSBmbG9hdCB1U3BvdExpZ2h0QW5nbGVbNV07XFxudW5pZm9ybSBmbG9hdCB1U3BvdExpZ2h0Q29uY1s1XTtcXG51bmlmb3JtIHZlYzMgdVNwb3RMaWdodERpZmZ1c2VDb2xvcnNbNV07XFxudW5pZm9ybSB2ZWMzIHVTcG90TGlnaHRTcGVjdWxhckNvbG9yc1s1XTtcXG51bmlmb3JtIHZlYzMgdVNwb3RMaWdodExvY2F0aW9uWzVdO1xcbnVuaWZvcm0gdmVjMyB1U3BvdExpZ2h0RGlyZWN0aW9uWzVdO1xcblxcbnVuaWZvcm0gYm9vbCB1U3BlY3VsYXI7XFxudW5pZm9ybSBmbG9hdCB1U2hpbmluZXNzO1xcblxcbnVuaWZvcm0gZmxvYXQgdUNvbnN0YW50QXR0ZW51YXRpb247XFxudW5pZm9ybSBmbG9hdCB1TGluZWFyQXR0ZW51YXRpb247XFxudW5pZm9ybSBmbG9hdCB1UXVhZHJhdGljQXR0ZW51YXRpb247XFxuXFxuY29uc3QgZmxvYXQgc3BlY3VsYXJGYWN0b3IgPSAyLjA7XFxuY29uc3QgZmxvYXQgZGlmZnVzZUZhY3RvciA9IDAuNzM7XFxuXFxuc3RydWN0IExpZ2h0UmVzdWx0IHtcXG4gIGZsb2F0IHNwZWN1bGFyO1xcbiAgZmxvYXQgZGlmZnVzZTtcXG59O1xcblxcbmZsb2F0IF9waG9uZ1NwZWN1bGFyKFxcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcXG4gIHZlYzMgdmlld0RpcmVjdGlvbixcXG4gIHZlYzMgc3VyZmFjZU5vcm1hbCxcXG4gIGZsb2F0IHNoaW5pbmVzcykge1xcblxcbiAgdmVjMyBSID0gcmVmbGVjdChsaWdodERpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCk7XFxuICByZXR1cm4gcG93KG1heCgwLjAsIGRvdChSLCB2aWV3RGlyZWN0aW9uKSksIHNoaW5pbmVzcyk7XFxufVxcblxcbmZsb2F0IF9sYW1iZXJ0RGlmZnVzZSh2ZWMzIGxpZ2h0RGlyZWN0aW9uLCB2ZWMzIHN1cmZhY2VOb3JtYWwpIHtcXG4gIHJldHVybiBtYXgoMC4wLCBkb3QoLWxpZ2h0RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSk7XFxufVxcblxcbkxpZ2h0UmVzdWx0IF9saWdodCh2ZWMzIHZpZXdEaXJlY3Rpb24sIHZlYzMgbm9ybWFsLCB2ZWMzIGxpZ2h0VmVjdG9yKSB7XFxuXFxuICB2ZWMzIGxpZ2h0RGlyID0gbm9ybWFsaXplKGxpZ2h0VmVjdG9yKTtcXG5cXG4gIC8vY29tcHV0ZSBvdXIgZGlmZnVzZSAmIHNwZWN1bGFyIHRlcm1zXFxuICBMaWdodFJlc3VsdCBscjtcXG4gIGlmICh1U3BlY3VsYXIpXFxuICAgIGxyLnNwZWN1bGFyID0gX3Bob25nU3BlY3VsYXIobGlnaHREaXIsIHZpZXdEaXJlY3Rpb24sIG5vcm1hbCwgdVNoaW5pbmVzcyk7XFxuICBsci5kaWZmdXNlID0gX2xhbWJlcnREaWZmdXNlKGxpZ2h0RGlyLCBub3JtYWwpO1xcbiAgcmV0dXJuIGxyO1xcbn1cXG5cXG52b2lkIHRvdGFsTGlnaHQoXFxuICB2ZWMzIG1vZGVsUG9zaXRpb24sXFxuICB2ZWMzIG5vcm1hbCxcXG4gIG91dCB2ZWMzIHRvdGFsRGlmZnVzZSxcXG4gIG91dCB2ZWMzIHRvdGFsU3BlY3VsYXJcXG4pIHtcXG5cXG4gIHRvdGFsU3BlY3VsYXIgPSB2ZWMzKDAuMCk7XFxuXFxuICBpZiAoIXVVc2VMaWdodGluZykge1xcbiAgICB0b3RhbERpZmZ1c2UgPSB2ZWMzKDEuMCk7XFxuICAgIHJldHVybjtcXG4gIH1cXG5cXG4gIHRvdGFsRGlmZnVzZSA9IHZlYzMoMC4wKTtcXG5cXG4gIHZlYzMgdmlld0RpcmVjdGlvbiA9IG5vcm1hbGl6ZSgtbW9kZWxQb3NpdGlvbik7XFxuXFxuICBmb3IgKGludCBqID0gMDsgaiA8IDU7IGorKykge1xcbiAgICBpZiAoaiA8IHVEaXJlY3Rpb25hbExpZ2h0Q291bnQpIHtcXG4gICAgICB2ZWMzIGxpZ2h0VmVjdG9yID0gKHVWaWV3TWF0cml4ICogdmVjNCh1TGlnaHRpbmdEaXJlY3Rpb25bal0sIDAuMCkpLnh5ejtcXG4gICAgICB2ZWMzIGxpZ2h0Q29sb3IgPSB1RGlyZWN0aW9uYWxEaWZmdXNlQ29sb3JzW2pdO1xcbiAgICAgIHZlYzMgc3BlY3VsYXJDb2xvciA9IHVEaXJlY3Rpb25hbFNwZWN1bGFyQ29sb3JzW2pdO1xcbiAgICAgIExpZ2h0UmVzdWx0IHJlc3VsdCA9IF9saWdodCh2aWV3RGlyZWN0aW9uLCBub3JtYWwsIGxpZ2h0VmVjdG9yKTtcXG4gICAgICB0b3RhbERpZmZ1c2UgKz0gcmVzdWx0LmRpZmZ1c2UgKiBsaWdodENvbG9yO1xcbiAgICAgIHRvdGFsU3BlY3VsYXIgKz0gcmVzdWx0LnNwZWN1bGFyICogbGlnaHRDb2xvciAqIHNwZWN1bGFyQ29sb3I7XFxuICAgIH1cXG5cXG4gICAgaWYgKGogPCB1UG9pbnRMaWdodENvdW50KSB7XFxuICAgICAgdmVjMyBsaWdodFBvc2l0aW9uID0gKHVWaWV3TWF0cml4ICogdmVjNCh1UG9pbnRMaWdodExvY2F0aW9uW2pdLCAxLjApKS54eXo7XFxuICAgICAgdmVjMyBsaWdodFZlY3RvciA9IG1vZGVsUG9zaXRpb24gLSBsaWdodFBvc2l0aW9uO1xcbiAgICBcXG4gICAgICAvL2NhbGN1bGF0ZSBhdHRlbnVhdGlvblxcbiAgICAgIGZsb2F0IGxpZ2h0RGlzdGFuY2UgPSBsZW5ndGgobGlnaHRWZWN0b3IpO1xcbiAgICAgIGZsb2F0IGxpZ2h0RmFsbG9mZiA9IDEuMCAvICh1Q29uc3RhbnRBdHRlbnVhdGlvbiArIGxpZ2h0RGlzdGFuY2UgKiB1TGluZWFyQXR0ZW51YXRpb24gKyAobGlnaHREaXN0YW5jZSAqIGxpZ2h0RGlzdGFuY2UpICogdVF1YWRyYXRpY0F0dGVudWF0aW9uKTtcXG4gICAgICB2ZWMzIGxpZ2h0Q29sb3IgPSBsaWdodEZhbGxvZmYgKiB1UG9pbnRMaWdodERpZmZ1c2VDb2xvcnNbal07XFxuICAgICAgdmVjMyBzcGVjdWxhckNvbG9yID0gbGlnaHRGYWxsb2ZmICogdVBvaW50TGlnaHRTcGVjdWxhckNvbG9yc1tqXTtcXG5cXG4gICAgICBMaWdodFJlc3VsdCByZXN1bHQgPSBfbGlnaHQodmlld0RpcmVjdGlvbiwgbm9ybWFsLCBsaWdodFZlY3Rvcik7XFxuICAgICAgdG90YWxEaWZmdXNlICs9IHJlc3VsdC5kaWZmdXNlICogbGlnaHRDb2xvcjtcXG4gICAgICB0b3RhbFNwZWN1bGFyICs9IHJlc3VsdC5zcGVjdWxhciAqIGxpZ2h0Q29sb3IgKiBzcGVjdWxhckNvbG9yO1xcbiAgICB9XFxuXFxuICAgIGlmKGogPCB1U3BvdExpZ2h0Q291bnQpIHtcXG4gICAgICB2ZWMzIGxpZ2h0UG9zaXRpb24gPSAodVZpZXdNYXRyaXggKiB2ZWM0KHVTcG90TGlnaHRMb2NhdGlvbltqXSwgMS4wKSkueHl6O1xcbiAgICAgIHZlYzMgbGlnaHRWZWN0b3IgPSBtb2RlbFBvc2l0aW9uIC0gbGlnaHRQb3NpdGlvbjtcXG4gICAgXFxuICAgICAgZmxvYXQgbGlnaHREaXN0YW5jZSA9IGxlbmd0aChsaWdodFZlY3Rvcik7XFxuICAgICAgZmxvYXQgbGlnaHRGYWxsb2ZmID0gMS4wIC8gKHVDb25zdGFudEF0dGVudWF0aW9uICsgbGlnaHREaXN0YW5jZSAqIHVMaW5lYXJBdHRlbnVhdGlvbiArIChsaWdodERpc3RhbmNlICogbGlnaHREaXN0YW5jZSkgKiB1UXVhZHJhdGljQXR0ZW51YXRpb24pO1xcblxcbiAgICAgIHZlYzMgbGlnaHREaXJlY3Rpb24gPSAodVZpZXdNYXRyaXggKiB2ZWM0KHVTcG90TGlnaHREaXJlY3Rpb25bal0sIDAuMCkpLnh5ejtcXG4gICAgICBmbG9hdCBzcG90RG90ID0gZG90KG5vcm1hbGl6ZShsaWdodFZlY3RvciksIG5vcm1hbGl6ZShsaWdodERpcmVjdGlvbikpO1xcbiAgICAgIGZsb2F0IHNwb3RGYWxsb2ZmO1xcbiAgICAgIGlmKHNwb3REb3QgPCB1U3BvdExpZ2h0QW5nbGVbal0pIHtcXG4gICAgICAgIHNwb3RGYWxsb2ZmID0gMC4wO1xcbiAgICAgIH1cXG4gICAgICBlbHNlIHtcXG4gICAgICAgIHNwb3RGYWxsb2ZmID0gcG93KHNwb3REb3QsIHVTcG90TGlnaHRDb25jW2pdKTtcXG4gICAgICB9XFxuICAgICAgbGlnaHRGYWxsb2ZmICo9IHNwb3RGYWxsb2ZmO1xcblxcbiAgICAgIHZlYzMgbGlnaHRDb2xvciA9IHVTcG90TGlnaHREaWZmdXNlQ29sb3JzW2pdO1xcbiAgICAgIHZlYzMgc3BlY3VsYXJDb2xvciA9IHVTcG90TGlnaHRTcGVjdWxhckNvbG9yc1tqXTtcXG4gICAgIFxcbiAgICAgIExpZ2h0UmVzdWx0IHJlc3VsdCA9IF9saWdodCh2aWV3RGlyZWN0aW9uLCBub3JtYWwsIGxpZ2h0VmVjdG9yKTtcXG4gICAgICBcXG4gICAgICB0b3RhbERpZmZ1c2UgKz0gcmVzdWx0LmRpZmZ1c2UgKiBsaWdodENvbG9yICogbGlnaHRGYWxsb2ZmO1xcbiAgICAgIHRvdGFsU3BlY3VsYXIgKz0gcmVzdWx0LnNwZWN1bGFyICogbGlnaHRDb2xvciAqIHNwZWN1bGFyQ29sb3IgKiBsaWdodEZhbGxvZmY7XFxuICAgIH1cXG4gIH1cXG5cXG4gIHRvdGFsRGlmZnVzZSAqPSBkaWZmdXNlRmFjdG9yO1xcbiAgdG90YWxTcGVjdWxhciAqPSBzcGVjdWxhckZhY3RvcjtcXG59XFxuXCIsYz17aW1tZWRpYXRlVmVydDpcImF0dHJpYnV0ZSB2ZWMzIGFQb3NpdGlvbjtcXG5hdHRyaWJ1dGUgdmVjNCBhVmVydGV4Q29sb3I7XFxuXFxudW5pZm9ybSBtYXQ0IHVNb2RlbFZpZXdNYXRyaXg7XFxudW5pZm9ybSBtYXQ0IHVQcm9qZWN0aW9uTWF0cml4O1xcbnVuaWZvcm0gZmxvYXQgdVJlc29sdXRpb247XFxudW5pZm9ybSBmbG9hdCB1UG9pbnRTaXplO1xcblxcbnZhcnlpbmcgdmVjNCB2Q29sb3I7XFxudm9pZCBtYWluKHZvaWQpIHtcXG4gIHZlYzQgcG9zaXRpb25WZWM0ID0gdmVjNChhUG9zaXRpb24sIDEuMCk7XFxuICBnbF9Qb3NpdGlvbiA9IHVQcm9qZWN0aW9uTWF0cml4ICogdU1vZGVsVmlld01hdHJpeCAqIHBvc2l0aW9uVmVjNDtcXG4gIHZDb2xvciA9IGFWZXJ0ZXhDb2xvcjtcXG4gIGdsX1BvaW50U2l6ZSA9IHVQb2ludFNpemU7XFxufVxcblwiLHZlcnRleENvbG9yVmVydDpcImF0dHJpYnV0ZSB2ZWMzIGFQb3NpdGlvbjtcXG5hdHRyaWJ1dGUgdmVjNCBhVmVydGV4Q29sb3I7XFxuXFxudW5pZm9ybSBtYXQ0IHVNb2RlbFZpZXdNYXRyaXg7XFxudW5pZm9ybSBtYXQ0IHVQcm9qZWN0aW9uTWF0cml4O1xcblxcbnZhcnlpbmcgdmVjNCB2Q29sb3I7XFxuXFxudm9pZCBtYWluKHZvaWQpIHtcXG4gIHZlYzQgcG9zaXRpb25WZWM0ID0gdmVjNChhUG9zaXRpb24sIDEuMCk7XFxuICBnbF9Qb3NpdGlvbiA9IHVQcm9qZWN0aW9uTWF0cml4ICogdU1vZGVsVmlld01hdHJpeCAqIHBvc2l0aW9uVmVjNDtcXG4gIHZDb2xvciA9IGFWZXJ0ZXhDb2xvcjtcXG59XFxuXCIsdmVydGV4Q29sb3JGcmFnOlwicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XFxudmFyeWluZyB2ZWM0IHZDb2xvcjtcXG52b2lkIG1haW4odm9pZCkge1xcbiAgZ2xfRnJhZ0NvbG9yID0gdkNvbG9yO1xcbn1cIixub3JtYWxWZXJ0OlwiYXR0cmlidXRlIHZlYzMgYVBvc2l0aW9uO1xcbmF0dHJpYnV0ZSB2ZWMzIGFOb3JtYWw7XFxuYXR0cmlidXRlIHZlYzIgYVRleENvb3JkO1xcblxcbnVuaWZvcm0gbWF0NCB1TW9kZWxWaWV3TWF0cml4O1xcbnVuaWZvcm0gbWF0NCB1UHJvamVjdGlvbk1hdHJpeDtcXG51bmlmb3JtIG1hdDMgdU5vcm1hbE1hdHJpeDtcXG5cXG52YXJ5aW5nIHZlYzMgdlZlcnRleE5vcm1hbDtcXG52YXJ5aW5nIGhpZ2hwIHZlYzIgdlZlcnRUZXhDb29yZDtcXG5cXG52b2lkIG1haW4odm9pZCkge1xcbiAgdmVjNCBwb3NpdGlvblZlYzQgPSB2ZWM0KGFQb3NpdGlvbiwgMS4wKTtcXG4gIGdsX1Bvc2l0aW9uID0gdVByb2plY3Rpb25NYXRyaXggKiB1TW9kZWxWaWV3TWF0cml4ICogcG9zaXRpb25WZWM0O1xcbiAgdlZlcnRleE5vcm1hbCA9IG5vcm1hbGl6ZSh2ZWMzKCB1Tm9ybWFsTWF0cml4ICogYU5vcm1hbCApKTtcXG4gIHZWZXJ0VGV4Q29vcmQgPSBhVGV4Q29vcmQ7XFxufVxcblwiLG5vcm1hbEZyYWc6XCJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcXG52YXJ5aW5nIHZlYzMgdlZlcnRleE5vcm1hbDtcXG52b2lkIG1haW4odm9pZCkge1xcbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2VmVydGV4Tm9ybWFsLCAxLjApO1xcbn1cIixiYXNpY0ZyYWc6XCJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcXG51bmlmb3JtIHZlYzQgdU1hdGVyaWFsQ29sb3I7XFxudm9pZCBtYWluKHZvaWQpIHtcXG4gIGdsX0ZyYWdDb2xvciA9IHVNYXRlcmlhbENvbG9yO1xcbn1cIixsaWdodFZlcnQ6aCtcIi8vIGluY2x1ZGUgbGlnaHRpbmcuZ2xnbFxcblxcbmF0dHJpYnV0ZSB2ZWMzIGFQb3NpdGlvbjtcXG5hdHRyaWJ1dGUgdmVjMyBhTm9ybWFsO1xcbmF0dHJpYnV0ZSB2ZWMyIGFUZXhDb29yZDtcXG5cXG51bmlmb3JtIG1hdDQgdU1vZGVsVmlld01hdHJpeDtcXG51bmlmb3JtIG1hdDQgdVByb2plY3Rpb25NYXRyaXg7XFxudW5pZm9ybSBtYXQzIHVOb3JtYWxNYXRyaXg7XFxuXFxudmFyeWluZyBoaWdocCB2ZWMyIHZWZXJ0VGV4Q29vcmQ7XFxudmFyeWluZyB2ZWMzIHZEaWZmdXNlQ29sb3I7XFxudmFyeWluZyB2ZWMzIHZTcGVjdWxhckNvbG9yO1xcblxcbnZvaWQgbWFpbih2b2lkKSB7XFxuXFxuICB2ZWM0IHZpZXdNb2RlbFBvc2l0aW9uID0gdU1vZGVsVmlld01hdHJpeCAqIHZlYzQoYVBvc2l0aW9uLCAxLjApO1xcbiAgZ2xfUG9zaXRpb24gPSB1UHJvamVjdGlvbk1hdHJpeCAqIHZpZXdNb2RlbFBvc2l0aW9uO1xcblxcbiAgdmVjMyB2ZXJ0ZXhOb3JtYWwgPSBub3JtYWxpemUodU5vcm1hbE1hdHJpeCAqIGFOb3JtYWwpO1xcbiAgdlZlcnRUZXhDb29yZCA9IGFUZXhDb29yZDtcXG5cXG4gIHRvdGFsTGlnaHQodmlld01vZGVsUG9zaXRpb24ueHl6LCB2ZXJ0ZXhOb3JtYWwsIHZEaWZmdXNlQ29sb3IsIHZTcGVjdWxhckNvbG9yKTtcXG5cXG4gIGZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKSB7XFxuICAgIGlmIChpIDwgdUFtYmllbnRMaWdodENvdW50KSB7XFxuICAgICAgdkRpZmZ1c2VDb2xvciArPSB1QW1iaWVudENvbG9yW2ldO1xcbiAgICB9XFxuICB9XFxufVxcblwiLGxpZ2h0VGV4dHVyZUZyYWc6XCJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XFxuXFxudW5pZm9ybSB2ZWM0IHVNYXRlcmlhbENvbG9yO1xcbnVuaWZvcm0gdmVjNCB1VGludDtcXG51bmlmb3JtIHNhbXBsZXIyRCB1U2FtcGxlcjtcXG51bmlmb3JtIGJvb2wgaXNUZXh0dXJlO1xcbnVuaWZvcm0gYm9vbCB1RW1pc3NpdmU7XFxuXFxudmFyeWluZyBoaWdocCB2ZWMyIHZWZXJ0VGV4Q29vcmQ7XFxudmFyeWluZyB2ZWMzIHZEaWZmdXNlQ29sb3I7XFxudmFyeWluZyB2ZWMzIHZTcGVjdWxhckNvbG9yO1xcblxcbnZvaWQgbWFpbih2b2lkKSB7XFxuICBpZih1RW1pc3NpdmUgJiYgIWlzVGV4dHVyZSkge1xcbiAgICBnbF9GcmFnQ29sb3IgPSB1TWF0ZXJpYWxDb2xvcjtcXG4gIH1cXG4gIGVsc2Uge1xcbiAgICBnbF9GcmFnQ29sb3IgPSBpc1RleHR1cmUgPyB0ZXh0dXJlMkQodVNhbXBsZXIsIHZWZXJ0VGV4Q29vcmQpICogKHVUaW50IC8gdmVjNCgyNTUsIDI1NSwgMjU1LCAyNTUpKSA6IHVNYXRlcmlhbENvbG9yO1xcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gZ2xfRnJhZ0NvbG9yLnJnYiAqIHZEaWZmdXNlQ29sb3IgKyB2U3BlY3VsYXJDb2xvcjtcXG4gIH1cXG59XCIscGhvbmdWZXJ0OlwicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xcbnByZWNpc2lvbiBoaWdocCBpbnQ7XFxuXFxuYXR0cmlidXRlIHZlYzMgYVBvc2l0aW9uO1xcbmF0dHJpYnV0ZSB2ZWMzIGFOb3JtYWw7XFxuYXR0cmlidXRlIHZlYzIgYVRleENvb3JkO1xcblxcbnVuaWZvcm0gdmVjMyB1QW1iaWVudENvbG9yWzVdO1xcblxcbnVuaWZvcm0gbWF0NCB1TW9kZWxWaWV3TWF0cml4O1xcbnVuaWZvcm0gbWF0NCB1UHJvamVjdGlvbk1hdHJpeDtcXG51bmlmb3JtIG1hdDMgdU5vcm1hbE1hdHJpeDtcXG51bmlmb3JtIGludCB1QW1iaWVudExpZ2h0Q291bnQ7XFxuXFxudmFyeWluZyB2ZWMzIHZOb3JtYWw7XFxudmFyeWluZyB2ZWMyIHZUZXhDb29yZDtcXG52YXJ5aW5nIHZlYzMgdlZpZXdQb3NpdGlvbjtcXG52YXJ5aW5nIHZlYzMgdkFtYmllbnRDb2xvcjtcXG5cXG52b2lkIG1haW4odm9pZCkge1xcblxcbiAgdmVjNCB2aWV3TW9kZWxQb3NpdGlvbiA9IHVNb2RlbFZpZXdNYXRyaXggKiB2ZWM0KGFQb3NpdGlvbiwgMS4wKTtcXG5cXG4gIC8vIFBhc3MgdmFyeWluZ3MgdG8gZnJhZ21lbnQgc2hhZGVyXFxuICB2Vmlld1Bvc2l0aW9uID0gdmlld01vZGVsUG9zaXRpb24ueHl6O1xcbiAgZ2xfUG9zaXRpb24gPSB1UHJvamVjdGlvbk1hdHJpeCAqIHZpZXdNb2RlbFBvc2l0aW9uOyAgXFxuXFxuICB2Tm9ybWFsID0gdU5vcm1hbE1hdHJpeCAqIGFOb3JtYWw7XFxuICB2VGV4Q29vcmQgPSBhVGV4Q29vcmQ7XFxuXFxuICAvLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBhIHVuaWZvcm1cXG4gIHZBbWJpZW50Q29sb3IgPSB2ZWMzKDAuMCk7XFxuICBmb3IgKGludCBpID0gMDsgaSA8IDU7IGkrKykge1xcbiAgICBpZiAoaSA8IHVBbWJpZW50TGlnaHRDb3VudCkge1xcbiAgICAgIHZBbWJpZW50Q29sb3IgKz0gdUFtYmllbnRDb2xvcltpXTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIixwaG9uZ0ZyYWc6aCtcIi8vIGluY2x1ZGUgbGlnaHRpbmcuZ2xzbFxcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcXG5wcmVjaXNpb24gaGlnaHAgaW50O1xcblxcbnVuaWZvcm0gdmVjNCB1TWF0ZXJpYWxDb2xvcjtcXG51bmlmb3JtIHZlYzQgdVRpbnQ7XFxudW5pZm9ybSBzYW1wbGVyMkQgdVNhbXBsZXI7XFxudW5pZm9ybSBib29sIGlzVGV4dHVyZTtcXG51bmlmb3JtIGJvb2wgdUVtaXNzaXZlO1xcblxcbnZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xcbnZhcnlpbmcgdmVjMiB2VGV4Q29vcmQ7XFxudmFyeWluZyB2ZWMzIHZWaWV3UG9zaXRpb247XFxudmFyeWluZyB2ZWMzIHZBbWJpZW50Q29sb3I7XFxuXFxudm9pZCBtYWluKHZvaWQpIHtcXG5cXG4gIHZlYzMgZGlmZnVzZTtcXG4gIHZlYzMgc3BlY3VsYXI7XFxuICB0b3RhbExpZ2h0KHZWaWV3UG9zaXRpb24sIG5vcm1hbGl6ZSh2Tm9ybWFsKSwgZGlmZnVzZSwgc3BlY3VsYXIpO1xcblxcbiAgaWYodUVtaXNzaXZlICYmICFpc1RleHR1cmUpIHtcXG4gICAgZ2xfRnJhZ0NvbG9yID0gdU1hdGVyaWFsQ29sb3I7XFxuICB9XFxuICBlbHNlIHtcXG4gICAgZ2xfRnJhZ0NvbG9yID0gaXNUZXh0dXJlID8gdGV4dHVyZTJEKHVTYW1wbGVyLCB2VGV4Q29vcmQpICogKHVUaW50IC8gdmVjNCgyNTUsIDI1NSwgMjU1LCAyNTUpKSA6IHVNYXRlcmlhbENvbG9yO1xcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gZ2xfRnJhZ0NvbG9yLnJnYiAqIChkaWZmdXNlICsgdkFtYmllbnRDb2xvcikgKyBzcGVjdWxhcjtcXG4gIH1cXG59XCIsZm9udFZlcnQ6XCJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcXG5cXG5hdHRyaWJ1dGUgdmVjMyBhUG9zaXRpb247XFxuYXR0cmlidXRlIHZlYzIgYVRleENvb3JkO1xcbnVuaWZvcm0gbWF0NCB1TW9kZWxWaWV3TWF0cml4O1xcbnVuaWZvcm0gbWF0NCB1UHJvamVjdGlvbk1hdHJpeDtcXG5cXG51bmlmb3JtIHZlYzQgdUdseXBoUmVjdDtcXG51bmlmb3JtIGZsb2F0IHVHbHlwaE9mZnNldDtcXG5cXG52YXJ5aW5nIHZlYzIgdlRleENvb3JkO1xcbnZhcnlpbmcgZmxvYXQgdztcXG5cXG52b2lkIG1haW4oKSB7XFxuICB2ZWM0IHBvc2l0aW9uVmVjNCA9IHZlYzQoYVBvc2l0aW9uLCAxLjApO1xcblxcbiAgLy8gc2NhbGUgYnkgdGhlIHNpemUgb2YgdGhlIGdseXBoJ3MgcmVjdGFuZ2xlXFxuICBwb3NpdGlvblZlYzQueHkgKj0gdUdseXBoUmVjdC56dyAtIHVHbHlwaFJlY3QueHk7XFxuXFxuICAvLyBtb3ZlIHRvIHRoZSBjb3JuZXIgb2YgdGhlIGdseXBoXFxuICBwb3NpdGlvblZlYzQueHkgKz0gdUdseXBoUmVjdC54eTtcXG5cXG4gIC8vIG1vdmUgdG8gdGhlIGxldHRlcidzIGxpbmUgb2Zmc2V0XFxuICBwb3NpdGlvblZlYzQueCArPSB1R2x5cGhPZmZzZXQ7XFxuICBcXG4gIGdsX1Bvc2l0aW9uID0gdVByb2plY3Rpb25NYXRyaXggKiB1TW9kZWxWaWV3TWF0cml4ICogcG9zaXRpb25WZWM0O1xcbiAgdlRleENvb3JkID0gYVRleENvb3JkO1xcbiAgdyA9IGdsX1Bvc2l0aW9uLnc7XFxufVxcblwiLGZvbnRGcmFnOlwiI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGVcXG5wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcXG5cXG4jaWYgMFxcbiAgLy8gc2ltdWxhdGUgaW50ZWdlciBtYXRoIHVzaW5nIGZsb2F0c1xcblxcdCNkZWZpbmUgaW50IGZsb2F0XFxuXFx0I2RlZmluZSBpdmVjMiB2ZWMyXFxuXFx0I2RlZmluZSBJTlQoeCkgZmxvYXQoeClcXG5cXG5cXHRpbnQgaWZsb29yKGZsb2F0IHYpIHsgcmV0dXJuIGZsb29yKHYpOyB9XFxuXFx0aXZlYzIgaWZsb29yKHZlYzIgdikgeyByZXR1cm4gZmxvb3Iodik7IH1cXG5cXG4jZWxzZVxcbiAgLy8gdXNlIG5hdGl2ZSBpbnRlZ2VyIG1hdGhcXG5cXHRwcmVjaXNpb24gaGlnaHAgaW50O1xcblxcdCNkZWZpbmUgSU5UKHgpIHhcXG5cXG5cXHRpbnQgaWZsb29yKGZsb2F0IHYpIHsgcmV0dXJuIGludCh2KTsgfVxcblxcdGludCBpZmxvb3IoaW50IHYpIHsgcmV0dXJuIHY7IH1cXG5cXHRpdmVjMiBpZmxvb3IodmVjMiB2KSB7IHJldHVybiBpdmVjMih2KTsgfVxcblxcbiNlbmRpZlxcblxcbnVuaWZvcm0gc2FtcGxlcjJEIHVTYW1wbGVyU3Ryb2tlcztcXG51bmlmb3JtIHNhbXBsZXIyRCB1U2FtcGxlclJvd1N0cm9rZXM7XFxudW5pZm9ybSBzYW1wbGVyMkQgdVNhbXBsZXJSb3dzO1xcbnVuaWZvcm0gc2FtcGxlcjJEIHVTYW1wbGVyQ29sU3Ryb2tlcztcXG51bmlmb3JtIHNhbXBsZXIyRCB1U2FtcGxlckNvbHM7XFxuXFxudW5pZm9ybSBpdmVjMiB1U3Ryb2tlSW1hZ2VTaXplO1xcbnVuaWZvcm0gaXZlYzIgdUNlbGxzSW1hZ2VTaXplO1xcbnVuaWZvcm0gaXZlYzIgdUdyaWRJbWFnZVNpemU7XFxuXFxudW5pZm9ybSBpdmVjMiB1R3JpZE9mZnNldDtcXG51bmlmb3JtIGl2ZWMyIHVHcmlkU2l6ZTtcXG51bmlmb3JtIHZlYzQgdU1hdGVyaWFsQ29sb3I7XFxuXFxudmFyeWluZyB2ZWMyIHZUZXhDb29yZDtcXG5cXG4vLyBzb21lIGhlbHBlciBmdW5jdGlvbnNcXG5pbnQgcm91bmQoZmxvYXQgdikgeyByZXR1cm4gaWZsb29yKHYgKyAwLjUpOyB9XFxuaXZlYzIgcm91bmQodmVjMiB2KSB7IHJldHVybiBpZmxvb3IodiArIDAuNSk7IH1cXG5mbG9hdCBzYXR1cmF0ZShmbG9hdCB2KSB7IHJldHVybiBjbGFtcCh2LCAwLjAsIDEuMCk7IH1cXG52ZWMyIHNhdHVyYXRlKHZlYzIgdikgeyByZXR1cm4gY2xhbXAodiwgMC4wLCAxLjApOyB9XFxuXFxuaW50IG11bChmbG9hdCB2MSwgaW50IHYyKSB7XFxuICByZXR1cm4gaWZsb29yKHYxICogZmxvYXQodjIpKTtcXG59XFxuXFxuaXZlYzIgbXVsKHZlYzIgdjEsIGl2ZWMyIHYyKSB7XFxuICByZXR1cm4gaWZsb29yKHYxICogdmVjMih2MikgKyAwLjUpO1xcbn1cXG5cXG4vLyB1bnBhY2sgYSAxNi1iaXQgaW50ZWdlciBmcm9tIGEgZmxvYXQgdmVjMlxcbmludCBnZXRJbnQxNih2ZWMyIHYpIHtcXG4gIGl2ZWMyIGl2ID0gcm91bmQodiAqIDI1NS4wKTtcXG4gIHJldHVybiBpdi54ICogSU5UKDEyOCkgKyBpdi55O1xcbn1cXG5cXG52ZWMyIHBpeGVsU2NhbGU7XFxudmVjMiBjb3ZlcmFnZSA9IHZlYzIoMC4wKTtcXG52ZWMyIHdlaWdodCA9IHZlYzIoMC41KTtcXG5jb25zdCBmbG9hdCBtaW5EaXN0YW5jZSA9IDEuMC84MTkyLjA7XFxuY29uc3QgZmxvYXQgaGFyZG5lc3MgPSAxLjA1OyAvLyBhbW91bnQgb2YgYW50aWFsaWFzXFxuXFxuLy8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGN1cnZlcyBpbiBhIGdseXBoXFxuY29uc3QgaW50IE4gPSBJTlQoMjUwKTtcXG5cXG4vLyByZXRyaWV2ZXMgYW4gaW5kZXhlZCBwaXhlbCBmcm9tIGEgc2FtcGxlclxcbnZlYzQgZ2V0VGV4ZWwoc2FtcGxlcjJEIHNhbXBsZXIsIGludCBwb3MsIGl2ZWMyIHNpemUpIHtcXG4gIGludCB3aWR0aCA9IHNpemUueDtcXG4gIGludCB5ID0gaWZsb29yKHBvcyAvIHdpZHRoKTtcXG4gIGludCB4ID0gcG9zIC0geSAqIHdpZHRoOyAgLy8gcG9zICUgd2lkdGhcXG5cXG4gIHJldHVybiB0ZXh0dXJlMkQoc2FtcGxlciwgKHZlYzIoeCwgeSkgKyAwLjUpIC8gdmVjMihzaXplKSk7XFxufVxcblxcbnZvaWQgY2FsdWxhdGVDcm9zc2luZ3ModmVjMiBwMCwgdmVjMiBwMSwgdmVjMiBwMiwgb3V0IHZlYzIgQzEsIG91dCB2ZWMyIEMyKSB7XFxuXFxuICAvLyBnZXQgdGhlIGNvZWZmaWNpZW50cyBvZiB0aGUgcXVhZHJhdGljIGluIHRcXG4gIHZlYzIgYSA9IHAwIC0gcDEgKiAyLjAgKyBwMjtcXG4gIHZlYzIgYiA9IHAwIC0gcDE7XFxuICB2ZWMyIGMgPSBwMCAtIHZUZXhDb29yZDtcXG5cXG4gIC8vIGZvdW5kIG91dCB3aGljaCB2YWx1ZXMgb2YgJ3QnIGl0IGNyb3NzZXMgdGhlIGF4ZXNcXG4gIHZlYzIgc3VyZCA9IHNxcnQobWF4KHZlYzIoMC4wKSwgYiAqIGIgLSBhICogYykpO1xcbiAgdmVjMiB0MSA9ICgoYiAtIHN1cmQpIC8gYSkueXg7XFxuICB2ZWMyIHQyID0gKChiICsgc3VyZCkgLyBhKS55eDtcXG5cXG4gIC8vIGFwcHJveGltYXRlIHN0cmFpZ2h0IGxpbmVzIHRvIGF2b2lkIHJvdW5kaW5nIGVycm9yc1xcbiAgaWYgKGFicyhhLnkpIDwgMC4wMDEpXFxuICAgIHQxLnggPSB0Mi54ID0gYy55IC8gKDIuMCAqIGIueSk7XFxuXFxuICBpZiAoYWJzKGEueCkgPCAwLjAwMSlcXG4gICAgdDEueSA9IHQyLnkgPSBjLnggLyAoMi4wICogYi54KTtcXG5cXG4gIC8vIHBsdWcgaW50byBxdWFkcmF0aWMgZm9ybXVsYSB0byBmaW5kIHRoZSBjb3JyZGluYXRlcyBvZiB0aGUgY3Jvc3NpbmdzXFxuICBDMSA9ICgoYSAqIHQxIC0gYiAqIDIuMCkgKiB0MSArIGMpICogcGl4ZWxTY2FsZTtcXG4gIEMyID0gKChhICogdDIgLSBiICogMi4wKSAqIHQyICsgYykgKiBwaXhlbFNjYWxlO1xcbn1cXG5cXG52b2lkIGNvdmVyYWdlWCh2ZWMyIHAwLCB2ZWMyIHAxLCB2ZWMyIHAyKSB7XFxuXFxuICB2ZWMyIEMxLCBDMjtcXG4gIGNhbHVsYXRlQ3Jvc3NpbmdzKHAwLCBwMSwgcDIsIEMxLCBDMik7XFxuXFxuICAvLyBkZXRlcm1pbmUgb24gd2hpY2ggc2lkZSBvZiB0aGUgeC1heGlzIHRoZSBwb2ludHMgbGllXFxuICBib29sIHkwID0gcDAueSA+IHZUZXhDb29yZC55O1xcbiAgYm9vbCB5MSA9IHAxLnkgPiB2VGV4Q29vcmQueTtcXG4gIGJvb2wgeTIgPSBwMi55ID4gdlRleENvb3JkLnk7XFxuXFxuICAvLyBjb3VsZCB3ZWIgYmUgdW5kZXIgdGhlIGN1cnZlIChhZnRlciB0MSk/XFxuICBpZiAoeTEgPyAheTIgOiB5MCkge1xcbiAgICAvLyBhZGQgdGhlIGNvdmVyYWdlIGZvciB0MVxcbiAgICBjb3ZlcmFnZS54ICs9IHNhdHVyYXRlKEMxLnggKyAwLjUpO1xcbiAgICAvLyBjYWxjdWxhdGUgdGhlIGFudGktYWxpYXNpbmcgZm9yIHQxXFxuICAgIHdlaWdodC54ID0gbWluKHdlaWdodC54LCBhYnMoQzEueCkpO1xcbiAgfVxcblxcbiAgLy8gYXJlIHdlIG91dHNpZGUgdGhlIGN1cnZlIChhZnRlciB0Mik/XFxuICBpZiAoeTEgPyAheTAgOiB5Mikge1xcbiAgICAvLyBzdWJ0cmFjdCB0aGUgY292ZXJhZ2UgZm9yIHQyXFxuICAgIGNvdmVyYWdlLnggLT0gc2F0dXJhdGUoQzIueCArIDAuNSk7XFxuICAgIC8vIGNhbGN1bGF0ZSB0aGUgYW50aS1hbGlhc2luZyBmb3IgdDJcXG4gICAgd2VpZ2h0LnggPSBtaW4od2VpZ2h0LngsIGFicyhDMi54KSk7XFxuICB9XFxufVxcblxcbi8vIHRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgYXMgY292ZXJhZ2VYLCBidXQgd2l0aCB0aGUgYXhlcyBzd2FwcGVkXFxudm9pZCBjb3ZlcmFnZVkodmVjMiBwMCwgdmVjMiBwMSwgdmVjMiBwMikge1xcblxcbiAgdmVjMiBDMSwgQzI7XFxuICBjYWx1bGF0ZUNyb3NzaW5ncyhwMCwgcDEsIHAyLCBDMSwgQzIpO1xcblxcbiAgYm9vbCB4MCA9IHAwLnggPiB2VGV4Q29vcmQueDtcXG4gIGJvb2wgeDEgPSBwMS54ID4gdlRleENvb3JkLng7XFxuICBib29sIHgyID0gcDIueCA+IHZUZXhDb29yZC54O1xcblxcbiAgaWYgKHgxID8gIXgyIDogeDApIHtcXG4gICAgY292ZXJhZ2UueSAtPSBzYXR1cmF0ZShDMS55ICsgMC41KTtcXG4gICAgd2VpZ2h0LnkgPSBtaW4od2VpZ2h0LnksIGFicyhDMS55KSk7XFxuICB9XFxuXFxuICBpZiAoeDEgPyAheDAgOiB4Mikge1xcbiAgICBjb3ZlcmFnZS55ICs9IHNhdHVyYXRlKEMyLnkgKyAwLjUpO1xcbiAgICB3ZWlnaHQueSA9IG1pbih3ZWlnaHQueSwgYWJzKEMyLnkpKTtcXG4gIH1cXG59XFxuXFxudm9pZCBtYWluKCkge1xcblxcbiAgLy8gY2FsY3VsYXRlIHRoZSBwaXhlbCBzY2FsZSBiYXNlZCBvbiBzY3JlZW4tY29vcmRpbmF0ZXNcXG4gIHBpeGVsU2NhbGUgPSBoYXJkbmVzcyAvIGZ3aWR0aCh2VGV4Q29vcmQpO1xcblxcbiAgLy8gd2hpY2ggZ3JpZCBjZWxsIGlzIHRoaXMgcGl4ZWwgaW4/XFxuICBpdmVjMiBncmlkQ29vcmQgPSBpZmxvb3IodlRleENvb3JkICogdmVjMih1R3JpZFNpemUpKTtcXG5cXG4gIC8vIGludGVyc2VjdCBjdXJ2ZXMgaW4gdGhpcyByb3dcXG4gIHtcXG4gICAgLy8gdGhlIGluZGV4IGludG8gdGhlIHJvdyBpbmZvIGJpdG1hcFxcbiAgICBpbnQgcm93SW5kZXggPSBncmlkQ29vcmQueSArIHVHcmlkT2Zmc2V0Lnk7XFxuICAgIC8vIGZldGNoIHRoZSBpbmZvIHRleGVsXFxuICAgIHZlYzQgcm93SW5mbyA9IGdldFRleGVsKHVTYW1wbGVyUm93cywgcm93SW5kZXgsIHVHcmlkSW1hZ2VTaXplKTtcXG4gICAgLy8gdW5wYWNrIHRoZSByb3dJbmZvXFxuICAgIGludCByb3dTdHJva2VJbmRleCA9IGdldEludDE2KHJvd0luZm8ueHkpO1xcbiAgICBpbnQgcm93U3Ryb2tlQ291bnQgPSBnZXRJbnQxNihyb3dJbmZvLnp3KTtcXG5cXG4gICAgZm9yIChpbnQgaVJvd1N0cm9rZSA9IElOVCgwKTsgaVJvd1N0cm9rZSA8IE47IGlSb3dTdHJva2UrKykge1xcbiAgICAgIGlmIChpUm93U3Ryb2tlID49IHJvd1N0cm9rZUNvdW50KVxcbiAgICAgICAgYnJlYWs7XFxuXFxuICAgICAgLy8gZWFjaCBzdHJva2UgaXMgbWFkZSB1cCBvZiAzIHBvaW50czogdGhlIHN0YXJ0IGFuZCBjb250cm9sIHBvaW50XFxuICAgICAgLy8gYW5kIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBjdXJ2ZS5cXG4gICAgICAvLyBmZXRjaCB0aGUgaW5kaWNlcyBvZiB0aGlzIHBhaXIgb2Ygc3Ryb2tlczpcXG4gICAgICB2ZWM0IHN0cm9rZUluZGljZXMgPSBnZXRUZXhlbCh1U2FtcGxlclJvd1N0cm9rZXMsIHJvd1N0cm9rZUluZGV4KyssIHVDZWxsc0ltYWdlU2l6ZSk7XFxuXFxuICAgICAgLy8gdW5wYWNrIHRoZSBzdHJva2UgaW5kZXhcXG4gICAgICBpbnQgc3Ryb2tlUG9zID0gZ2V0SW50MTYoc3Ryb2tlSW5kaWNlcy54eSk7XFxuXFxuICAgICAgLy8gZmV0Y2ggdGhlIHR3byBzdHJva2VzXFxuICAgICAgdmVjNCBzdHJva2UwID0gZ2V0VGV4ZWwodVNhbXBsZXJTdHJva2VzLCBzdHJva2VQb3MgKyBJTlQoMCksIHVTdHJva2VJbWFnZVNpemUpO1xcbiAgICAgIHZlYzQgc3Ryb2tlMSA9IGdldFRleGVsKHVTYW1wbGVyU3Ryb2tlcywgc3Ryb2tlUG9zICsgSU5UKDEpLCB1U3Ryb2tlSW1hZ2VTaXplKTtcXG5cXG4gICAgICAvLyBjYWxjdWxhdGUgdGhlIGNvdmVyYWdlXFxuICAgICAgY292ZXJhZ2VYKHN0cm9rZTAueHksIHN0cm9rZTAuencsIHN0cm9rZTEueHkpO1xcbiAgICB9XFxuICB9XFxuXFxuICAvLyBpbnRlcnNlY3QgY3VydmVzIGluIHRoaXMgY29sdW1uXFxuICB7XFxuICAgIGludCBjb2xJbmRleCA9IGdyaWRDb29yZC54ICsgdUdyaWRPZmZzZXQueDtcXG4gICAgdmVjNCBjb2xJbmZvID0gZ2V0VGV4ZWwodVNhbXBsZXJDb2xzLCBjb2xJbmRleCwgdUdyaWRJbWFnZVNpemUpO1xcbiAgICBpbnQgY29sU3Ryb2tlSW5kZXggPSBnZXRJbnQxNihjb2xJbmZvLnh5KTtcXG4gICAgaW50IGNvbFN0cm9rZUNvdW50ID0gZ2V0SW50MTYoY29sSW5mby56dyk7XFxuICAgIFxcbiAgICBmb3IgKGludCBpQ29sU3Ryb2tlID0gSU5UKDApOyBpQ29sU3Ryb2tlIDwgTjsgaUNvbFN0cm9rZSsrKSB7XFxuICAgICAgaWYgKGlDb2xTdHJva2UgPj0gY29sU3Ryb2tlQ291bnQpXFxuICAgICAgICBicmVhaztcXG5cXG4gICAgICB2ZWM0IHN0cm9rZUluZGljZXMgPSBnZXRUZXhlbCh1U2FtcGxlckNvbFN0cm9rZXMsIGNvbFN0cm9rZUluZGV4KyssIHVDZWxsc0ltYWdlU2l6ZSk7XFxuXFxuICAgICAgaW50IHN0cm9rZVBvcyA9IGdldEludDE2KHN0cm9rZUluZGljZXMueHkpO1xcbiAgICAgIHZlYzQgc3Ryb2tlMCA9IGdldFRleGVsKHVTYW1wbGVyU3Ryb2tlcywgc3Ryb2tlUG9zICsgSU5UKDApLCB1U3Ryb2tlSW1hZ2VTaXplKTtcXG4gICAgICB2ZWM0IHN0cm9rZTEgPSBnZXRUZXhlbCh1U2FtcGxlclN0cm9rZXMsIHN0cm9rZVBvcyArIElOVCgxKSwgdVN0cm9rZUltYWdlU2l6ZSk7XFxuICAgICAgY292ZXJhZ2VZKHN0cm9rZTAueHksIHN0cm9rZTAuencsIHN0cm9rZTEueHkpO1xcbiAgICB9XFxuICB9XFxuXFxuICB3ZWlnaHQgPSBzYXR1cmF0ZSgxLjAgLSB3ZWlnaHQgKiAyLjApO1xcbiAgZmxvYXQgZGlzdGFuY2UgPSBtYXgod2VpZ2h0LnggKyB3ZWlnaHQueSwgbWluRGlzdGFuY2UpOyAvLyBtYW5oYXR0YW4gYXBwcm94LlxcbiAgZmxvYXQgYW50aWFsaWFzID0gYWJzKGRvdChjb3ZlcmFnZSwgd2VpZ2h0KSAvIGRpc3RhbmNlKTtcXG4gIGZsb2F0IGNvdmVyID0gbWluKGFicyhjb3ZlcmFnZS54KSwgYWJzKGNvdmVyYWdlLnkpKTtcXG4gIGdsX0ZyYWdDb2xvciA9IHVNYXRlcmlhbENvbG9yO1xcbiAgZ2xfRnJhZ0NvbG9yLmEgKj0gc2F0dXJhdGUobWF4KGFudGlhbGlhcywgY292ZXIpKTtcXG59XCIsbGluZVZlcnQ6XCIvKlxcbiAgUGFydCBvZiB0aGUgUHJvY2Vzc2luZyBwcm9qZWN0IC0gaHR0cDovL3Byb2Nlc3Npbmcub3JnXFxuICBDb3B5cmlnaHQgKGMpIDIwMTItMTUgVGhlIFByb2Nlc3NpbmcgRm91bmRhdGlvblxcbiAgQ29weXJpZ2h0IChjKSAyMDA0LTEyIEJlbiBGcnkgYW5kIENhc2V5IFJlYXNcXG4gIENvcHlyaWdodCAoYykgMjAwMS0wNCBNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5XFxuICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXFxuICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljXFxuICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB2ZXJzaW9uIDIuMS5cXG4gIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxcbiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VXFxuICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxcbiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsXFxuICBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGVcXG4gIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsXFxuICBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0FcXG4qL1xcblxcbiNkZWZpbmUgUFJPQ0VTU0lOR19MSU5FX1NIQURFUlxcblxcbnVuaWZvcm0gbWF0NCB1TW9kZWxWaWV3TWF0cml4O1xcbnVuaWZvcm0gbWF0NCB1UHJvamVjdGlvbk1hdHJpeDtcXG51bmlmb3JtIGZsb2F0IHVTdHJva2VXZWlnaHQ7XFxuXFxudW5pZm9ybSB2ZWM0IHVWaWV3cG9ydDtcXG51bmlmb3JtIGludCB1UGVyc3BlY3RpdmU7XFxuXFxuYXR0cmlidXRlIHZlYzQgYVBvc2l0aW9uO1xcbmF0dHJpYnV0ZSB2ZWM0IGFEaXJlY3Rpb247XFxuICBcXG52b2lkIG1haW4oKSB7XFxuICAvLyB1c2luZyBhIHNjYWxlIDwxIG1vdmVzIHRoZSBsaW5lcyB0b3dhcmRzIHRoZSBjYW1lcmFcXG4gIC8vIGluIG9yZGVyIHRvIHByZXZlbnQgcG9wcGluZyBlZmZlY3RzIGR1ZSB0byBoYWxmIG9mXFxuICAvLyB0aGUgbGluZSBkaXNhcHBlYXJpbmcgYmVoaW5kIHRoZSBnZW9tZXRyeSBmYWNlcy5cXG4gIHZlYzMgc2NhbGUgPSB2ZWMzKDAuOTk5NSk7XFxuXFxuICB2ZWM0IHBvc3AgPSB1TW9kZWxWaWV3TWF0cml4ICogYVBvc2l0aW9uO1xcbiAgdmVjNCBwb3NxID0gdU1vZGVsVmlld01hdHJpeCAqIChhUG9zaXRpb24gKyB2ZWM0KGFEaXJlY3Rpb24ueHl6LCAwKSk7XFxuXFxuICAvLyBNb3ZpbmcgdmVydGljZXMgc2xpZ2h0bHkgdG93YXJkIHRoZSBjYW1lcmFcXG4gIC8vIHRvIGF2b2lkIGRlcHRoLWZpZ2h0aW5nIHdpdGggdGhlIGZpbGwgdHJpYW5nbGVzLlxcbiAgLy8gRGlzY3Vzc2VkIGhlcmU6XFxuICAvLyBodHRwOi8vd3d3Lm9wZW5nbC5vcmcvZGlzY3Vzc2lvbl9ib2FyZHMvdWJidGhyZWFkcy5waHA/dWJiPXNob3dmbGF0Jk51bWJlcj0yNTI4NDggIFxcbiAgcG9zcC54eXogPSBwb3NwLnh5eiAqIHNjYWxlO1xcbiAgcG9zcS54eXogPSBwb3NxLnh5eiAqIHNjYWxlO1xcblxcbiAgdmVjNCBwID0gdVByb2plY3Rpb25NYXRyaXggKiBwb3NwO1xcbiAgdmVjNCBxID0gdVByb2plY3Rpb25NYXRyaXggKiBwb3NxO1xcblxcbiAgLy8gZm9ybXVsYSB0byBjb252ZXJ0IGZyb20gY2xpcCBzcGFjZSAocmFuZ2UgLTEuLjEpIHRvIHNjcmVlbiBzcGFjZSAocmFuZ2UgMC4uW3dpZHRoIG9yIGhlaWdodF0pXFxuICAvLyBzY3JlZW5fcCA9IChwLnh5L3AudyArIDwxLDE+KSAqIDAuNSAqIHVWaWV3cG9ydC56d1xcblxcbiAgLy8gcHJldmVudCBkaXZpc2lvbiBieSBXIGJ5IHRyYW5zZm9ybWluZyB0aGUgdGFuZ2VudCBmb3JtdWxhIChkaXYgYnkgMCBjYXVzZXNcXG4gIC8vIHRoZSBsaW5lIHRvIGRpc2FwcGVhciwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9jZXNzaW5nL3Byb2Nlc3NpbmcvaXNzdWVzLzUxODMpXFxuICAvLyB0ID0gc2NyZWVuX3EgLSBzY3JlZW5fcFxcbiAgLy9cXG4gIC8vIHRhbmdlbnQgaXMgbm9ybWFsaXplZCBhbmQgd2UgZG9uJ3QgY2FyZSB3aGljaCBhRGlyZWN0aW9uIGl0IHBvaW50cyB0byAoKy0pXFxuICAvLyB0ID0gKy0gbm9ybWFsaXplKCBzY3JlZW5fcSAtIHNjcmVlbl9wIClcXG4gIC8vIHQgPSArLSBub3JtYWxpemUoIChxLnh5L3Eudys8MSwxPikqMC41KnVWaWV3cG9ydC56dyAtIChwLnh5L3Audys8MSwxPikqMC41KnVWaWV3cG9ydC56dyApXFxuICAvL1xcbiAgLy8gZXh0cmFjdCBjb21tb24gZmFjdG9yLCA8MSwxPiAtIDwxLDE+IGNhbmNlbHMgb3V0XFxuICAvLyB0ID0gKy0gbm9ybWFsaXplKCAocS54eS9xLncgLSBwLnh5L3AudykgKiAwLjUgKiB1Vmlld3BvcnQuencgKVxcbiAgLy9cXG4gIC8vIGNvbnZlcnQgdG8gY29tbW9uIGRpdmlzb3JcXG4gIC8vIHQgPSArLSBub3JtYWxpemUoICgocS54eSpwLncgLSBwLnh5KnEudykgLyAocC53KnEudykpICogMC41ICogdVZpZXdwb3J0Lnp3IClcXG4gIC8vXFxuICAvLyByZW1vdmUgdGhlIGNvbW1vbiBzY2FsYXIgZGl2aXNvci9mYWN0b3IsIG5vdCBuZWVkZWQgZHVlIHRvIG5vcm1hbGl6ZSBhbmQgKy1cXG4gIC8vIChrZWVwIHVWaWV3cG9ydCAtIGNhbid0IHJlbW92ZSBiZWNhdXNlIGl0IGhhcyBkaWZmZXJlbnQgY29tcG9uZW50cyBmb3IgeCBhbmQgeVxcbiAgLy8gIGFuZCBjb3JyZWN0cyBmb3IgYXNwZWN0IHJhdGlvLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3Byb2Nlc3NpbmcvcHJvY2Vzc2luZy9pc3N1ZXMvNTE4MSlcXG4gIC8vIHQgPSArLSBub3JtYWxpemUoIChxLnh5KnAudyAtIHAueHkqcS53KSAqIHVWaWV3cG9ydC56dyApXFxuXFxuICB2ZWMyIHRhbmdlbnQgPSBub3JtYWxpemUoKHEueHkqcC53IC0gcC54eSpxLncpICogdVZpZXdwb3J0Lnp3KTtcXG5cXG4gIC8vIGZsaXAgdGFuZ2VudCB0byBub3JtYWwgKGl0J3MgYWxyZWFkeSBub3JtYWxpemVkKVxcbiAgdmVjMiBub3JtYWwgPSB2ZWMyKC10YW5nZW50LnksIHRhbmdlbnQueCk7XFxuXFxuICBmbG9hdCB0aGlja25lc3MgPSBhRGlyZWN0aW9uLncgKiB1U3Ryb2tlV2VpZ2h0O1xcbiAgdmVjMiBvZmZzZXQgPSBub3JtYWwgKiB0aGlja25lc3MgLyAyLjA7XFxuXFxuICB2ZWMyIGN1clBlcnNwU2NhbGU7XFxuXFxuICBpZih1UGVyc3BlY3RpdmUgPT0gMSkge1xcbiAgICAvLyBQZXJzcGVjdGl2ZSAtLS1cXG4gICAgLy8gY29udmVydCBmcm9tIHdvcmxkIHRvIGNsaXAgYnkgbXVsdGlwbHlpbmcgd2l0aCBwcm9qZWN0aW9uIHNjYWxpbmcgZmFjdG9yXFxuICAgIC8vIHRvIGdldCB0aGUgcmlnaHQgdGhpY2tuZXNzIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3Byb2Nlc3NpbmcvcHJvY2Vzc2luZy9pc3N1ZXMvNTE4MilcXG4gICAgLy8gaW52ZXJ0IFksIHByb2plY3Rpb25zIGluIFByb2Nlc3NpbmcgaW52ZXJ0IFlcXG4gICAgY3VyUGVyc3BTY2FsZSA9ICh1UHJvamVjdGlvbk1hdHJpeCAqIHZlYzQoMSwgLTEsIDAsIDApKS54eTtcXG4gIH0gZWxzZSB7XFxuICAgIC8vIE5vIFBlcnNwZWN0aXZlIC0tLVxcbiAgICAvLyBtdWx0aXBseSBieSBXICh0byBjYW5jZWwgb3V0IGRpdmlzaW9uIGJ5IFcgbGF0ZXIgaW4gdGhlIHBpcGVsaW5lKSBhbmRcXG4gICAgLy8gY29udmVydCBmcm9tIHNjcmVlbiB0byBjbGlwIChkZXJpdmVkIGZyb20gY2xpcCB0byBzY3JlZW4gYWJvdmUpXFxuICAgIGN1clBlcnNwU2NhbGUgPSBwLncgLyAoMC41ICogdVZpZXdwb3J0Lnp3KTtcXG4gIH1cXG5cXG4gIGdsX1Bvc2l0aW9uLnh5ID0gcC54eSArIG9mZnNldC54eSAqIGN1clBlcnNwU2NhbGU7XFxuICBnbF9Qb3NpdGlvbi56dyA9IHAuenc7XFxufVxcblwiLGxpbmVGcmFnOlwicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XFxucHJlY2lzaW9uIG1lZGl1bXAgaW50O1xcblxcbnVuaWZvcm0gdmVjNCB1TWF0ZXJpYWxDb2xvcjtcXG5cXG52b2lkIG1haW4oKSB7XFxuICBnbF9GcmFnQ29sb3IgPSB1TWF0ZXJpYWxDb2xvcjtcXG59XCIscG9pbnRWZXJ0OlwiYXR0cmlidXRlIHZlYzMgYVBvc2l0aW9uO1xcbnVuaWZvcm0gZmxvYXQgdVBvaW50U2l6ZTtcXG52YXJ5aW5nIGZsb2F0IHZTdHJva2VXZWlnaHQ7XFxudW5pZm9ybSBtYXQ0IHVNb2RlbFZpZXdNYXRyaXg7XFxudW5pZm9ybSBtYXQ0IHVQcm9qZWN0aW9uTWF0cml4O1xcbnZvaWQgbWFpbigpIHtcXG5cXHR2ZWM0IHBvc2l0aW9uVmVjNCA9ICB2ZWM0KGFQb3NpdGlvbiwgMS4wKTtcXG5cXHRnbF9Qb3NpdGlvbiA9IHVQcm9qZWN0aW9uTWF0cml4ICogdU1vZGVsVmlld01hdHJpeCAqIHBvc2l0aW9uVmVjNDtcXG5cXHRnbF9Qb2ludFNpemUgPSB1UG9pbnRTaXplO1xcblxcdHZTdHJva2VXZWlnaHQgPSB1UG9pbnRTaXplO1xcbn1cIixwb2ludEZyYWc6XCJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcXG5wcmVjaXNpb24gbWVkaXVtcCBpbnQ7XFxudW5pZm9ybSB2ZWM0IHVNYXRlcmlhbENvbG9yO1xcbnZhcnlpbmcgZmxvYXQgdlN0cm9rZVdlaWdodDtcXG5cXG52b2lkIG1haW4oKXtcXG5cXHRmbG9hdCBtYXNrID0gMC4wO1xcblxcblxcdC8vIG1ha2UgYSBjaXJjdWxhciBtYXNrIHVzaW5nIHRoZSBnbF9Qb2ludENvb3JkIChnb2VzIGZyb20gMCAtIDEgb24gYSBwb2ludClcXG4gICAgLy8gbWlnaHQgYmUgYWJsZSB0byBnZXQgYSBuaWNlciBlZGdlIG9uIGJpZyBzdHJva2V3ZWlnaHRzIHdpdGggc21vb3Roc3RlcCBidXQgc2xpZ2h0bHkgbGVzcyBwZXJmb3JtYW50XFxuXFxuXFx0bWFzayA9IHN0ZXAoMC45OCwgbGVuZ3RoKGdsX1BvaW50Q29vcmQgKiAyLjAgLSAxLjApKTtcXG5cXG5cXHQvLyBpZiBzdHJva2VXZWlnaHQgaXMgMSBvciBsZXNzIGxldHMganVzdCBkcmF3IGEgc3F1YXJlXFxuXFx0Ly8gdGhpcyBwcmV2ZW50cyB3ZWlyZCBhcnRpZmFjdGluZyBmcm9tIGNhcnZpbmcgY2lyY2xlcyB3aGVuIG91ciBwb2ludHMgYXJlIHJlYWxseSBzbWFsbFxcblxcdC8vIGlmIHN0cm9rZVdlaWdodCBpcyBsYXJnZXIgdGhhbiAxLCB3ZSBqdXN0IHVzZSBpdCBhcyBpc1xcblxcblxcdG1hc2sgPSBtaXgoMC4wLCBtYXNrLCBjbGFtcChmbG9vcih2U3Ryb2tlV2VpZ2h0IC0gMC41KSwwLjAsMS4wKSk7XFxuXFxuXFx0Ly8gdGhyb3cgYXdheSB0aGUgYm9yZGVycyBvZiB0aGUgbWFza1xcbiAgICAvLyBvdGhlcndpc2Ugd2UgZ2V0IHdlaXJkIGFscGhhIGJsZW5kaW5nIGlzc3Vlc1xcblxcblxcdGlmKG1hc2sgPiAwLjk4KXtcXG4gICAgICBkaXNjYXJkO1xcbiAgXFx0fVxcblxcbiAgXFx0Z2xfRnJhZ0NvbG9yID0gdmVjNCh1TWF0ZXJpYWxDb2xvci5yZ2IgKiAoMS4wIC0gbWFzayksIHVNYXRlcmlhbENvbG9yLmEpIDtcXG59XCJ9O3UuZGVmYXVsdC5SZW5kZXJlckdMPWZ1bmN0aW9uKGUsdCxyLGkpe3JldHVybiB1LmRlZmF1bHQuUmVuZGVyZXIuY2FsbCh0aGlzLGUsdCxyKSx0aGlzLl9zZXRBdHRyaWJ1dGVEZWZhdWx0cyh0KSx0aGlzLl9pbml0Q29udGV4dCgpLHRoaXMuaXNQM0Q9ITAsdGhpcy5HTD10aGlzLmRyYXdpbmdDb250ZXh0LHRoaXMuX3BJbnN0Ll9zZXRQcm9wZXJ0eShcImRyYXdpbmdDb250ZXh0XCIsdGhpcy5kcmF3aW5nQ29udGV4dCksdGhpcy5faXNFcmFzaW5nPSExLHRoaXMuX2VuYWJsZUxpZ2h0aW5nPSExLHRoaXMuYW1iaWVudExpZ2h0Q29sb3JzPVtdLHRoaXMuc3BlY3VsYXJDb2xvcnM9WzEsMSwxXSx0aGlzLmRpcmVjdGlvbmFsTGlnaHREaXJlY3Rpb25zPVtdLHRoaXMuZGlyZWN0aW9uYWxMaWdodERpZmZ1c2VDb2xvcnM9W10sdGhpcy5kaXJlY3Rpb25hbExpZ2h0U3BlY3VsYXJDb2xvcnM9W10sdGhpcy5wb2ludExpZ2h0UG9zaXRpb25zPVtdLHRoaXMucG9pbnRMaWdodERpZmZ1c2VDb2xvcnM9W10sdGhpcy5wb2ludExpZ2h0U3BlY3VsYXJDb2xvcnM9W10sdGhpcy5zcG90TGlnaHRQb3NpdGlvbnM9W10sdGhpcy5zcG90TGlnaHREaXJlY3Rpb25zPVtdLHRoaXMuc3BvdExpZ2h0RGlmZnVzZUNvbG9ycz1bXSx0aGlzLnNwb3RMaWdodFNwZWN1bGFyQ29sb3JzPVtdLHRoaXMuc3BvdExpZ2h0QW5nbGU9W10sdGhpcy5zcG90TGlnaHRDb25jPVtdLHRoaXMuZHJhd01vZGU9YS5GSUxMLHRoaXMuY3VyRmlsbENvbG9yPXRoaXMuX2NhY2hlZEZpbGxTdHlsZT1bMSwxLDEsMV0sdGhpcy5jdXJTdHJva2VDb2xvcj10aGlzLl9jYWNoZWRTdHJva2VTdHlsZT1bMCwwLDAsMV0sdGhpcy5jdXJCbGVuZE1vZGU9YS5CTEVORCx0aGlzLl9jYWNoZWRCbGVuZE1vZGU9dm9pZCAwLHRoaXMuYmxlbmRFeHQ9dGhpcy5HTC5nZXRFeHRlbnNpb24oXCJFWFRfYmxlbmRfbWlubWF4XCIpLHRoaXMuX2lzQmxlbmRpbmc9ITEsdGhpcy5fdXNlU3BlY3VsYXJNYXRlcmlhbD0hMSx0aGlzLl91c2VFbWlzc2l2ZU1hdGVyaWFsPSExLHRoaXMuX3VzZU5vcm1hbE1hdGVyaWFsPSExLHRoaXMuX3VzZVNoaW5pbmVzcz0xLHRoaXMuX3RpbnQ9WzI1NSwyNTUsMjU1LDI1NV0sdGhpcy5jb25zdGFudEF0dGVudWF0aW9uPTEsdGhpcy5saW5lYXJBdHRlbnVhdGlvbj0wLHRoaXMucXVhZHJhdGljQXR0ZW51YXRpb249MCx0aGlzLnVNVk1hdHJpeD1uZXcgdS5kZWZhdWx0Lk1hdHJpeCx0aGlzLnVQTWF0cml4PW5ldyB1LmRlZmF1bHQuTWF0cml4LHRoaXMudU5NYXRyaXg9bmV3IHUuZGVmYXVsdC5NYXRyaXgoXCJtYXQzXCIpLHRoaXMuX2N1ckNhbWVyYT1uZXcgdS5kZWZhdWx0LkNhbWVyYSh0aGlzKSx0aGlzLl9jdXJDYW1lcmEuX2NvbXB1dGVDYW1lcmFEZWZhdWx0U2V0dGluZ3MoKSx0aGlzLl9jdXJDYW1lcmEuX3NldERlZmF1bHRDYW1lcmEoKSx0aGlzLl9kZWZhdWx0TGlnaHRTaGFkZXI9dm9pZCAwLHRoaXMuX2RlZmF1bHRJbW1lZGlhdGVNb2RlU2hhZGVyPXZvaWQgMCx0aGlzLl9kZWZhdWx0Tm9ybWFsU2hhZGVyPXZvaWQgMCx0aGlzLl9kZWZhdWx0Q29sb3JTaGFkZXI9dm9pZCAwLHRoaXMuX2RlZmF1bHRQb2ludFNoYWRlcj12b2lkIDAsdGhpcy51c2VyRmlsbFNoYWRlcj12b2lkIDAsdGhpcy51c2VyU3Ryb2tlU2hhZGVyPXZvaWQgMCx0aGlzLnVzZXJQb2ludFNoYWRlcj12b2lkIDAsdGhpcy5yZXRhaW5lZE1vZGU9e2dlb21ldHJ5Ont9LGJ1ZmZlcnM6e3N0cm9rZTpbbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMyxcImxpbmVWZXJ0aWNlc1wiLFwibGluZVZlcnRleEJ1ZmZlclwiLFwiYVBvc2l0aW9uXCIsdGhpcyx0aGlzLl9mbGF0dGVuKSxuZXcgdS5kZWZhdWx0LlJlbmRlckJ1ZmZlcig0LFwibGluZU5vcm1hbHNcIixcImxpbmVOb3JtYWxCdWZmZXJcIixcImFEaXJlY3Rpb25cIix0aGlzLHRoaXMuX2ZsYXR0ZW4pXSxmaWxsOltuZXcgdS5kZWZhdWx0LlJlbmRlckJ1ZmZlcigzLFwidmVydGljZXNcIixcInZlcnRleEJ1ZmZlclwiLFwiYVBvc2l0aW9uXCIsdGhpcyx0aGlzLl92VG9OQXJyYXkpLG5ldyB1LmRlZmF1bHQuUmVuZGVyQnVmZmVyKDMsXCJ2ZXJ0ZXhOb3JtYWxzXCIsXCJub3JtYWxCdWZmZXJcIixcImFOb3JtYWxcIix0aGlzLHRoaXMuX3ZUb05BcnJheSksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoNCxcInZlcnRleENvbG9yc1wiLFwiY29sb3JCdWZmZXJcIixcImFNYXRlcmlhbENvbG9yXCIsdGhpcyksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMyxcInZlcnRleEFtYmllbnRzXCIsXCJhbWJpZW50QnVmZmVyXCIsXCJhQW1iaWVudENvbG9yXCIsdGhpcyksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMixcInV2c1wiLFwidXZCdWZmZXJcIixcImFUZXhDb29yZFwiLHRoaXMsdGhpcy5fZmxhdHRlbildLHRleHQ6W25ldyB1LmRlZmF1bHQuUmVuZGVyQnVmZmVyKDMsXCJ2ZXJ0aWNlc1wiLFwidmVydGV4QnVmZmVyXCIsXCJhUG9zaXRpb25cIix0aGlzLHRoaXMuX3ZUb05BcnJheSksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMixcInV2c1wiLFwidXZCdWZmZXJcIixcImFUZXhDb29yZFwiLHRoaXMsdGhpcy5fZmxhdHRlbildfX0sdGhpcy5pbW1lZGlhdGVNb2RlPXtnZW9tZXRyeTpuZXcgdS5kZWZhdWx0Lkdlb21ldHJ5LHNoYXBlTW9kZTphLlRSSUFOR0xFX0ZBTixfYmV6aWVyVmVydGV4OltdLF9xdWFkcmF0aWNWZXJ0ZXg6W10sX2N1cnZlVmVydGV4OltdLGJ1ZmZlcnM6e2ZpbGw6W25ldyB1LmRlZmF1bHQuUmVuZGVyQnVmZmVyKDMsXCJ2ZXJ0aWNlc1wiLFwidmVydGV4QnVmZmVyXCIsXCJhUG9zaXRpb25cIix0aGlzLHRoaXMuX3ZUb05BcnJheSksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMyxcInZlcnRleE5vcm1hbHNcIixcIm5vcm1hbEJ1ZmZlclwiLFwiYU5vcm1hbFwiLHRoaXMsdGhpcy5fdlRvTkFycmF5KSxuZXcgdS5kZWZhdWx0LlJlbmRlckJ1ZmZlcig0LFwidmVydGV4Q29sb3JzXCIsXCJjb2xvckJ1ZmZlclwiLFwiYVZlcnRleENvbG9yXCIsdGhpcyksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMyxcInZlcnRleEFtYmllbnRzXCIsXCJhbWJpZW50QnVmZmVyXCIsXCJhQW1iaWVudENvbG9yXCIsdGhpcyksbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMixcInV2c1wiLFwidXZCdWZmZXJcIixcImFUZXhDb29yZFwiLHRoaXMsdGhpcy5fZmxhdHRlbildLHN0cm9rZTpbbmV3IHUuZGVmYXVsdC5SZW5kZXJCdWZmZXIoMyxcImxpbmVWZXJ0aWNlc1wiLFwibGluZVZlcnRleEJ1ZmZlclwiLFwiYVBvc2l0aW9uXCIsdGhpcyx0aGlzLl9mbGF0dGVuKSxuZXcgdS5kZWZhdWx0LlJlbmRlckJ1ZmZlcig0LFwibGluZU5vcm1hbHNcIixcImxpbmVOb3JtYWxCdWZmZXJcIixcImFEaXJlY3Rpb25cIix0aGlzLHRoaXMuX2ZsYXR0ZW4pXSxwb2ludDp0aGlzLkdMLmNyZWF0ZUJ1ZmZlcigpfX0sdGhpcy5wb2ludFNpemU9NSx0aGlzLmN1clN0cm9rZVdlaWdodD0xLHRoaXMudGV4dHVyZXM9W10sdGhpcy50ZXh0dXJlTW9kZT1hLklNQUdFLHRoaXMudGV4dHVyZVdyYXBYPWEuQ0xBTVAsdGhpcy50ZXh0dXJlV3JhcFk9YS5DTEFNUCx0aGlzLl90ZXg9bnVsbCx0aGlzLl9jdXJ2ZVRpZ2h0bmVzcz02LHRoaXMuX2xvb2tVcFRhYmxlQmV6aWVyPVtdLHRoaXMuX2xvb2tVcFRhYmxlUXVhZHJhdGljPVtdLHRoaXMuX2x1dEJlemllckRldGFpbD0wLHRoaXMuX2x1dFF1YWRyYXRpY0RldGFpbD0wLHRoaXMuX3Rlc3N5PXRoaXMuX2luaXRUZXNzeSgpLHRoaXMuZm9udEluZm9zPXt9LHRoaXMuX2N1clNoYWRlcj12b2lkIDAsdGhpc30sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodS5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZSksdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9zZXRBdHRyaWJ1dGVEZWZhdWx0cz1mdW5jdGlvbihlKXt2YXIgdD17YWxwaGE6ITAsZGVwdGg6ITAsc3RlbmNpbDohMCxhbnRpYWxpYXM6bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwic2FmYXJpXCIpLHByZW11bHRpcGxpZWRBbHBoYTohMSxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITAscGVyUGl4ZWxMaWdodGluZzohMH07bnVsbD09PWUuX2dsQXR0cmlidXRlcz9lLl9nbEF0dHJpYnV0ZXM9dDplLl9nbEF0dHJpYnV0ZXM9T2JqZWN0LmFzc2lnbih0LGUuX2dsQXR0cmlidXRlcyl9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5faW5pdENvbnRleHQ9ZnVuY3Rpb24oKXt0cnl7aWYodGhpcy5kcmF3aW5nQ29udGV4dD10aGlzLmNhbnZhcy5nZXRDb250ZXh0KFwid2ViZ2xcIix0aGlzLl9wSW5zdC5fZ2xBdHRyaWJ1dGVzKXx8dGhpcy5jYW52YXMuZ2V0Q29udGV4dChcImV4cGVyaW1lbnRhbC13ZWJnbFwiLHRoaXMuX3BJbnN0Ll9nbEF0dHJpYnV0ZXMpLG51bGw9PT10aGlzLmRyYXdpbmdDb250ZXh0KXRocm93IG5ldyBFcnJvcihcIkVycm9yIGNyZWF0aW5nIHdlYmdsIGNvbnRleHRcIik7dmFyIGU9dGhpcy5kcmF3aW5nQ29udGV4dDtlLmVuYWJsZShlLkRFUFRIX1RFU1QpLGUuZGVwdGhGdW5jKGUuTEVRVUFMKSxlLnZpZXdwb3J0KDAsMCxlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHQpLHRoaXMuX3ZpZXdwb3J0PXRoaXMuZHJhd2luZ0NvbnRleHQuZ2V0UGFyYW1ldGVyKHRoaXMuZHJhd2luZ0NvbnRleHQuVklFV1BPUlQpfWNhdGNoKGUpe3Rocm93IGV9fSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX3Jlc2V0Q29udGV4dD1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMud2lkdGgsaT10aGlzLmhlaWdodCxuPXRoaXMuY2FudmFzLmlkLGE9dGhpcy5fcEluc3QgaW5zdGFuY2VvZiB1LmRlZmF1bHQuR3JhcGhpY3M7aWYoYSl7dmFyIG89dGhpcy5fcEluc3Q7by5jYW52YXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvLmNhbnZhcyksby5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKSwoby5fcEluc3QuX3VzZXJOb2RlfHxkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZChvLmNhbnZhcyksdS5kZWZhdWx0LkVsZW1lbnQuY2FsbChvLG8uY2FudmFzLG8uX3BJbnN0KSxvLndpZHRoPXIsby5oZWlnaHQ9aX1lbHNle3ZhciBzPXRoaXMuY2FudmFzO3MmJnMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzKSwocz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpKS5pZD1uLHRoaXMuX3BJbnN0Ll91c2VyTm9kZT90aGlzLl9wSW5zdC5fdXNlck5vZGUuYXBwZW5kQ2hpbGQocyk6ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKSx0aGlzLl9wSW5zdC5jYW52YXM9c312YXIgbD1uZXcgdS5kZWZhdWx0LlJlbmRlcmVyR0wodGhpcy5fcEluc3QuY2FudmFzLHRoaXMuX3BJbnN0LCFhKTt0aGlzLl9wSW5zdC5fc2V0UHJvcGVydHkoXCJfcmVuZGVyZXJcIixsKSxsLnJlc2l6ZShyLGkpLGwuX2FwcGx5RGVmYXVsdHMoKSxhfHx0aGlzLl9wSW5zdC5fZWxlbWVudHMucHVzaChsKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5hcHBseSh3aW5kb3cuX3JlbmRlcmVyLGUpfSwwKX0sdS5kZWZhdWx0LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVzPWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09dGhpcy5fZ2xBdHRyaWJ1dGVzKXt2YXIgcj0hMDtpZih2b2lkIDAhPT10PyhudWxsPT09dGhpcy5fZ2xBdHRyaWJ1dGVzJiYodGhpcy5fZ2xBdHRyaWJ1dGVzPXt9KSx0aGlzLl9nbEF0dHJpYnV0ZXNbZV0hPT10JiYodGhpcy5fZ2xBdHRyaWJ1dGVzW2VdPXQscj0hMSkpOmUgaW5zdGFuY2VvZiBPYmplY3QmJnRoaXMuX2dsQXR0cmlidXRlcyE9PWUmJih0aGlzLl9nbEF0dHJpYnV0ZXM9ZSxyPSExKSx0aGlzLl9yZW5kZXJlci5pc1AzRCYmIXIpe2lmKCF0aGlzLl9zZXR1cERvbmUpZm9yKHZhciBpIGluIHRoaXMuX3JlbmRlcmVyLnJldGFpbmVkTW9kZS5nZW9tZXRyeSlpZih0aGlzLl9yZW5kZXJlci5yZXRhaW5lZE1vZGUuZ2VvbWV0cnkuaGFzT3duUHJvcGVydHkoaSkpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihcIlNvcnJ5LCBDb3VsZCBub3Qgc2V0IHRoZSBhdHRyaWJ1dGVzLCB5b3UgbmVlZCB0byBjYWxsIHNldEF0dHJpYnV0ZXMoKSBiZWZvcmUgY2FsbGluZyB0aGUgb3RoZXIgZHJhd2luZyBtZXRob2RzIGluIHNldHVwKClcIik7dGhpcy5wdXNoKCksdGhpcy5fcmVuZGVyZXIuX3Jlc2V0Q29udGV4dCgpLHRoaXMucG9wKCksdGhpcy5fcmVuZGVyZXIuX2N1ckNhbWVyYSYmKHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuX3JlbmRlcmVyPXRoaXMuX3JlbmRlcmVyKX19ZWxzZSBjb25zb2xlLmxvZyhcIllvdSBhcmUgdHJ5aW5nIHRvIHVzZSBzZXRBdHRyaWJ1dGVzIG9uIGEgcDUuR3JhcGhpY3Mgb2JqZWN0IHRoYXQgZG9lcyBub3QgdXNlIGEgV0VCR0wgcmVuZGVyZXIuXCIpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3RoaXMudU1WTWF0cml4LnNldCh0aGlzLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbMF0sdGhpcy5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzFdLHRoaXMuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsyXSx0aGlzLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbM10sdGhpcy5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzRdLHRoaXMuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFs1XSx0aGlzLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbNl0sdGhpcy5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzddLHRoaXMuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFs4XSx0aGlzLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbOV0sdGhpcy5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzEwXSx0aGlzLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbMTFdLHRoaXMuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxMl0sdGhpcy5fY3VyQ2FtZXJhLmNhbWVyYU1hdHJpeC5tYXQ0WzEzXSx0aGlzLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDRbMTRdLHRoaXMuX2N1ckNhbWVyYS5jYW1lcmFNYXRyaXgubWF0NFsxNV0pLHRoaXMuYW1iaWVudExpZ2h0Q29sb3JzLmxlbmd0aD0wLHRoaXMuc3BlY3VsYXJDb2xvcnM9WzEsMSwxXSx0aGlzLmRpcmVjdGlvbmFsTGlnaHREaXJlY3Rpb25zLmxlbmd0aD0wLHRoaXMuZGlyZWN0aW9uYWxMaWdodERpZmZ1c2VDb2xvcnMubGVuZ3RoPTAsdGhpcy5kaXJlY3Rpb25hbExpZ2h0U3BlY3VsYXJDb2xvcnMubGVuZ3RoPTAsdGhpcy5wb2ludExpZ2h0UG9zaXRpb25zLmxlbmd0aD0wLHRoaXMucG9pbnRMaWdodERpZmZ1c2VDb2xvcnMubGVuZ3RoPTAsdGhpcy5wb2ludExpZ2h0U3BlY3VsYXJDb2xvcnMubGVuZ3RoPTAsdGhpcy5zcG90TGlnaHRQb3NpdGlvbnMubGVuZ3RoPTAsdGhpcy5zcG90TGlnaHREaXJlY3Rpb25zLmxlbmd0aD0wLHRoaXMuc3BvdExpZ2h0RGlmZnVzZUNvbG9ycy5sZW5ndGg9MCx0aGlzLnNwb3RMaWdodFNwZWN1bGFyQ29sb3JzLmxlbmd0aD0wLHRoaXMuc3BvdExpZ2h0QW5nbGUubGVuZ3RoPTAsdGhpcy5zcG90TGlnaHRDb25jLmxlbmd0aD0wLHRoaXMuX2VuYWJsZUxpZ2h0aW5nPSExLHRoaXMuX3RpbnQ9WzI1NSwyNTUsMjU1LDI1NV0sdGhpcy5HTC5jbGVhcih0aGlzLkdMLkRFUFRIX0JVRkZFUl9CSVQpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuYmFja2dyb3VuZD1mdW5jdGlvbigpe3ZhciBlLHQ9KGU9dGhpcy5fcEluc3QpLmNvbG9yLmFwcGx5KGUsYXJndW1lbnRzKSxyPXQubGV2ZWxzWzBdLzI1NSxpPXQubGV2ZWxzWzFdLzI1NSxuPXQubGV2ZWxzWzJdLzI1NSxhPXQubGV2ZWxzWzNdLzI1NTt0aGlzLkdMLmNsZWFyQ29sb3IocixpLG4sYSksdGhpcy5HTC5jbGVhcih0aGlzLkdMLkNPTE9SX0JVRkZFUl9CSVQpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbihlLHQscixpKXt2YXIgbj11LmRlZmF1bHQucHJvdG90eXBlLmNvbG9yLmFwcGx5KHRoaXMuX3BJbnN0LGFyZ3VtZW50cyk7dGhpcy5jdXJGaWxsQ29sb3I9bi5fYXJyYXksdGhpcy5kcmF3TW9kZT1hLkZJTEwsdGhpcy5fdXNlTm9ybWFsTWF0ZXJpYWw9ITEsdGhpcy5fdGV4PW51bGx9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5zdHJva2U9ZnVuY3Rpb24oZSx0LHIsaSl7YXJndW1lbnRzWzNdPTI1NTt2YXIgbj11LmRlZmF1bHQucHJvdG90eXBlLmNvbG9yLmFwcGx5KHRoaXMuX3BJbnN0LGFyZ3VtZW50cyk7dGhpcy5jdXJTdHJva2VDb2xvcj1uLl9hcnJheX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLnN0cm9rZUNhcD1mdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKFwiU29ycnksIHN0cm9rZUNhcCgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gV0VCR0wgbW9kZVwiKX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLnN0cm9rZUpvaW49ZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihcIlNvcnJ5LCBzdHJva2VKb2luKCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiBXRUJHTCBtb2RlXCIpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuZmlsdGVyPWZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoXCJmaWx0ZXIoKSBkb2VzIG5vdCB3b3JrIGluIFdFQkdMIG1vZGVcIil9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5ibGVuZE1vZGU9ZnVuY3Rpb24oZSl7ZT09PWEuREFSS0VTVHx8ZT09PWEuTElHSFRFU1R8fGU9PT1hLkFERHx8ZT09PWEuQkxFTkR8fGU9PT1hLlNVQlRSQUNUfHxlPT09YS5TQ1JFRU58fGU9PT1hLkVYQ0xVU0lPTnx8ZT09PWEuUkVQTEFDRXx8ZT09PWEuTVVMVElQTFl8fGU9PT1hLlJFTU9WRT90aGlzLmN1ckJsZW5kTW9kZT1lOmUhPT1hLkJVUk4mJmUhPT1hLk9WRVJMQVkmJmUhPT1hLkhBUkRfTElHSFQmJmUhPT1hLlNPRlRfTElHSFQmJmUhPT1hLkRPREdFfHxjb25zb2xlLndhcm4oXCJCVVJOLCBPVkVSTEFZLCBIQVJEX0xJR0hULCBTT0ZUX0xJR0hULCBhbmQgRE9ER0Ugb25seSB3b3JrIGZvciBibGVuZE1vZGUgaW4gMkQgbW9kZS5cIil9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5lcmFzZT1mdW5jdGlvbihlLHQpe3RoaXMuX2lzRXJhc2luZ3x8KHRoaXMuX2FwcGx5QmxlbmRNb2RlKGEuUkVNT1ZFKSx0aGlzLl9pc0VyYXNpbmc9ITAsdGhpcy5fY2FjaGVkRmlsbFN0eWxlPXRoaXMuY3VyRmlsbENvbG9yLnNsaWNlKCksdGhpcy5jdXJGaWxsQ29sb3I9WzEsMSwxLGUvMjU1XSx0aGlzLl9jYWNoZWRTdHJva2VTdHlsZT10aGlzLmN1clN0cm9rZUNvbG9yLnNsaWNlKCksdGhpcy5jdXJTdHJva2VDb2xvcj1bMSwxLDEsdC8yNTVdKX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLm5vRXJhc2U9ZnVuY3Rpb24oKXt0aGlzLl9pc0VyYXNpbmcmJih0aGlzLl9pc0VyYXNpbmc9ITEsdGhpcy5jdXJGaWxsQ29sb3I9dGhpcy5fY2FjaGVkRmlsbFN0eWxlLnNsaWNlKCksdGhpcy5jdXJTdHJva2VDb2xvcj10aGlzLl9jYWNoZWRTdHJva2VTdHlsZS5zbGljZSgpLHRoaXMuYmxlbmRNb2RlKHRoaXMuX2NhY2hlZEJsZW5kTW9kZSkpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuc3Ryb2tlV2VpZ2h0PWZ1bmN0aW9uKGUpe3RoaXMuY3VyU3Ryb2tlV2VpZ2h0IT09ZSYmKHRoaXMucG9pbnRTaXplPWUsdGhpcy5jdXJTdHJva2VXZWlnaHQ9ZSl9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZ2V0UGl4ZWw9ZnVuY3Rpb24oZSx0KXt2YXIgcjtyZXR1cm4gcj1uZXcgVWludDhBcnJheSg0KSx0aGlzLmRyYXdpbmdDb250ZXh0LnJlYWRQaXhlbHMoZSx0LDEsMSx0aGlzLmRyYXdpbmdDb250ZXh0LlJHQkEsdGhpcy5kcmF3aW5nQ29udGV4dC5VTlNJR05FRF9CWVRFLHIpLFtyWzBdLHJbMV0sclsyXSxyWzNdXX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLmxvYWRQaXhlbHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9waXhlbHNTdGF0ZTtpZighMD09PXRoaXMuX3BJbnN0Ll9nbEF0dHJpYnV0ZXMucHJlc2VydmVEcmF3aW5nQnVmZmVyKXt2YXIgdD1lLnBpeGVscyxyPXRoaXMuR0wuZHJhd2luZ0J1ZmZlcldpZHRoKnRoaXMuR0wuZHJhd2luZ0J1ZmZlckhlaWdodCo0O3QgaW5zdGFuY2VvZiBVaW50OEFycmF5JiZ0Lmxlbmd0aD09PXJ8fCh0PW5ldyBVaW50OEFycmF5KHIpLHRoaXMuX3BpeGVsc1N0YXRlLl9zZXRQcm9wZXJ0eShcInBpeGVsc1wiLHQpKTt2YXIgaT10aGlzLl9wSW5zdC5fcGl4ZWxEZW5zaXR5O3RoaXMuR0wucmVhZFBpeGVscygwLDAsdGhpcy53aWR0aCppLHRoaXMuaGVpZ2h0KmksdGhpcy5HTC5SR0JBLHRoaXMuR0wuVU5TSUdORURfQllURSx0KX1lbHNlIGNvbnNvbGUubG9nKFwibG9hZFBpeGVscyBvbmx5IHdvcmtzIGluIFdlYkdMIHdoZW4gcHJlc2VydmVEcmF3aW5nQnVmZmVyIGlzIHRydWUuXCIpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuZ2VvbWV0cnlJbkhhc2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMucmV0YWluZWRNb2RlLmdlb21ldHJ5W2VdfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKGUsdCl7dS5kZWZhdWx0LlJlbmRlcmVyLnByb3RvdHlwZS5yZXNpemUuY2FsbCh0aGlzLGUsdCksdGhpcy5HTC52aWV3cG9ydCgwLDAsdGhpcy5HTC5kcmF3aW5nQnVmZmVyV2lkdGgsdGhpcy5HTC5kcmF3aW5nQnVmZmVySGVpZ2h0KSx0aGlzLl92aWV3cG9ydD10aGlzLkdMLmdldFBhcmFtZXRlcih0aGlzLkdMLlZJRVdQT1JUKSx0aGlzLl9jdXJDYW1lcmEuX3Jlc2l6ZSgpO3ZhciByPXRoaXMuX3BpeGVsc1N0YXRlO3ZvaWQgMCE9PXIucGl4ZWxzJiZyLl9zZXRQcm9wZXJ0eShcInBpeGVsc1wiLG5ldyBVaW50OEFycmF5KHRoaXMuR0wuZHJhd2luZ0J1ZmZlcldpZHRoKnRoaXMuR0wuZHJhd2luZ0J1ZmZlckhlaWdodCo0KSl9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciBlPShhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0pfHwwLHQ9KGFyZ3VtZW50cy5sZW5ndGg8PTE/dm9pZCAwOmFyZ3VtZW50c1sxXSl8fDAscj0oYXJndW1lbnRzLmxlbmd0aDw9Mj92b2lkIDA6YXJndW1lbnRzWzJdKXx8MCxpPShhcmd1bWVudHMubGVuZ3RoPD0zP3ZvaWQgMDphcmd1bWVudHNbM10pfHwwO3RoaXMuR0wuY2xlYXJDb2xvcihlLHQscixpKSx0aGlzLkdMLmNsZWFyKHRoaXMuR0wuQ09MT1JfQlVGRkVSX0JJVHx0aGlzLkdMLkRFUFRIX0JVRkZFUl9CSVQpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuYXBwbHlNYXRyaXg9ZnVuY3Rpb24oZSx0LHIsaSxuLGEpezE2PT09YXJndW1lbnRzLmxlbmd0aD91LmRlZmF1bHQuTWF0cml4LnByb3RvdHlwZS5hcHBseS5hcHBseSh0aGlzLnVNVk1hdHJpeCxhcmd1bWVudHMpOnRoaXMudU1WTWF0cml4LmFwcGx5KFtlLHQsMCwwLHIsaSwwLDAsMCwwLDEsMCxuLGEsMCwxXSl9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS50cmFuc2xhdGU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlIGluc3RhbmNlb2YgdS5kZWZhdWx0LlZlY3RvciYmKHI9ZS56LHQ9ZS55LGU9ZS54KSx0aGlzLnVNVk1hdHJpeC50cmFuc2xhdGUoW2UsdCxyXSksdGhpc30sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLnNjYWxlPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdGhpcy51TVZNYXRyaXguc2NhbGUoZSx0LHIpLHRoaXN9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5yb3RhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD90aGlzLnJvdGF0ZVooZSk6KHUuZGVmYXVsdC5NYXRyaXgucHJvdG90eXBlLnJvdGF0ZS5hcHBseSh0aGlzLnVNVk1hdHJpeCxhcmd1bWVudHMpLHRoaXMpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUucm90YXRlWD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yb3RhdGUoZSwxLDAsMCksdGhpc30sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLnJvdGF0ZVk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucm90YXRlKGUsMCwxLDApLHRoaXN9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5yb3RhdGVaPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJvdGF0ZShlLDAsMCwxKSx0aGlzfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbigpe3ZhciBlPXUuZGVmYXVsdC5SZW5kZXJlci5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzKSx0PWUucHJvcGVydGllcztyZXR1cm4gdC51TVZNYXRyaXg9dGhpcy51TVZNYXRyaXguY29weSgpLHQudVBNYXRyaXg9dGhpcy51UE1hdHJpeC5jb3B5KCksdC5fY3VyQ2FtZXJhPXRoaXMuX2N1ckNhbWVyYSx0aGlzLl9jdXJDYW1lcmE9dGhpcy5fY3VyQ2FtZXJhLmNvcHkoKSx0LmFtYmllbnRMaWdodENvbG9ycz10aGlzLmFtYmllbnRMaWdodENvbG9ycy5zbGljZSgpLHQuc3BlY3VsYXJDb2xvcnM9dGhpcy5zcGVjdWxhckNvbG9ycy5zbGljZSgpLHQuZGlyZWN0aW9uYWxMaWdodERpcmVjdGlvbnM9dGhpcy5kaXJlY3Rpb25hbExpZ2h0RGlyZWN0aW9ucy5zbGljZSgpLHQuZGlyZWN0aW9uYWxMaWdodERpZmZ1c2VDb2xvcnM9dGhpcy5kaXJlY3Rpb25hbExpZ2h0RGlmZnVzZUNvbG9ycy5zbGljZSgpLHQuZGlyZWN0aW9uYWxMaWdodFNwZWN1bGFyQ29sb3JzPXRoaXMuZGlyZWN0aW9uYWxMaWdodFNwZWN1bGFyQ29sb3JzLnNsaWNlKCksdC5wb2ludExpZ2h0UG9zaXRpb25zPXRoaXMucG9pbnRMaWdodFBvc2l0aW9ucy5zbGljZSgpLHQucG9pbnRMaWdodERpZmZ1c2VDb2xvcnM9dGhpcy5wb2ludExpZ2h0RGlmZnVzZUNvbG9ycy5zbGljZSgpLHQucG9pbnRMaWdodFNwZWN1bGFyQ29sb3JzPXRoaXMucG9pbnRMaWdodFNwZWN1bGFyQ29sb3JzLnNsaWNlKCksdC5zcG90TGlnaHRQb3NpdGlvbnM9dGhpcy5zcG90TGlnaHRQb3NpdGlvbnMuc2xpY2UoKSx0LnNwb3RMaWdodERpcmVjdGlvbnM9dGhpcy5zcG90TGlnaHREaXJlY3Rpb25zLnNsaWNlKCksdC5zcG90TGlnaHREaWZmdXNlQ29sb3JzPXRoaXMuc3BvdExpZ2h0RGlmZnVzZUNvbG9ycy5zbGljZSgpLHQuc3BvdExpZ2h0U3BlY3VsYXJDb2xvcnM9dGhpcy5zcG90TGlnaHRTcGVjdWxhckNvbG9ycy5zbGljZSgpLHQuc3BvdExpZ2h0QW5nbGU9dGhpcy5zcG90TGlnaHRBbmdsZS5zbGljZSgpLHQuc3BvdExpZ2h0Q29uYz10aGlzLnNwb3RMaWdodENvbmMuc2xpY2UoKSx0LnVzZXJGaWxsU2hhZGVyPXRoaXMudXNlckZpbGxTaGFkZXIsdC51c2VyU3Ryb2tlU2hhZGVyPXRoaXMudXNlclN0cm9rZVNoYWRlcix0LnVzZXJQb2ludFNoYWRlcj10aGlzLnVzZXJQb2ludFNoYWRlcix0LnBvaW50U2l6ZT10aGlzLnBvaW50U2l6ZSx0LmN1clN0cm9rZVdlaWdodD10aGlzLmN1clN0cm9rZVdlaWdodCx0LmN1clN0cm9rZUNvbG9yPXRoaXMuY3VyU3Ryb2tlQ29sb3IsdC5jdXJGaWxsQ29sb3I9dGhpcy5jdXJGaWxsQ29sb3IsdC5fdXNlU3BlY3VsYXJNYXRlcmlhbD10aGlzLl91c2VTcGVjdWxhck1hdGVyaWFsLHQuX3VzZUVtaXNzaXZlTWF0ZXJpYWw9dGhpcy5fdXNlRW1pc3NpdmVNYXRlcmlhbCx0Ll91c2VTaGluaW5lc3M9dGhpcy5fdXNlU2hpbmluZXNzLHQuY29uc3RhbnRBdHRlbnVhdGlvbj10aGlzLmNvbnN0YW50QXR0ZW51YXRpb24sdC5saW5lYXJBdHRlbnVhdGlvbj10aGlzLmxpbmVhckF0dGVudWF0aW9uLHQucXVhZHJhdGljQXR0ZW51YXRpb249dGhpcy5xdWFkcmF0aWNBdHRlbnVhdGlvbix0Ll9lbmFibGVMaWdodGluZz10aGlzLl9lbmFibGVMaWdodGluZyx0Ll91c2VOb3JtYWxNYXRlcmlhbD10aGlzLl91c2VOb3JtYWxNYXRlcmlhbCx0Ll90ZXg9dGhpcy5fdGV4LHQuZHJhd01vZGU9dGhpcy5kcmF3TW9kZSxlfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUucmVzZXRNYXRyaXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51TVZNYXRyaXg9dS5kZWZhdWx0Lk1hdHJpeC5pZGVudGl0eSh0aGlzLl9wSW5zdCksdGhpc30sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXRJbW1lZGlhdGVTdHJva2VTaGFkZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVzZXJTdHJva2VTaGFkZXI7cmV0dXJuIGUmJmUuaXNTdHJva2VTaGFkZXIoKT9lOnRoaXMuX2dldExpbmVTaGFkZXIoKX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXRSZXRhaW5lZFN0cm9rZVNoYWRlcj11LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2dldEltbWVkaWF0ZVN0cm9rZVNoYWRlcix1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2dldEltbWVkaWF0ZUZpbGxTaGFkZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVzZXJGaWxsU2hhZGVyO2lmKHRoaXMuX3VzZU5vcm1hbE1hdGVyaWFsJiYoIWV8fCFlLmlzTm9ybWFsU2hhZGVyKCkpKXJldHVybiB0aGlzLl9nZXROb3JtYWxTaGFkZXIoKTtpZih0aGlzLl9lbmFibGVMaWdodGluZyl7aWYoIWV8fCFlLmlzTGlnaHRTaGFkZXIoKSlyZXR1cm4gdGhpcy5fZ2V0TGlnaHRTaGFkZXIoKX1lbHNlIGlmKHRoaXMuX3RleCl7aWYoIWV8fCFlLmlzVGV4dHVyZVNoYWRlcigpKXJldHVybiB0aGlzLl9nZXRMaWdodFNoYWRlcigpfWVsc2UgaWYoIWUpcmV0dXJuIHRoaXMuX2dldEltbWVkaWF0ZU1vZGVTaGFkZXIoKTtyZXR1cm4gZX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXRSZXRhaW5lZEZpbGxTaGFkZXI9ZnVuY3Rpb24oKXtpZih0aGlzLl91c2VOb3JtYWxNYXRlcmlhbClyZXR1cm4gdGhpcy5fZ2V0Tm9ybWFsU2hhZGVyKCk7dmFyIGU9dGhpcy51c2VyRmlsbFNoYWRlcjtpZih0aGlzLl9lbmFibGVMaWdodGluZyl7aWYoIWV8fCFlLmlzTGlnaHRTaGFkZXIoKSlyZXR1cm4gdGhpcy5fZ2V0TGlnaHRTaGFkZXIoKX1lbHNlIGlmKHRoaXMuX3RleCl7aWYoIWV8fCFlLmlzVGV4dHVyZVNoYWRlcigpKXJldHVybiB0aGlzLl9nZXRMaWdodFNoYWRlcigpfWVsc2UgaWYoIWUpcmV0dXJuIHRoaXMuX2dldENvbG9yU2hhZGVyKCk7cmV0dXJuIGV9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZ2V0SW1tZWRpYXRlUG9pbnRTaGFkZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVzZXJQb2ludFNoYWRlcjtyZXR1cm4gZSYmZS5pc1BvaW50U2hhZGVyKCk/ZTp0aGlzLl9nZXRQb2ludFNoYWRlcigpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2dldFJldGFpbmVkTGluZVNoYWRlcj11LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2dldEltbWVkaWF0ZUxpbmVTaGFkZXIsdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXRMaWdodFNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0TGlnaHRTaGFkZXJ8fCh0aGlzLl9wSW5zdC5fZ2xBdHRyaWJ1dGVzLnBlclBpeGVsTGlnaHRpbmc/dGhpcy5fZGVmYXVsdExpZ2h0U2hhZGVyPW5ldyB1LmRlZmF1bHQuU2hhZGVyKHRoaXMsYy5waG9uZ1ZlcnQsYy5waG9uZ0ZyYWcpOnRoaXMuX2RlZmF1bHRMaWdodFNoYWRlcj1uZXcgdS5kZWZhdWx0LlNoYWRlcih0aGlzLGMubGlnaHRWZXJ0LGMubGlnaHRUZXh0dXJlRnJhZykpLHRoaXMuX2RlZmF1bHRMaWdodFNoYWRlcn0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXRJbW1lZGlhdGVNb2RlU2hhZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRJbW1lZGlhdGVNb2RlU2hhZGVyfHwodGhpcy5fZGVmYXVsdEltbWVkaWF0ZU1vZGVTaGFkZXI9bmV3IHUuZGVmYXVsdC5TaGFkZXIodGhpcyxjLmltbWVkaWF0ZVZlcnQsYy52ZXJ0ZXhDb2xvckZyYWcpKSx0aGlzLl9kZWZhdWx0SW1tZWRpYXRlTW9kZVNoYWRlcn0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXROb3JtYWxTaGFkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVmYXVsdE5vcm1hbFNoYWRlcnx8KHRoaXMuX2RlZmF1bHROb3JtYWxTaGFkZXI9bmV3IHUuZGVmYXVsdC5TaGFkZXIodGhpcyxjLm5vcm1hbFZlcnQsYy5ub3JtYWxGcmFnKSksdGhpcy5fZGVmYXVsdE5vcm1hbFNoYWRlcn0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9nZXRDb2xvclNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0Q29sb3JTaGFkZXJ8fCh0aGlzLl9kZWZhdWx0Q29sb3JTaGFkZXI9bmV3IHUuZGVmYXVsdC5TaGFkZXIodGhpcyxjLm5vcm1hbFZlcnQsYy5iYXNpY0ZyYWcpKSx0aGlzLl9kZWZhdWx0Q29sb3JTaGFkZXJ9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZ2V0UG9pbnRTaGFkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVmYXVsdFBvaW50U2hhZGVyfHwodGhpcy5fZGVmYXVsdFBvaW50U2hhZGVyPW5ldyB1LmRlZmF1bHQuU2hhZGVyKHRoaXMsYy5wb2ludFZlcnQsYy5wb2ludEZyYWcpKSx0aGlzLl9kZWZhdWx0UG9pbnRTaGFkZXJ9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZ2V0TGluZVNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0TGluZVNoYWRlcnx8KHRoaXMuX2RlZmF1bHRMaW5lU2hhZGVyPW5ldyB1LmRlZmF1bHQuU2hhZGVyKHRoaXMsYy5saW5lVmVydCxjLmxpbmVGcmFnKSksdGhpcy5fZGVmYXVsdExpbmVTaGFkZXJ9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZ2V0Rm9udFNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0Rm9udFNoYWRlcnx8KHRoaXMuR0wuZ2V0RXh0ZW5zaW9uKFwiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzXCIpLHRoaXMuX2RlZmF1bHRGb250U2hhZGVyPW5ldyB1LmRlZmF1bHQuU2hhZGVyKHRoaXMsYy5mb250VmVydCxjLmZvbnRGcmFnKSksdGhpcy5fZGVmYXVsdEZvbnRTaGFkZXJ9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fZ2V0RW1wdHlUZXh0dXJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2VtcHR5VGV4dHVyZSl7dmFyIGU9bmV3IHUuZGVmYXVsdC5JbWFnZSgxLDEpO2Uuc2V0KDAsMCwyNTUpLHRoaXMuX2VtcHR5VGV4dHVyZT1uZXcgdS5kZWZhdWx0LlRleHR1cmUodGhpcyxlKX1yZXR1cm4gdGhpcy5fZW1wdHlUZXh0dXJlfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuZ2V0VGV4dHVyZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnRleHR1cmVzLHI9ITAsaT0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciBhLG89dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShhPW8ubmV4dCgpKS5kb25lKTtyPSEwKXt2YXIgcz1hLnZhbHVlO2lmKHMuc3JjPT09ZSlyZXR1cm4gc319Y2F0Y2goZSl7aT0hMCxuPWV9ZmluYWxseXt0cnl7cnx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihpKXRocm93IG59fXZhciBsPW5ldyB1LmRlZmF1bHQuVGV4dHVyZSh0aGlzLGUpO3JldHVybiB0LnB1c2gobCksbH0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9zZXRTdHJva2VVbmlmb3Jtcz1mdW5jdGlvbihlKXtlLmJpbmRTaGFkZXIoKSxlLnNldFVuaWZvcm0oXCJ1TWF0ZXJpYWxDb2xvclwiLHRoaXMuY3VyU3Ryb2tlQ29sb3IpLGUuc2V0VW5pZm9ybShcInVTdHJva2VXZWlnaHRcIix0aGlzLmN1clN0cm9rZVdlaWdodCl9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fc2V0RmlsbFVuaWZvcm1zPWZ1bmN0aW9uKGUpe2UuYmluZFNoYWRlcigpLGUuc2V0VW5pZm9ybShcInVNYXRlcmlhbENvbG9yXCIsdGhpcy5jdXJGaWxsQ29sb3IpLGUuc2V0VW5pZm9ybShcImlzVGV4dHVyZVwiLCEhdGhpcy5fdGV4KSx0aGlzLl90ZXgmJmUuc2V0VW5pZm9ybShcInVTYW1wbGVyXCIsdGhpcy5fdGV4KSxlLnNldFVuaWZvcm0oXCJ1VGludFwiLHRoaXMuX3RpbnQpLGUuc2V0VW5pZm9ybShcInVTcGVjdWxhclwiLHRoaXMuX3VzZVNwZWN1bGFyTWF0ZXJpYWwpLGUuc2V0VW5pZm9ybShcInVFbWlzc2l2ZVwiLHRoaXMuX3VzZUVtaXNzaXZlTWF0ZXJpYWwpLGUuc2V0VW5pZm9ybShcInVTaGluaW5lc3NcIix0aGlzLl91c2VTaGluaW5lc3MpLGUuc2V0VW5pZm9ybShcInVVc2VMaWdodGluZ1wiLHRoaXMuX2VuYWJsZUxpZ2h0aW5nKTt2YXIgdD10aGlzLnBvaW50TGlnaHREaWZmdXNlQ29sb3JzLmxlbmd0aC8zO2Uuc2V0VW5pZm9ybShcInVQb2ludExpZ2h0Q291bnRcIix0KSxlLnNldFVuaWZvcm0oXCJ1UG9pbnRMaWdodExvY2F0aW9uXCIsdGhpcy5wb2ludExpZ2h0UG9zaXRpb25zKSxlLnNldFVuaWZvcm0oXCJ1UG9pbnRMaWdodERpZmZ1c2VDb2xvcnNcIix0aGlzLnBvaW50TGlnaHREaWZmdXNlQ29sb3JzKSxlLnNldFVuaWZvcm0oXCJ1UG9pbnRMaWdodFNwZWN1bGFyQ29sb3JzXCIsdGhpcy5wb2ludExpZ2h0U3BlY3VsYXJDb2xvcnMpO3ZhciByPXRoaXMuZGlyZWN0aW9uYWxMaWdodERpZmZ1c2VDb2xvcnMubGVuZ3RoLzM7ZS5zZXRVbmlmb3JtKFwidURpcmVjdGlvbmFsTGlnaHRDb3VudFwiLHIpLGUuc2V0VW5pZm9ybShcInVMaWdodGluZ0RpcmVjdGlvblwiLHRoaXMuZGlyZWN0aW9uYWxMaWdodERpcmVjdGlvbnMpLGUuc2V0VW5pZm9ybShcInVEaXJlY3Rpb25hbERpZmZ1c2VDb2xvcnNcIix0aGlzLmRpcmVjdGlvbmFsTGlnaHREaWZmdXNlQ29sb3JzKSxlLnNldFVuaWZvcm0oXCJ1RGlyZWN0aW9uYWxTcGVjdWxhckNvbG9yc1wiLHRoaXMuZGlyZWN0aW9uYWxMaWdodFNwZWN1bGFyQ29sb3JzKTt2YXIgaT10aGlzLmFtYmllbnRMaWdodENvbG9ycy5sZW5ndGgvMztlLnNldFVuaWZvcm0oXCJ1QW1iaWVudExpZ2h0Q291bnRcIixpKSxlLnNldFVuaWZvcm0oXCJ1QW1iaWVudENvbG9yXCIsdGhpcy5hbWJpZW50TGlnaHRDb2xvcnMpO3ZhciBuPXRoaXMuc3BvdExpZ2h0RGlmZnVzZUNvbG9ycy5sZW5ndGgvMztlLnNldFVuaWZvcm0oXCJ1U3BvdExpZ2h0Q291bnRcIixuKSxlLnNldFVuaWZvcm0oXCJ1U3BvdExpZ2h0QW5nbGVcIix0aGlzLnNwb3RMaWdodEFuZ2xlKSxlLnNldFVuaWZvcm0oXCJ1U3BvdExpZ2h0Q29uY1wiLHRoaXMuc3BvdExpZ2h0Q29uYyksZS5zZXRVbmlmb3JtKFwidVNwb3RMaWdodERpZmZ1c2VDb2xvcnNcIix0aGlzLnNwb3RMaWdodERpZmZ1c2VDb2xvcnMpLGUuc2V0VW5pZm9ybShcInVTcG90TGlnaHRTcGVjdWxhckNvbG9yc1wiLHRoaXMuc3BvdExpZ2h0U3BlY3VsYXJDb2xvcnMpLGUuc2V0VW5pZm9ybShcInVTcG90TGlnaHRMb2NhdGlvblwiLHRoaXMuc3BvdExpZ2h0UG9zaXRpb25zKSxlLnNldFVuaWZvcm0oXCJ1U3BvdExpZ2h0RGlyZWN0aW9uXCIsdGhpcy5zcG90TGlnaHREaXJlY3Rpb25zKSxlLnNldFVuaWZvcm0oXCJ1Q29uc3RhbnRBdHRlbnVhdGlvblwiLHRoaXMuY29uc3RhbnRBdHRlbnVhdGlvbiksZS5zZXRVbmlmb3JtKFwidUxpbmVhckF0dGVudWF0aW9uXCIsdGhpcy5saW5lYXJBdHRlbnVhdGlvbiksZS5zZXRVbmlmb3JtKFwidVF1YWRyYXRpY0F0dGVudWF0aW9uXCIsdGhpcy5xdWFkcmF0aWNBdHRlbnVhdGlvbiksZS5iaW5kVGV4dHVyZXMoKX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9zZXRQb2ludFVuaWZvcm1zPWZ1bmN0aW9uKGUpe2UuYmluZFNoYWRlcigpLGUuc2V0VW5pZm9ybShcInVNYXRlcmlhbENvbG9yXCIsdGhpcy5jdXJTdHJva2VDb2xvciksZS5zZXRVbmlmb3JtKFwidVBvaW50U2l6ZVwiLHRoaXMucG9pbnRTaXplKnRoaXMuX3BJbnN0Ll9waXhlbERlbnNpdHkpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2JpbmRCdWZmZXI9ZnVuY3Rpb24oZSx0LHIsaSxuKXtpZih0PXR8fHRoaXMuR0wuQVJSQVlfQlVGRkVSLHRoaXMuR0wuYmluZEJ1ZmZlcih0LGUpLHZvaWQgMCE9PXIpe3ZhciBhPW5ldyhpfHxGbG9hdDMyQXJyYXkpKHIpO3RoaXMuR0wuYnVmZmVyRGF0YSh0LGEsbnx8dGhpcy5HTC5TVEFUSUNfRFJBVyl9fSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2FycmF5c0VxdWFsPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5sZW5ndGg7aWYociE9PXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgaT0wO2k8cjtpKyspaWYoZVtpXSE9PXRbaV0pcmV0dXJuITE7cmV0dXJuITB9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5faXNUeXBlZEFycmF5PWZ1bmN0aW9uKGUpe3JldHVybiBGbG9hdDMyQXJyYXksRmxvYXQ2NEFycmF5LEludDE2QXJyYXksVWludDE2QXJyYXksZSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2ZsYXR0ZW49ZnVuY3Rpb24oZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2lmKDJlNDxlLmxlbmd0aCl7dmFyIHQscj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9W10sbj1lLnNsaWNlKCk7Zm9yKHQ9bi5wb3AoKTtcIltvYmplY3QgQXJyYXldXCI9PT1yLmNhbGwodCk/bi5wdXNoLmFwcGx5KG4sbCh0KSk6aS5wdXNoKHQpLG4ubGVuZ3RoJiZ2b2lkIDAhPT0odD1uLnBvcCgpKTspO3JldHVybiBpLnJldmVyc2UoKSxpfXZhciBhO3JldHVybihhPVtdKS5jb25jYXQuYXBwbHkoYSxsKGUpKX0sdS5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl92VG9OQXJyYXk9ZnVuY3Rpb24oZSl7dmFyIHQ9W10scj0hMCxpPSExLG49dm9pZCAwO3RyeXtmb3IodmFyIGEsbz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHI9KGE9by5uZXh0KCkpLmRvbmUpO3I9ITApe3ZhciBzPWEudmFsdWU7dC5wdXNoKHMueCxzLnkscy56KX19Y2F0Y2goZSl7aT0hMCxuPWV9ZmluYWxseXt0cnl7cnx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihpKXRocm93IG59fXJldHVybiB0fSx1LmRlZmF1bHQucHJvdG90eXBlLl9hc3NlcnQzZD1mdW5jdGlvbihlKXtpZighdGhpcy5fcmVuZGVyZXIuaXNQM0QpdGhyb3cgbmV3IEVycm9yKFwiXCIuY29uY2F0KGUsXCIoKSBpcyBvbmx5IHN1cHBvcnRlZCBpbiBXRUJHTCBtb2RlLiBJZiB5b3UnZCBsaWtlIHRvIHVzZSAzRCBncmFwaGljcyBhbmQgV2ViR0wsIHNlZSAgaHR0cHM6Ly9wNWpzLm9yZy9leGFtcGxlcy9mb3JtLTNkLXByaW1pdGl2ZXMuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIikpfSx1LmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUuX2luaXRUZXNzeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBpLmRlZmF1bHQuR2x1VGVzc2VsYXRvcjtyZXR1cm4gZS5nbHVUZXNzQ2FsbGJhY2soaS5kZWZhdWx0LmdsdUVudW0uR0xVX1RFU1NfVkVSVEVYX0RBVEEsZnVuY3Rpb24oZSx0KXt0W3QubGVuZ3RoXT1lWzBdLHRbdC5sZW5ndGhdPWVbMV0sdFt0Lmxlbmd0aF09ZVsyXX0pLGUuZ2x1VGVzc0NhbGxiYWNrKGkuZGVmYXVsdC5nbHVFbnVtLkdMVV9URVNTX0JFR0lOLGZ1bmN0aW9uKGUpe2UhPT1pLmRlZmF1bHQucHJpbWl0aXZlVHlwZS5HTF9UUklBTkdMRVMmJmNvbnNvbGUubG9nKFwiZXhwZWN0ZWQgVFJJQU5HTEVTIGJ1dCBnb3QgdHlwZTogXCIuY29uY2F0KGUpKX0pLGUuZ2x1VGVzc0NhbGxiYWNrKGkuZGVmYXVsdC5nbHVFbnVtLkdMVV9URVNTX0VSUk9SLGZ1bmN0aW9uKGUpe2NvbnNvbGUubG9nKFwiZXJyb3IgY2FsbGJhY2tcIiksY29uc29sZS5sb2coXCJlcnJvciBudW1iZXI6IFwiLmNvbmNhdChlKSl9KSxlLmdsdVRlc3NDYWxsYmFjayhpLmRlZmF1bHQuZ2x1RW51bS5HTFVfVEVTU19DT01CSU5FLGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm5bZVswXSxlWzFdLGVbMl1dfSksZS5nbHVUZXNzQ2FsbGJhY2soaS5kZWZhdWx0LmdsdUVudW0uR0xVX1RFU1NfRURHRV9GTEFHLGZ1bmN0aW9uKGUpe30pLGV9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fdHJpYW5ndWxhdGU9ZnVuY3Rpb24oZSl7dGhpcy5fdGVzc3kuZ2x1VGVzc05vcm1hbCgwLDAsMSk7dmFyIHQ9W107dGhpcy5fdGVzc3kuZ2x1VGVzc0JlZ2luUG9seWdvbih0KTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dGhpcy5fdGVzc3kuZ2x1VGVzc0JlZ2luQ29udG91cigpO2Zvcih2YXIgaT1lW3JdLG49MDtuPGkubGVuZ3RoO24rPTMpe3ZhciBhPVtpW25dLGlbbisxXSxpW24rMl1dO3RoaXMuX3Rlc3N5LmdsdVRlc3NWZXJ0ZXgoYSxhKX10aGlzLl90ZXNzeS5nbHVUZXNzRW5kQ29udG91cigpfXJldHVybiB0aGlzLl90ZXNzeS5nbHVUZXNzRW5kUG9seWdvbigpLHR9LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fYmV6aWVyQ29lZmZpY2llbnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUqZSxyPTEtZSxpPXIqcjtyZXR1cm5baSpyLDMqaSplLDMqcip0LHQqZV19LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fcXVhZHJhdGljQ29lZmZpY2llbnRzPWZ1bmN0aW9uKGUpe3ZhciB0PTEtZTtyZXR1cm5bdCp0LDIqdCplLGUqZV19LHUuZGVmYXVsdC5SZW5kZXJlckdMLnByb3RvdHlwZS5fYmV6aWVyVG9DYXRtdWxsPWZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMV0rKGVbMl0tZVswXSkvdGhpcy5fY3VydmVUaWdodG5lc3MsZVsyXS0oZVszXS1lWzFdKS90aGlzLl9jdXJ2ZVRpZ2h0bmVzcyxlWzJdXX07dmFyIGY9dS5kZWZhdWx0LlJlbmRlcmVyR0w7ci5kZWZhdWx0PWZ9LHtcIi4uL2NvcmUvY29uc3RhbnRzXCI6MjYsXCIuLi9jb3JlL21haW5cIjozNixcIi4uL2NvcmUvcDUuUmVuZGVyZXJcIjozOSxcIi4vcDUuQ2FtZXJhXCI6ODQsXCIuL3A1Lk1hdHJpeFwiOjg2LFwiLi9wNS5TaGFkZXJcIjo5MSxsaWJ0ZXNzOjEwLHBhdGg6MTN9XSw5MTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHIuZGVmYXVsdD12b2lkIDA7dmFyIGksbj0oaT1lKFwiLi4vY29yZS9tYWluXCIpKSYmaS5fX2VzTW9kdWxlP2k6e2RlZmF1bHQ6aX07bi5kZWZhdWx0LlNoYWRlcj1mdW5jdGlvbihlLHQscil7dGhpcy5fcmVuZGVyZXI9ZSx0aGlzLl92ZXJ0U3JjPXQsdGhpcy5fZnJhZ1NyYz1yLHRoaXMuX3ZlcnRTaGFkZXI9LTEsdGhpcy5fZnJhZ1NoYWRlcj0tMSx0aGlzLl9nbFByb2dyYW09MCx0aGlzLl9sb2FkZWRBdHRyaWJ1dGVzPSExLHRoaXMuYXR0cmlidXRlcz17fSx0aGlzLl9sb2FkZWRVbmlmb3Jtcz0hMSx0aGlzLnVuaWZvcm1zPXt9LHRoaXMuX2JvdW5kPSExLHRoaXMuc2FtcGxlcnM9W119LG4uZGVmYXVsdC5TaGFkZXIucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5fZ2xQcm9ncmFtKXt2YXIgZT10aGlzLl9yZW5kZXJlci5HTDtpZih0aGlzLl92ZXJ0U2hhZGVyPWUuY3JlYXRlU2hhZGVyKGUuVkVSVEVYX1NIQURFUiksZS5zaGFkZXJTb3VyY2UodGhpcy5fdmVydFNoYWRlcix0aGlzLl92ZXJ0U3JjKSxlLmNvbXBpbGVTaGFkZXIodGhpcy5fdmVydFNoYWRlciksIWUuZ2V0U2hhZGVyUGFyYW1ldGVyKHRoaXMuX3ZlcnRTaGFkZXIsZS5DT01QSUxFX1NUQVRVUykpcmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJZaWtlcyEgQW4gZXJyb3Igb2NjdXJyZWQgY29tcGlsaW5nIHRoZSB2ZXJ0ZXggc2hhZGVyOlwiLmNvbmNhdChlLmdldFNoYWRlckluZm9Mb2codGhpcy5fdmVydFNoYWRlcikpKSxudWxsO2lmKHRoaXMuX2ZyYWdTaGFkZXI9ZS5jcmVhdGVTaGFkZXIoZS5GUkFHTUVOVF9TSEFERVIpLGUuc2hhZGVyU291cmNlKHRoaXMuX2ZyYWdTaGFkZXIsdGhpcy5fZnJhZ1NyYyksZS5jb21waWxlU2hhZGVyKHRoaXMuX2ZyYWdTaGFkZXIpLCFlLmdldFNoYWRlclBhcmFtZXRlcih0aGlzLl9mcmFnU2hhZGVyLGUuQ09NUElMRV9TVEFUVVMpKXJldHVybiBjb25zb2xlLmVycm9yKFwiRGFybiEgQW4gZXJyb3Igb2NjdXJyZWQgY29tcGlsaW5nIHRoZSBmcmFnbWVudCBzaGFkZXI6XCIuY29uY2F0KGUuZ2V0U2hhZGVySW5mb0xvZyh0aGlzLl9mcmFnU2hhZGVyKSkpLG51bGw7dGhpcy5fZ2xQcm9ncmFtPWUuY3JlYXRlUHJvZ3JhbSgpLGUuYXR0YWNoU2hhZGVyKHRoaXMuX2dsUHJvZ3JhbSx0aGlzLl92ZXJ0U2hhZGVyKSxlLmF0dGFjaFNoYWRlcih0aGlzLl9nbFByb2dyYW0sdGhpcy5fZnJhZ1NoYWRlciksZS5saW5rUHJvZ3JhbSh0aGlzLl9nbFByb2dyYW0pLGUuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0aGlzLl9nbFByb2dyYW0sZS5MSU5LX1NUQVRVUyl8fGNvbnNvbGUuZXJyb3IoXCJTbmFwISBFcnJvciBsaW5raW5nIHNoYWRlciBwcm9ncmFtOiBcIi5jb25jYXQoZS5nZXRQcm9ncmFtSW5mb0xvZyh0aGlzLl9nbFByb2dyYW0pKSksdGhpcy5fbG9hZEF0dHJpYnV0ZXMoKSx0aGlzLl9sb2FkVW5pZm9ybXMoKX1yZXR1cm4gdGhpc30sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUuX2xvYWRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2xvYWRlZEF0dHJpYnV0ZXMpe3RoaXMuYXR0cmlidXRlcz17fTtmb3IodmFyIGU9dGhpcy5fcmVuZGVyZXIuR0wsdD1lLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5fZ2xQcm9ncmFtLGUuQUNUSVZFX0FUVFJJQlVURVMpLHI9MDtyPHQ7KytyKXt2YXIgaT1lLmdldEFjdGl2ZUF0dHJpYih0aGlzLl9nbFByb2dyYW0sciksbj1pLm5hbWUsYT1lLmdldEF0dHJpYkxvY2F0aW9uKHRoaXMuX2dsUHJvZ3JhbSxuKSxvPXt9O28ubmFtZT1uLG8ubG9jYXRpb249YSxvLmluZGV4PXIsby50eXBlPWkudHlwZSxvLnNpemU9aS5zaXplLHRoaXMuYXR0cmlidXRlc1tuXT1vfXRoaXMuX2xvYWRlZEF0dHJpYnV0ZXM9ITB9fSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5fbG9hZFVuaWZvcm1zPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2xvYWRlZFVuaWZvcm1zKXtmb3IodmFyIGU9dGhpcy5fcmVuZGVyZXIuR0wsdD1lLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5fZ2xQcm9ncmFtLGUuQUNUSVZFX1VOSUZPUk1TKSxyPTAsaT0wO2k8dDsrK2kpe3ZhciBuPWUuZ2V0QWN0aXZlVW5pZm9ybSh0aGlzLl9nbFByb2dyYW0saSksYT17fTthLmxvY2F0aW9uPWUuZ2V0VW5pZm9ybUxvY2F0aW9uKHRoaXMuX2dsUHJvZ3JhbSxuLm5hbWUpLGEuc2l6ZT1uLnNpemU7dmFyIG89bi5uYW1lOzE8bi5zaXplJiYobz1vLnN1YnN0cmluZygwLG8uaW5kZXhPZihcIlswXVwiKSkpLGEubmFtZT1vLGEudHlwZT1uLnR5cGUsYS5fY2FjaGVkRGF0YT12b2lkIDAsYS50eXBlPT09ZS5TQU1QTEVSXzJEJiYoYS5zYW1wbGVySW5kZXg9cixyKyssdGhpcy5zYW1wbGVycy5wdXNoKGEpKSxhLmlzQXJyYXk9YS50eXBlPT09ZS5GTE9BVF9NQVQzfHxhLnR5cGU9PT1lLkZMT0FUX01BVDR8fGEudHlwZT09PWUuRkxPQVRfVkVDMnx8YS50eXBlPT09ZS5GTE9BVF9WRUMzfHxhLnR5cGU9PT1lLkZMT0FUX1ZFQzR8fGEudHlwZT09PWUuSU5UX1ZFQzJ8fGEudHlwZT09PWUuSU5UX1ZFQzN8fGEudHlwZT09PWUuSU5UX1ZFQzQsdGhpcy51bmlmb3Jtc1tvXT1hfXRoaXMuX2xvYWRlZFVuaWZvcm1zPSEwfX0sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUuY29tcGlsZT1mdW5jdGlvbigpe30sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUuYmluZFNoYWRlcj1mdW5jdGlvbigpe3RoaXMuaW5pdCgpLHRoaXMuX2JvdW5kfHwodGhpcy51c2VQcm9ncmFtKCksdGhpcy5fYm91bmQ9ITAsdGhpcy5fc2V0TWF0cml4VW5pZm9ybXMoKSx0aGlzLnNldFVuaWZvcm0oXCJ1Vmlld3BvcnRcIix0aGlzLl9yZW5kZXJlci5fdmlld3BvcnQpKX0sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUudW5iaW5kU2hhZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JvdW5kJiYodGhpcy51bmJpbmRUZXh0dXJlcygpLHRoaXMuX2JvdW5kPSExKSx0aGlzfSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5iaW5kVGV4dHVyZXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9yZW5kZXJlci5HTCx0PSEwLHI9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbixhPXRoaXMuc2FtcGxlcnNbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obj1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIG89bi52YWx1ZSxzPW8udGV4dHVyZTt2b2lkIDA9PT1zJiYocz10aGlzLl9yZW5kZXJlci5fZ2V0RW1wdHlUZXh0dXJlKCkpLGUuYWN0aXZlVGV4dHVyZShlLlRFWFRVUkUwK28uc2FtcGxlckluZGV4KSxzLmJpbmRUZXh0dXJlKCkscy51cGRhdGUoKSxlLnVuaWZvcm0xaShvLmxvY2F0aW9uLG8uc2FtcGxlckluZGV4KX19Y2F0Y2goZSl7cj0hMCxpPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGl9fX0sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUudXBkYXRlVGV4dHVyZXM9ZnVuY3Rpb24oKXt2YXIgZT0hMCx0PSExLHI9dm9pZCAwO3RyeXtmb3IodmFyIGksbj10aGlzLnNhbXBsZXJzW1N5bWJvbC5pdGVyYXRvcl0oKTshKGU9KGk9bi5uZXh0KCkpLmRvbmUpO2U9ITApe3ZhciBhPWkudmFsdWUudGV4dHVyZTthJiZhLnVwZGF0ZSgpfX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtlfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19fSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS51bmJpbmRUZXh0dXJlcz1mdW5jdGlvbigpe30sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUuX3NldE1hdHJpeFVuaWZvcm1zPWZ1bmN0aW9uKCl7dGhpcy5zZXRVbmlmb3JtKFwidVByb2plY3Rpb25NYXRyaXhcIix0aGlzLl9yZW5kZXJlci51UE1hdHJpeC5tYXQ0KSx0aGlzLmlzU3Ryb2tlU2hhZGVyKCkmJihcImRlZmF1bHRcIj09PXRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhVHlwZT90aGlzLnNldFVuaWZvcm0oXCJ1UGVyc3BlY3RpdmVcIiwxKTp0aGlzLnNldFVuaWZvcm0oXCJ1UGVyc3BlY3RpdmVcIiwwKSksdGhpcy5zZXRVbmlmb3JtKFwidU1vZGVsVmlld01hdHJpeFwiLHRoaXMuX3JlbmRlcmVyLnVNVk1hdHJpeC5tYXQ0KSx0aGlzLnNldFVuaWZvcm0oXCJ1Vmlld01hdHJpeFwiLHRoaXMuX3JlbmRlcmVyLl9jdXJDYW1lcmEuY2FtZXJhTWF0cml4Lm1hdDQpLHRoaXMudW5pZm9ybXMudU5vcm1hbE1hdHJpeCYmKHRoaXMuX3JlbmRlcmVyLnVOTWF0cml4LmludmVyc2VUcmFuc3Bvc2UodGhpcy5fcmVuZGVyZXIudU1WTWF0cml4KSx0aGlzLnNldFVuaWZvcm0oXCJ1Tm9ybWFsTWF0cml4XCIsdGhpcy5fcmVuZGVyZXIudU5NYXRyaXgubWF0MykpfSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS51c2VQcm9ncmFtPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fcmVuZGVyZXIuR0w7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLl9jdXJTaGFkZXIhPT10aGlzJiYoZS51c2VQcm9ncmFtKHRoaXMuX2dsUHJvZ3JhbSksdGhpcy5fcmVuZGVyZXIuX2N1clNoYWRlcj10aGlzKSx0aGlzfSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5zZXRVbmlmb3JtPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy51bmlmb3Jtc1tlXTtpZihyKXt2YXIgaT10aGlzLl9yZW5kZXJlci5HTDtpZihyLmlzQXJyYXkpe2lmKHIuX2NhY2hlZERhdGEmJnRoaXMuX3JlbmRlcmVyLl9hcnJheXNFcXVhbChyLl9jYWNoZWREYXRhLHQpKXJldHVybjtyLl9jYWNoZWREYXRhPXQuc2xpY2UoMCl9ZWxzZXtpZihyLl9jYWNoZWREYXRhJiZyLl9jYWNoZWREYXRhPT09dClyZXR1cm47ci5fY2FjaGVkRGF0YT10fXZhciBuPXIubG9jYXRpb247c3dpdGNoKHRoaXMudXNlUHJvZ3JhbSgpLHIudHlwZSl7Y2FzZSBpLkJPT0w6ITA9PT10P2kudW5pZm9ybTFpKG4sMSk6aS51bmlmb3JtMWkobiwwKTticmVhaztjYXNlIGkuSU5UOjE8ci5zaXplP3QubGVuZ3RoJiZpLnVuaWZvcm0xaXYobix0KTppLnVuaWZvcm0xaShuLHQpO2JyZWFrO2Nhc2UgaS5GTE9BVDoxPHIuc2l6ZT90Lmxlbmd0aCYmaS51bmlmb3JtMWZ2KG4sdCk6aS51bmlmb3JtMWYobix0KTticmVhaztjYXNlIGkuRkxPQVRfTUFUMzppLnVuaWZvcm1NYXRyaXgzZnYobiwhMSx0KTticmVhaztjYXNlIGkuRkxPQVRfTUFUNDppLnVuaWZvcm1NYXRyaXg0ZnYobiwhMSx0KTticmVhaztjYXNlIGkuRkxPQVRfVkVDMjoxPHIuc2l6ZT90Lmxlbmd0aCYmaS51bmlmb3JtMmZ2KG4sdCk6aS51bmlmb3JtMmYobix0WzBdLHRbMV0pO2JyZWFrO2Nhc2UgaS5GTE9BVF9WRUMzOjE8ci5zaXplP3QubGVuZ3RoJiZpLnVuaWZvcm0zZnYobix0KTppLnVuaWZvcm0zZihuLHRbMF0sdFsxXSx0WzJdKTticmVhaztjYXNlIGkuRkxPQVRfVkVDNDoxPHIuc2l6ZT90Lmxlbmd0aCYmaS51bmlmb3JtNGZ2KG4sdCk6aS51bmlmb3JtNGYobix0WzBdLHRbMV0sdFsyXSx0WzNdKTticmVhaztjYXNlIGkuSU5UX1ZFQzI6MTxyLnNpemU/dC5sZW5ndGgmJmkudW5pZm9ybTJpdihuLHQpOmkudW5pZm9ybTJpKG4sdFswXSx0WzFdKTticmVhaztjYXNlIGkuSU5UX1ZFQzM6MTxyLnNpemU/dC5sZW5ndGgmJmkudW5pZm9ybTNpdihuLHQpOmkudW5pZm9ybTNpKG4sdFswXSx0WzFdLHRbMl0pO2JyZWFrO2Nhc2UgaS5JTlRfVkVDNDoxPHIuc2l6ZT90Lmxlbmd0aCYmaS51bmlmb3JtNGl2KG4sdCk6aS51bmlmb3JtNGkobix0WzBdLHRbMV0sdFsyXSx0WzNdKTticmVhaztjYXNlIGkuU0FNUExFUl8yRDppLmFjdGl2ZVRleHR1cmUoaS5URVhUVVJFMCtyLnNhbXBsZXJJbmRleCksci50ZXh0dXJlPXRoaXMuX3JlbmRlcmVyLmdldFRleHR1cmUodCksaS51bmlmb3JtMWkoci5sb2NhdGlvbixyLnNhbXBsZXJJbmRleCl9cmV0dXJuIHRoaXN9fSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5pc0xpZ2h0U2hhZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYXR0cmlidXRlcy5hTm9ybWFsfHx2b2lkIDAhPT10aGlzLnVuaWZvcm1zLnVVc2VMaWdodGluZ3x8dm9pZCAwIT09dGhpcy51bmlmb3Jtcy51QW1iaWVudExpZ2h0Q291bnR8fHZvaWQgMCE9PXRoaXMudW5pZm9ybXMudURpcmVjdGlvbmFsTGlnaHRDb3VudHx8dm9pZCAwIT09dGhpcy51bmlmb3Jtcy51UG9pbnRMaWdodENvdW50fHx2b2lkIDAhPT10aGlzLnVuaWZvcm1zLnVBbWJpZW50Q29sb3J8fHZvaWQgMCE9PXRoaXMudW5pZm9ybXMudURpcmVjdGlvbmFsRGlmZnVzZUNvbG9yc3x8dm9pZCAwIT09dGhpcy51bmlmb3Jtcy51RGlyZWN0aW9uYWxTcGVjdWxhckNvbG9yc3x8dm9pZCAwIT09dGhpcy51bmlmb3Jtcy51UG9pbnRMaWdodExvY2F0aW9ufHx2b2lkIDAhPT10aGlzLnVuaWZvcm1zLnVQb2ludExpZ2h0RGlmZnVzZUNvbG9yc3x8dm9pZCAwIT09dGhpcy51bmlmb3Jtcy51UG9pbnRMaWdodFNwZWN1bGFyQ29sb3JzfHx2b2lkIDAhPT10aGlzLnVuaWZvcm1zLnVMaWdodGluZ0RpcmVjdGlvbnx8dm9pZCAwIT09dGhpcy51bmlmb3Jtcy51U3BlY3VsYXJ9LG4uZGVmYXVsdC5TaGFkZXIucHJvdG90eXBlLmlzTm9ybWFsU2hhZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuYXR0cmlidXRlcy5hTm9ybWFsfSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5pc1RleHR1cmVTaGFkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gMDx0aGlzLnNhbXBsZXJJbmRleH0sbi5kZWZhdWx0LlNoYWRlci5wcm90b3R5cGUuaXNDb2xvclNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmF0dHJpYnV0ZXMuYVZlcnRleENvbG9yfHx2b2lkIDAhPT10aGlzLnVuaWZvcm1zLnVNYXRlcmlhbENvbG9yfSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5pc1RleExpZ2h0U2hhZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNMaWdodFNoYWRlcigpJiZ0aGlzLmlzVGV4dHVyZVNoYWRlcigpfSxuLmRlZmF1bHQuU2hhZGVyLnByb3RvdHlwZS5pc1N0cm9rZVNoYWRlcj1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnVuaWZvcm1zLnVTdHJva2VXZWlnaHR9LG4uZGVmYXVsdC5TaGFkZXIucHJvdG90eXBlLmVuYWJsZUF0dHJpYj1mdW5jdGlvbihlLHQscixpLG4sYSl7aWYoZSl7MDt2YXIgbz1lLmxvY2F0aW9uO2lmKC0xIT09byl7dmFyIHM9dGhpcy5fcmVuZGVyZXIuR0w7ZS5lbmFibGVkfHwocy5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShvKSxlLmVuYWJsZWQ9ITApLHRoaXMuX3JlbmRlcmVyLkdMLnZlcnRleEF0dHJpYlBvaW50ZXIobyx0LHJ8fHMuRkxPQVQsaXx8ITEsbnx8MCxhfHwwKX19cmV0dXJuIHRoaXN9O3ZhciBhPW4uZGVmYXVsdC5TaGFkZXI7ci5kZWZhdWx0PWF9LHtcIi4uL2NvcmUvbWFpblwiOjM2fV0sOTI6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkocixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxyLmRlZmF1bHQ9dm9pZCAwO3ZhciBpLG49KGk9ZShcIi4uL2NvcmUvbWFpblwiKSkmJmkuX19lc01vZHVsZT9pOntkZWZhdWx0Oml9LHM9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHxcIm9iamVjdFwiIT09byhlKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1sKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LGk9T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgbiBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4sYSk6cltuXT1lW25dfXIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscik7cmV0dXJuIHJ9KGUoXCIuLi9jb3JlL2NvbnN0YW50c1wiKSk7ZnVuY3Rpb24gbCgpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXA7cmV0dXJuIGw9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1uLmRlZmF1bHQuVGV4dHVyZT1mdW5jdGlvbihlLHQpe3RoaXMuX3JlbmRlcmVyPWU7dmFyIHI9dGhpcy5fcmVuZGVyZXIuR0w7dGhpcy5zcmM9dCx0aGlzLmdsVGV4PXZvaWQgMCx0aGlzLmdsVGFyZ2V0PXIuVEVYVFVSRV8yRCx0aGlzLmdsRm9ybWF0PXIuUkdCQSx0aGlzLm1pcG1hcHM9ITEsdGhpcy5nbE1pbkZpbHRlcj1yLkxJTkVBUix0aGlzLmdsTWFnRmlsdGVyPXIuTElORUFSLHRoaXMuZ2xXcmFwUz1yLkNMQU1QX1RPX0VER0UsdGhpcy5nbFdyYXBUPXIuQ0xBTVBfVE9fRURHRSx0aGlzLmlzU3JjTWVkaWFFbGVtZW50PXZvaWQgMCE9PW4uZGVmYXVsdC5NZWRpYUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBuLmRlZmF1bHQuTWVkaWFFbGVtZW50LHRoaXMuX3ZpZGVvUHJldlVwZGF0ZVRpbWU9MCx0aGlzLmlzU3JjSFRNTEVsZW1lbnQ9dm9pZCAwIT09bi5kZWZhdWx0LkVsZW1lbnQmJnQgaW5zdGFuY2VvZiBuLmRlZmF1bHQuRWxlbWVudCYmISh0IGluc3RhbmNlb2Ygbi5kZWZhdWx0LkdyYXBoaWNzKSx0aGlzLmlzU3JjUDVJbWFnZT10IGluc3RhbmNlb2Ygbi5kZWZhdWx0LkltYWdlLHRoaXMuaXNTcmNQNUdyYXBoaWNzPXQgaW5zdGFuY2VvZiBuLmRlZmF1bHQuR3JhcGhpY3MsdGhpcy5pc0ltYWdlRGF0YT1cInVuZGVmaW5lZFwiIT10eXBlb2YgSW1hZ2VEYXRhJiZ0IGluc3RhbmNlb2YgSW1hZ2VEYXRhO3ZhciBpPXRoaXMuX2dldFRleHR1cmVEYXRhRnJvbVNvdXJjZSgpO3JldHVybiB0aGlzLndpZHRoPWkud2lkdGgsdGhpcy5oZWlnaHQ9aS5oZWlnaHQsdGhpcy5pbml0KGkpLHRoaXN9LG4uZGVmYXVsdC5UZXh0dXJlLnByb3RvdHlwZS5fZ2V0VGV4dHVyZURhdGFGcm9tU291cmNlPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIHRoaXMuaXNTcmNQNUltYWdlP2U9dGhpcy5zcmMuY2FudmFzOnRoaXMuaXNTcmNNZWRpYUVsZW1lbnR8fHRoaXMuaXNTcmNQNUdyYXBoaWNzfHx0aGlzLmlzU3JjSFRNTEVsZW1lbnQ/ZT10aGlzLnNyYy5lbHQ6dGhpcy5pc0ltYWdlRGF0YSYmKGU9dGhpcy5zcmMpLGV9LG4uZGVmYXVsdC5UZXh0dXJlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3JlbmRlcmVyLkdMO2lmKHRoaXMuZ2xUZXg9dC5jcmVhdGVUZXh0dXJlKCksdGhpcy5nbFdyYXBTPXRoaXMuX3JlbmRlcmVyLnRleHR1cmVXcmFwWCx0aGlzLmdsV3JhcFQ9dGhpcy5fcmVuZGVyZXIudGV4dHVyZVdyYXBZLHRoaXMuc2V0V3JhcE1vZGUodGhpcy5nbFdyYXBTLHRoaXMuZ2xXcmFwVCksdGhpcy5iaW5kVGV4dHVyZSgpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX01BR19GSUxURVIsdGhpcy5nbE1hZ0ZpbHRlciksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUlOX0ZJTFRFUix0aGlzLmdsTWluRmlsdGVyKSwwPT09dGhpcy53aWR0aHx8MD09PXRoaXMuaGVpZ2h0fHx0aGlzLmlzU3JjTWVkaWFFbGVtZW50JiYhdGhpcy5zcmMubG9hZGVkbWV0YWRhdGEpe3ZhciByPW5ldyBVaW50OEFycmF5KFsxLDEsMSwxXSk7dC50ZXhJbWFnZTJEKHRoaXMuZ2xUYXJnZXQsMCx0LlJHQkEsMSwxLDAsdGhpcy5nbEZvcm1hdCx0LlVOU0lHTkVEX0JZVEUscil9ZWxzZSB0LnRleEltYWdlMkQodGhpcy5nbFRhcmdldCwwLHRoaXMuZ2xGb3JtYXQsdGhpcy5nbEZvcm1hdCx0LlVOU0lHTkVEX0JZVEUsZSl9LG4uZGVmYXVsdC5UZXh0dXJlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNyYztpZigwPT09ZS53aWR0aHx8MD09PWUuaGVpZ2h0KXJldHVybiExO3ZhciB0PXRoaXMuX2dldFRleHR1cmVEYXRhRnJvbVNvdXJjZSgpLHI9ITEsaT10aGlzLl9yZW5kZXJlci5HTDtyZXR1cm4gdC53aWR0aCE9PXRoaXMud2lkdGh8fHQuaGVpZ2h0IT09dGhpcy5oZWlnaHQ/KHI9ITAsdGhpcy53aWR0aD10LndpZHRoLHRoaXMuaGVpZ2h0PXQuaGVpZ2h0LHRoaXMuaXNTcmNQNUltYWdlP2Uuc2V0TW9kaWZpZWQoITEpOih0aGlzLmlzU3JjTWVkaWFFbGVtZW50fHx0aGlzLmlzU3JjSFRNTEVsZW1lbnQpJiZlLnNldE1vZGlmaWVkKCEwKSk6dGhpcy5pc1NyY1A1SW1hZ2U/ZS5pc01vZGlmaWVkKCkmJihyPSEwLGUuc2V0TW9kaWZpZWQoITEpKTp0aGlzLmlzU3JjTWVkaWFFbGVtZW50P2UuaXNNb2RpZmllZCgpPyhyPSEwLGUuc2V0TW9kaWZpZWQoITEpKTplLmxvYWRlZG1ldGFkYXRhJiZ0aGlzLl92aWRlb1ByZXZVcGRhdGVUaW1lIT09ZS50aW1lKCkmJih0aGlzLl92aWRlb1ByZXZVcGRhdGVUaW1lPWUudGltZSgpLHI9ITApOnRoaXMuaXNJbWFnZURhdGE/ZS5fZGlydHkmJihyPSEoZS5fZGlydHk9ITEpKTpyPSEwLHImJih0aGlzLmJpbmRUZXh0dXJlKCksaS50ZXhJbWFnZTJEKHRoaXMuZ2xUYXJnZXQsMCx0aGlzLmdsRm9ybWF0LHRoaXMuZ2xGb3JtYXQsaS5VTlNJR05FRF9CWVRFLHQpKSxyfSxuLmRlZmF1bHQuVGV4dHVyZS5wcm90b3R5cGUuYmluZFRleHR1cmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyZXIuR0wuYmluZFRleHR1cmUodGhpcy5nbFRhcmdldCx0aGlzLmdsVGV4KSx0aGlzfSxuLmRlZmF1bHQuVGV4dHVyZS5wcm90b3R5cGUudW5iaW5kVGV4dHVyZT1mdW5jdGlvbigpe3RoaXMuX3JlbmRlcmVyLkdMLmJpbmRUZXh0dXJlKHRoaXMuZ2xUYXJnZXQsbnVsbCl9LG4uZGVmYXVsdC5UZXh0dXJlLnByb3RvdHlwZS5zZXRJbnRlcnBvbGF0aW9uPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5fcmVuZGVyZXIuR0w7ZT09PXMuTkVBUkVTVD90aGlzLmdsTWluRmlsdGVyPXIuTkVBUkVTVDp0aGlzLmdsTWluRmlsdGVyPXIuTElORUFSLHQ9PT1zLk5FQVJFU1Q/dGhpcy5nbE1hZ0ZpbHRlcj1yLk5FQVJFU1Q6dGhpcy5nbE1hZ0ZpbHRlcj1yLkxJTkVBUix0aGlzLmJpbmRUZXh0dXJlKCksci50ZXhQYXJhbWV0ZXJpKHIuVEVYVFVSRV8yRCxyLlRFWFRVUkVfTUlOX0ZJTFRFUix0aGlzLmdsTWluRmlsdGVyKSxyLnRleFBhcmFtZXRlcmkoci5URVhUVVJFXzJELHIuVEVYVFVSRV9NQUdfRklMVEVSLHRoaXMuZ2xNYWdGaWx0ZXIpLHRoaXMudW5iaW5kVGV4dHVyZSgpfSxuLmRlZmF1bHQuVGV4dHVyZS5wcm90b3R5cGUuc2V0V3JhcE1vZGU9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiByKGUpe3JldHVybiAwPT0oZSZlLTEpfXZhciBpPXRoaXMuX3JlbmRlcmVyLkdMLG49cih0aGlzLndpZHRoKSxhPXIodGhpcy5oZWlnaHQpO2U9PT1zLlJFUEVBVD9uJiZhP3RoaXMuZ2xXcmFwUz1pLlJFUEVBVDooY29uc29sZS53YXJuKFwiWW91IHRyaWVkIHRvIHNldCB0aGUgd3JhcCBtb2RlIHRvIFJFUEVBVCBidXQgdGhlIHRleHR1cmUgc2l6ZSBpcyBub3QgYSBwb3dlciBvZiB0d28uIFNldHRpbmcgdG8gQ0xBTVAgaW5zdGVhZFwiKSx0aGlzLmdsV3JhcFM9aS5DTEFNUF9UT19FREdFKTplPT09cy5NSVJST1I/biYmYT90aGlzLmdsV3JhcFM9aS5NSVJST1JFRF9SRVBFQVQ6KGNvbnNvbGUud2FybihcIllvdSB0cmllZCB0byBzZXQgdGhlIHdyYXAgbW9kZSB0byBNSVJST1IgYnV0IHRoZSB0ZXh0dXJlIHNpemUgaXMgbm90IGEgcG93ZXIgb2YgdHdvLiBTZXR0aW5nIHRvIENMQU1QIGluc3RlYWRcIiksdGhpcy5nbFdyYXBTPWkuQ0xBTVBfVE9fRURHRSk6dGhpcy5nbFdyYXBTPWkuQ0xBTVBfVE9fRURHRSx0PT09cy5SRVBFQVQ/biYmYT90aGlzLmdsV3JhcFQ9aS5SRVBFQVQ6KGNvbnNvbGUud2FybihcIllvdSB0cmllZCB0byBzZXQgdGhlIHdyYXAgbW9kZSB0byBSRVBFQVQgYnV0IHRoZSB0ZXh0dXJlIHNpemUgaXMgbm90IGEgcG93ZXIgb2YgdHdvLiBTZXR0aW5nIHRvIENMQU1QIGluc3RlYWRcIiksdGhpcy5nbFdyYXBUPWkuQ0xBTVBfVE9fRURHRSk6dD09PXMuTUlSUk9SP24mJmE/dGhpcy5nbFdyYXBUPWkuTUlSUk9SRURfUkVQRUFUOihjb25zb2xlLndhcm4oXCJZb3UgdHJpZWQgdG8gc2V0IHRoZSB3cmFwIG1vZGUgdG8gTUlSUk9SIGJ1dCB0aGUgdGV4dHVyZSBzaXplIGlzIG5vdCBhIHBvd2VyIG9mIHR3by4gU2V0dGluZyB0byBDTEFNUCBpbnN0ZWFkXCIpLHRoaXMuZ2xXcmFwVD1pLkNMQU1QX1RPX0VER0UpOnRoaXMuZ2xXcmFwVD1pLkNMQU1QX1RPX0VER0UsdGhpcy5iaW5kVGV4dHVyZSgpLGkudGV4UGFyYW1ldGVyaShpLlRFWFRVUkVfMkQsaS5URVhUVVJFX1dSQVBfUyx0aGlzLmdsV3JhcFMpLGkudGV4UGFyYW1ldGVyaShpLlRFWFRVUkVfMkQsaS5URVhUVVJFX1dSQVBfVCx0aGlzLmdsV3JhcFQpLHRoaXMudW5iaW5kVGV4dHVyZSgpfTt2YXIgYT1uLmRlZmF1bHQuVGV4dHVyZTtyLmRlZmF1bHQ9YX0se1wiLi4vY29yZS9jb25zdGFudHNcIjoyNixcIi4uL2NvcmUvbWFpblwiOjM2fV0sOTM6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybihvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9KShlKX12YXIgaSxqPShpPWUoXCIuLi9jb3JlL21haW5cIikpJiZpLl9fZXNNb2R1bGU/aTp7ZGVmYXVsdDppfSxrPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PW8oZSkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9cygpO2lmKHQmJnQuaGFzKGUpKXJldHVybiB0LmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIG4gaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbik6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixuLGEpOnJbbl09ZVtuXX1yLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpO3JldHVybiByfShlKFwiLi4vY29yZS9jb25zdGFudHNcIikpO2Z1bmN0aW9uIHMoKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwO3JldHVybiBzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGV9ZShcIi4vcDUuU2hhZGVyXCIpLGUoXCIuL3A1LlJlbmRlcmVyR0wuUmV0YWluZWRcIiksai5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9hcHBseVRleHRQcm9wZXJ0aWVzPWZ1bmN0aW9uKCl7fSxqLmRlZmF1bHQuUmVuZGVyZXJHTC5wcm90b3R5cGUudGV4dFdpZHRoPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pc09wZW5UeXBlKCk/dGhpcy5fdGV4dEZvbnQuX3RleHRXaWR0aChlLHRoaXMuX3RleHRTaXplKTowfTtmdW5jdGlvbiBuKGUsdCl7dGhpcy53aWR0aD1lLHRoaXMuaGVpZ2h0PXQsdGhpcy5pbmZvcz1bXSx0aGlzLmZpbmRJbWFnZT1mdW5jdGlvbihlKXt2YXIgdCxyLGk9dGhpcy53aWR0aCp0aGlzLmhlaWdodDtpZihpPGUpdGhyb3cgbmV3IEVycm9yKFwiZm9udCBpcyB0b28gY29tcGxleCB0byByZW5kZXIgaW4gM0RcIik7Zm9yKHZhciBuPXRoaXMuaW5mb3MubGVuZ3RoLTE7MDw9bjstLW4pe3ZhciBhPXRoaXMuaW5mb3Nbbl07aWYoYS5pbmRleCtlPGkpe3I9KHQ9YSkuaW1hZ2VEYXRhO2JyZWFrfX1pZighdCl7dHJ5e3I9bmV3IEltYWdlRGF0YSh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX1jYXRjaChlKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImNhbnZhc1wiKVswXSxzPSFvO298fCgobz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpKS5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobykpO3ZhciBsPW8uZ2V0Q29udGV4dChcIjJkXCIpO2wmJihyPWwuY3JlYXRlSW1hZ2VEYXRhKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpKSxzJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG8pfXQ9e2luZGV4OjAsaW1hZ2VEYXRhOnJ9LHRoaXMuaW5mb3MucHVzaCh0KX12YXIgdT10LmluZGV4O3JldHVybiB0LmluZGV4Kz1lLHIuX2RpcnR5PSEwLHtpbWFnZURhdGE6cixpbmRleDp1fX19ZnVuY3Rpb24gVihlLHQscixpLG4pe3ZhciBhPWUuaW1hZ2VEYXRhLmRhdGEsbz00KmUuaW5kZXgrKzthW28rK109dCxhW28rK109cixhW28rK109aSxhW28rK109bn1mdW5jdGlvbiBBKGUpe3RoaXMuZm9udD1lLHRoaXMuc3Ryb2tlSW1hZ2VJbmZvcz1uZXcgbig2NCw2NCksdGhpcy5jb2xEaW1JbWFnZUluZm9zPW5ldyBuKDY0LDY0KSx0aGlzLnJvd0RpbUltYWdlSW5mb3M9bmV3IG4oNjQsNjQpLHRoaXMuY29sQ2VsbEltYWdlSW5mb3M9bmV3IG4oNjQsNjQpLHRoaXMucm93Q2VsbEltYWdlSW5mb3M9bmV3IG4oNjQsNjQpLHRoaXMuZ2x5cGhJbmZvcz17fSx0aGlzLmdldEdseXBoSW5mbz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmdseXBoSW5mb3NbZS5pbmRleF07aWYodClyZXR1cm4gdDt2YXIgcixpPWUuZ2V0Qm91bmRpbmdCb3goKSxuPWkueDEsYT1pLnkxLG89aS54Mi1uLHM9aS55Mi1hLGw9ZS5wYXRoLmNvbW1hbmRzO2lmKDA9PW98fDA9PXN8fCFsLmxlbmd0aClyZXR1cm4gdGhpcy5nbHlwaEluZm9zW2UuaW5kZXhdPXt9O3ZhciB1LGgsYyxmLGQ9W10scD1bXSxtPVtdO2ZvcihyPTg7MDw9cjstLXIpbS5wdXNoKFtdKTtmb3Iocj04OzA8PXI7LS1yKXAucHVzaChbXSk7ZnVuY3Rpb24gdihlLHQscil7dmFyIGk9ZC5sZW5ndGg7ZnVuY3Rpb24gbihlLHQscil7Zm9yKHZhciBpPWUubGVuZ3RoOzA8aS0tOyl7dmFyIG49ZVtpXTtuPHQmJih0PW4pLHI8biYmKHI9bil9cmV0dXJue21pbjp0LG1heDpyfX1kLnB1c2gocik7Zm9yKHZhciBhPW4oZSwxLDApLG89TWF0aC5tYXgoTWF0aC5mbG9vcig5KmEubWluKSwwKSxzPU1hdGgubWluKE1hdGguY2VpbCg5KmEubWF4KSw5KSxsPW87bDxzOysrbCltW2xdLnB1c2goaSk7Zm9yKHZhciB1PW4odCwxLDApLGg9TWF0aC5tYXgoTWF0aC5mbG9vcig5KnUubWluKSwwKSxjPU1hdGgubWluKE1hdGguY2VpbCg5KnUubWF4KSw5KSxmPWg7ZjxjOysrZilwW2ZdLnB1c2goaSl9ZnVuY3Rpb24geShlKXtyZXR1cm4odD0oaT0yNTUpKmUpPChyPTApP3I6aTx0P2k6dDt2YXIgdCxyLGl9ZnVuY3Rpb24gdyhlLHQscixpKXt0aGlzLnAwPWUsdGhpcy5jMD10LHRoaXMuYzE9cix0aGlzLnAxPWksdGhpcy50b1F1YWRyYXRpYz1mdW5jdGlvbigpe3JldHVybnt4OnRoaXMucDAueCx5OnRoaXMucDAueSx4MTp0aGlzLnAxLngseTE6dGhpcy5wMS55LGN4OigzKih0aGlzLmMwLngrdGhpcy5jMS54KS0odGhpcy5wMC54K3RoaXMucDEueCkpLzQsY3k6KDMqKHRoaXMuYzAueSt0aGlzLmMxLnkpLSh0aGlzLnAwLnkrdGhpcy5wMS55KSkvNH19LHRoaXMucXVhZEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIGouZGVmYXVsdC5WZWN0b3Iuc3ViKGouZGVmYXVsdC5WZWN0b3Iuc3ViKHRoaXMucDEsdGhpcy5wMCksai5kZWZhdWx0LlZlY3Rvci5tdWx0KGouZGVmYXVsdC5WZWN0b3Iuc3ViKHRoaXMuYzEsdGhpcy5jMCksMykpLm1hZygpLzJ9LHRoaXMuc3BsaXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ai5kZWZhdWx0LlZlY3Rvci5sZXJwKHRoaXMucDAsdGhpcy5jMCxlKSxyPWouZGVmYXVsdC5WZWN0b3IubGVycCh0aGlzLmMwLHRoaXMuYzEsZSksaT1qLmRlZmF1bHQuVmVjdG9yLmxlcnAodCxyLGUpO3RoaXMuYzE9ai5kZWZhdWx0LlZlY3Rvci5sZXJwKHRoaXMuYzEsdGhpcy5wMSxlKSx0aGlzLmMwPWouZGVmYXVsdC5WZWN0b3IubGVycChyLHRoaXMuYzEsZSk7dmFyIG49ai5kZWZhdWx0LlZlY3Rvci5sZXJwKGksdGhpcy5jMCxlKSxhPW5ldyB3KHRoaXMucDAsdCxpLG4pO3JldHVybiB0aGlzLnAwPW4sYX0sdGhpcy5zcGxpdEluZmxlY3Rpb25zPWZ1bmN0aW9uKCl7dmFyIGU9ai5kZWZhdWx0LlZlY3Rvci5zdWIodGhpcy5jMCx0aGlzLnAwKSx0PWouZGVmYXVsdC5WZWN0b3Iuc3ViKGouZGVmYXVsdC5WZWN0b3Iuc3ViKHRoaXMuYzEsdGhpcy5jMCksZSkscj1qLmRlZmF1bHQuVmVjdG9yLnN1YihqLmRlZmF1bHQuVmVjdG9yLnN1YihqLmRlZmF1bHQuVmVjdG9yLnN1Yih0aGlzLnAxLHRoaXMuYzEpLGUpLGouZGVmYXVsdC5WZWN0b3IubXVsdCh0LDIpKSxpPVtdLG49dC54KnIueS10Lnkqci54O2lmKDAhPT1uKXt2YXIgYT1lLngqci55LWUueSpyLngsbz1lLngqdC55LWUueSp0Lngscz1hKmEtNCpuKm87aWYoMDw9cyl7bjwwJiYobj0tbixhPS1hLG89LW8pO3ZhciBsPU1hdGguc3FydChzKSx1PSgtYS1sKS8oMipuKSxoPSgtYStsKS8oMipuKTswPHUmJnU8MSYmKGkucHVzaCh0aGlzLnNwbGl0KHUpKSxoPTEtKDEtaCkvKDEtdSkpLDA8aCYmaDwxJiZpLnB1c2godGhpcy5zcGxpdChoKSl9fXJldHVybiBpLnB1c2godGhpcyksaX19ZnVuY3Rpb24gZyhlLHQscixpLG4sYSxvLHMpe3ZhciBsPW5ldyB3KG5ldyBqLmRlZmF1bHQuVmVjdG9yKGUsdCksbmV3IGouZGVmYXVsdC5WZWN0b3IocixpKSxuZXcgai5kZWZhdWx0LlZlY3RvcihuLGEpLG5ldyBqLmRlZmF1bHQuVmVjdG9yKG8scykpLnNwbGl0SW5mbGVjdGlvbnMoKSx1PVtdLGg9MzAveixjPSEwLGY9ITEsZD12b2lkIDA7dHJ5e2Zvcih2YXIgcCxtPWxbU3ltYm9sLml0ZXJhdG9yXSgpOyEoYz0ocD1tLm5leHQoKSkuZG9uZSk7Yz0hMCl7Zm9yKHZhciB2PXAudmFsdWUseT1bXSxnPXZvaWQgMDshKC4xMjU8PShnPWgvdi5xdWFkRXJyb3IoKSkpOyl7dmFyIGI9TWF0aC5wb3coZywxLzMpLF89di5zcGxpdChiKSx4PXYuc3BsaXQoMS1iLygxLWIpKTt1LnB1c2goXykseS5wdXNoKHYpLHY9eH1nPDEmJnUucHVzaCh2LnNwbGl0KC41KSksdS5wdXNoKHYpLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHUseS5yZXZlcnNlKCkpfX1jYXRjaChlKXtmPSEwLGQ9ZX1maW5hbGx5e3RyeXtjfHxudWxsPT1tLnJldHVybnx8bS5yZXR1cm4oKX1maW5hbGx5e2lmKGYpdGhyb3cgZH19cmV0dXJuIHV9ZnVuY3Rpb24gYihlLHQscixpKXt2KFtlLHJdLFt0LGldLHt4OmUseTp0LGN4OihlK3IpLzIsY3k6KHQraSkvMn0pfWZ1bmN0aW9uIF8oZSx0LHIsaSl7cmV0dXJuIE1hdGguYWJzKHItZSk8MWUtNSYmTWF0aC5hYnMoaS10KTwxZS01fXZhciB4PSEwLFM9ITEsTT12b2lkIDA7dHJ5e2Zvcih2YXIgVCxFPWxbU3ltYm9sLml0ZXJhdG9yXSgpOyEoeD0oVD1FLm5leHQoKSkuZG9uZSk7eD0hMCl7dmFyIEM9VC52YWx1ZSxMPShDLngtbikvbyxPPShDLnktYSkvcztpZighXyh1LGgsTCxPKSl7c3dpdGNoKEMudHlwZSl7Y2FzZVwiTVwiOmM9TCxmPU87YnJlYWs7Y2FzZVwiTFwiOmIodSxoLEwsTyk7YnJlYWs7Y2FzZVwiUVwiOnZhciBQPShDLngxLW4pL28sUj0oQy55MS1hKS9zO3YoW3UsTCxQXSxbaCxPLFJdLHt4OnUseTpoLGN4OlAsY3k6Un0pO2JyZWFrO2Nhc2VcIlpcIjpfKHUsaCxjLGYpP2QucHVzaCh7eDp1LHk6aH0pOihiKHUsaCxjLGYpLGQucHVzaCh7eDpjLHk6Zn0pKTticmVhaztjYXNlXCJDXCI6Zm9yKHZhciBEPWcodSxoLChDLngxLW4pL28sKEMueTEtYSkvcywoQy54Mi1uKS9vLChDLnkyLWEpL3MsTCxPKSxrPTA7azxELmxlbmd0aDtrKyspe3ZhciBBPURba10udG9RdWFkcmF0aWMoKTt2KFtBLngsQS54MSxBLmN4XSxbQS55LEEueTEsQS5jeV0sQSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIGNvbW1hbmQgdHlwZTogXCIuY29uY2F0KEMudHlwZSkpfXU9TCxoPU99fX1jYXRjaChlKXtTPSEwLE09ZX1maW5hbGx5e3RyeXt4fHxudWxsPT1FLnJldHVybnx8RS5yZXR1cm4oKX1maW5hbGx5e2lmKFMpdGhyb3cgTX19Zm9yKHZhciBJPWQubGVuZ3RoLFU9dGhpcy5zdHJva2VJbWFnZUluZm9zLmZpbmRJbWFnZShJKSxOPVUuaW5kZXgsRj0wO0Y8STsrK0Ype3ZhciBCPWRbRl07VihVLHkoQi54KSx5KEIueSkseShCLmN4KSx5KEIuY3kpKX1mdW5jdGlvbiBHKGUsdCxyKXtmb3IodmFyIGk9ZS5sZW5ndGgsbj10LmZpbmRJbWFnZShpKSxhPW4uaW5kZXgsbz0wLHM9MDtzPGk7KytzKW8rPWVbc10ubGVuZ3RoO2Zvcih2YXIgbD1yLmZpbmRJbWFnZShvKSx1PTA7dTxpOysrdSl7dmFyIGg9ZVt1XSxjPWgubGVuZ3RoLGY9bC5pbmRleDtWKG4sZj4+NywxMjcmZixjPj43LDEyNyZjKTtmb3IodmFyIGQ9MDtkPGM7KytkKXt2YXIgcD1oW2RdK047VihsLHA+PjcsMTI3JnAsMCwwKX19cmV0dXJue2NlbGxJbWFnZUluZm86bCxkaW1PZmZzZXQ6YSxkaW1JbWFnZUluZm86bn19cmV0dXJuKHQ9dGhpcy5nbHlwaEluZm9zW2UuaW5kZXhdPXtnbHlwaDplLHVHbHlwaFJlY3Q6W2kueDEsLWkueTEsaS54MiwtaS55Ml0sc3Ryb2tlSW1hZ2VJbmZvOlUsc3Ryb2tlczpkLGNvbEluZm86RyhtLHRoaXMuY29sRGltSW1hZ2VJbmZvcyx0aGlzLmNvbENlbGxJbWFnZUluZm9zKSxyb3dJbmZvOkcocCx0aGlzLnJvd0RpbUltYWdlSW5mb3MsdGhpcy5yb3dDZWxsSW1hZ2VJbmZvcyl9KS51R3JpZE9mZnNldD1bdC5jb2xJbmZvLmRpbU9mZnNldCx0LnJvd0luZm8uZGltT2Zmc2V0XSx0fX12YXIgej1NYXRoLnNxcnQoMyk7ai5kZWZhdWx0LlJlbmRlcmVyR0wucHJvdG90eXBlLl9yZW5kZXJUZXh0PWZ1bmN0aW9uKGUsdCxyLGksbil7aWYodGhpcy5fdGV4dEZvbnQmJlwic3RyaW5nXCIhPXR5cGVvZiB0aGlzLl90ZXh0Rm9udCl7aWYoIShuPD1pKSYmdGhpcy5fZG9GaWxsKXtpZighdGhpcy5faXNPcGVuVHlwZSgpKXJldHVybiBjb25zb2xlLmxvZyhcIldFQkdMOiBvbmx5IE9wZW50eXBlICgub3RmKSBhbmQgVHJ1ZXR5cGUgKC50dGYpIGZvbnRzIGFyZSBzdXBwb3J0ZWRcIiksZTtlLnB1c2goKTt2YXIgYT10aGlzLl9kb1N0cm9rZSxvPXRoaXMuZHJhd01vZGU7dGhpcy5fZG9TdHJva2U9ITEsdGhpcy5kcmF3TW9kZT1rLlRFWFRVUkU7dmFyIHM9dGhpcy5fdGV4dEZvbnQuZm9udCxsPXRoaXMuX3RleHRGb250Ll9mb250SW5mbztsPWx8fCh0aGlzLl90ZXh0Rm9udC5fZm9udEluZm89bmV3IEEocykpO3ZhciB1PXRoaXMuX3RleHRGb250Ll9oYW5kbGVBbGlnbm1lbnQodGhpcyx0LHIsaSksaD10aGlzLl90ZXh0U2l6ZS9zLnVuaXRzUGVyRW07dGhpcy50cmFuc2xhdGUodS54LHUueSwwKSx0aGlzLnNjYWxlKGgsaCwxKTt2YXIgYz10aGlzLkdMLGY9IXRoaXMuX2RlZmF1bHRGb250U2hhZGVyLGQ9dGhpcy5fZ2V0Rm9udFNoYWRlcigpO2QuaW5pdCgpLGQuYmluZFNoYWRlcigpLGYmJihkLnNldFVuaWZvcm0oXCJ1R3JpZEltYWdlU2l6ZVwiLFs2NCw2NF0pLGQuc2V0VW5pZm9ybShcInVDZWxsc0ltYWdlU2l6ZVwiLFs2NCw2NF0pLGQuc2V0VW5pZm9ybShcInVTdHJva2VJbWFnZVNpemVcIixbNjQsNjRdKSxkLnNldFVuaWZvcm0oXCJ1R3JpZFNpemVcIixbOSw5XSkpLHRoaXMuX2FwcGx5Q29sb3JCbGVuZCh0aGlzLmN1ckZpbGxDb2xvcik7dmFyIHA9dGhpcy5yZXRhaW5lZE1vZGUuZ2VvbWV0cnkuZ2x5cGg7aWYoIXApe3ZhciBtPXRoaXMuX3RleHRHZW9tPW5ldyBqLmRlZmF1bHQuR2VvbWV0cnkoMSwxLGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTw9MTtlKyspZm9yKHZhciB0PTA7dDw9MTt0KyspdGhpcy52ZXJ0aWNlcy5wdXNoKG5ldyBqLmRlZmF1bHQuVmVjdG9yKHQsZSwwKSksdGhpcy51dnMucHVzaCh0LGUpfSk7bS5jb21wdXRlRmFjZXMoKS5jb21wdXRlTm9ybWFscygpLHA9dGhpcy5jcmVhdGVCdWZmZXJzKFwiZ2x5cGhcIixtKX12YXIgdj0hMCx5PSExLGc9dm9pZCAwO3RyeXtmb3IodmFyIGIsXz10aGlzLnJldGFpbmVkTW9kZS5idWZmZXJzLnRleHRbU3ltYm9sLml0ZXJhdG9yXSgpOyEodj0oYj1fLm5leHQoKSkuZG9uZSk7dj0hMCl7Yi52YWx1ZS5fcHJlcGFyZUJ1ZmZlcihwLGQpfX1jYXRjaChlKXt5PSEwLGc9ZX1maW5hbGx5e3RyeXt2fHxudWxsPT1fLnJldHVybnx8Xy5yZXR1cm4oKX1maW5hbGx5e2lmKHkpdGhyb3cgZ319dGhpcy5fYmluZEJ1ZmZlcihwLmluZGV4QnVmZmVyLGMuRUxFTUVOVF9BUlJBWV9CVUZGRVIpLGQuc2V0VW5pZm9ybShcInVNYXRlcmlhbENvbG9yXCIsdGhpcy5jdXJGaWxsQ29sb3IpO3RyeXt2YXIgeD0wLHc9bnVsbCxTPXMuc3RyaW5nVG9HbHlwaHModCksTT0hMCxUPSExLEU9dm9pZCAwO3RyeXtmb3IodmFyIEMsTD1TW1N5bWJvbC5pdGVyYXRvcl0oKTshKE09KEM9TC5uZXh0KCkpLmRvbmUpO009ITApe3ZhciBPPUMudmFsdWU7dyYmKHgrPXMuZ2V0S2VybmluZ1ZhbHVlKHcsTykpO3ZhciBQPWwuZ2V0R2x5cGhJbmZvKE8pO2lmKFAudUdseXBoUmVjdCl7dmFyIFI9UC5yb3dJbmZvLEQ9UC5jb2xJbmZvO2Quc2V0VW5pZm9ybShcInVTYW1wbGVyU3Ryb2tlc1wiLFAuc3Ryb2tlSW1hZ2VJbmZvLmltYWdlRGF0YSksZC5zZXRVbmlmb3JtKFwidVNhbXBsZXJSb3dTdHJva2VzXCIsUi5jZWxsSW1hZ2VJbmZvLmltYWdlRGF0YSksZC5zZXRVbmlmb3JtKFwidVNhbXBsZXJSb3dzXCIsUi5kaW1JbWFnZUluZm8uaW1hZ2VEYXRhKSxkLnNldFVuaWZvcm0oXCJ1U2FtcGxlckNvbFN0cm9rZXNcIixELmNlbGxJbWFnZUluZm8uaW1hZ2VEYXRhKSxkLnNldFVuaWZvcm0oXCJ1U2FtcGxlckNvbHNcIixELmRpbUltYWdlSW5mby5pbWFnZURhdGEpLGQuc2V0VW5pZm9ybShcInVHcmlkT2Zmc2V0XCIsUC51R3JpZE9mZnNldCksZC5zZXRVbmlmb3JtKFwidUdseXBoUmVjdFwiLFAudUdseXBoUmVjdCksZC5zZXRVbmlmb3JtKFwidUdseXBoT2Zmc2V0XCIseCksZC5iaW5kVGV4dHVyZXMoKSxjLmRyYXdFbGVtZW50cyhjLlRSSUFOR0xFUyw2LHRoaXMuR0wuVU5TSUdORURfU0hPUlQsMCl9eCs9Ty5hZHZhbmNlV2lkdGgsdz1PfX1jYXRjaChlKXtUPSEwLEU9ZX1maW5hbGx5e3RyeXtNfHxudWxsPT1MLnJldHVybnx8TC5yZXR1cm4oKX1maW5hbGx5e2lmKFQpdGhyb3cgRX19fWZpbmFsbHl7ZC51bmJpbmRTaGFkZXIoKSx0aGlzLl9kb1N0cm9rZT1hLHRoaXMuZHJhd01vZGU9byxlLnBvcCgpfXJldHVybiBlfX1lbHNlIGNvbnNvbGUubG9nKFwiV0VCR0w6IHlvdSBtdXN0IGxvYWQgYW5kIHNldCBhIGZvbnQgYmVmb3JlIGRyYXdpbmcgdGV4dC4gU2VlIGBsb2FkRm9udGAgYW5kIGB0ZXh0Rm9udGAgZm9yIG1vcmUgZGV0YWlscy5cIil9fSx7XCIuLi9jb3JlL2NvbnN0YW50c1wiOjI2LFwiLi4vY29yZS9tYWluXCI6MzYsXCIuL3A1LlJlbmRlcmVyR0wuUmV0YWluZWRcIjo4OSxcIi4vcDUuU2hhZGVyXCI6OTF9XX0se30sWzIxXSkoMjEpfSk7IiwiLyoqXG4gKiBDb21waWxlcyBhIHF1ZXJ5c3RyaW5nXG4gKiBSZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0XG4gKlxuICogQHBhcmFtIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgdmFyIHN0ciA9ICcnO1xuXG4gIGZvciAodmFyIGkgaW4gb2JqKSB7XG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgaWYgKHN0ci5sZW5ndGgpIHN0ciArPSAnJic7XG4gICAgICBzdHIgKz0gZW5jb2RlVVJJQ29tcG9uZW50KGkpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ialtpXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0cjtcbn07XG5cbi8qKlxuICogUGFyc2VzIGEgc2ltcGxlIHF1ZXJ5c3RyaW5nIGludG8gYW4gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHFzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmRlY29kZSA9IGZ1bmN0aW9uKHFzKXtcbiAgdmFyIHFyeSA9IHt9O1xuICB2YXIgcGFpcnMgPSBxcy5zcGxpdCgnJicpO1xuICBmb3IgKHZhciBpID0gMCwgbCA9IHBhaXJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBwYWlyID0gcGFpcnNbaV0uc3BsaXQoJz0nKTtcbiAgICBxcnlbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXJbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWlyWzFdKTtcbiAgfVxuICByZXR1cm4gcXJ5O1xufTtcbiIsIi8qKlxuICogUGFyc2VzIGFuIFVSSVxuICpcbiAqIEBhdXRob3IgU3RldmVuIExldml0aGFuIDxzdGV2ZW5sZXZpdGhhbi5jb20+IChNSVQgbGljZW5zZSlcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbnZhciByZSA9IC9eKD86KD8hW146QF0rOlteOkBcXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcXC9cXC8pPygoPzooKFteOkBdKikoPzo6KFteOkBdKikpPyk/QCk/KCg/OlthLWYwLTldezAsNH06KXsyLDd9W2EtZjAtOV17MCw0fXxbXjpcXC8/I10qKSg/OjooXFxkKikpPykoKChcXC8oPzpbXj8jXSg/IVtePyNcXC9dKlxcLltePyNcXC8uXSsoPzpbPyNdfCQpKSkqXFwvPyk/KFtePyNcXC9dKikpKD86XFw/KFteI10qKSk/KD86IyguKikpPykvO1xuXG52YXIgcGFydHMgPSBbXG4gICAgJ3NvdXJjZScsICdwcm90b2NvbCcsICdhdXRob3JpdHknLCAndXNlckluZm8nLCAndXNlcicsICdwYXNzd29yZCcsICdob3N0JywgJ3BvcnQnLCAncmVsYXRpdmUnLCAncGF0aCcsICdkaXJlY3RvcnknLCAnZmlsZScsICdxdWVyeScsICdhbmNob3InXG5dO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNldXJpKHN0cikge1xuICAgIHZhciBzcmMgPSBzdHIsXG4gICAgICAgIGIgPSBzdHIuaW5kZXhPZignWycpLFxuICAgICAgICBlID0gc3RyLmluZGV4T2YoJ10nKTtcblxuICAgIGlmIChiICE9IC0xICYmIGUgIT0gLTEpIHtcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBiKSArIHN0ci5zdWJzdHJpbmcoYiwgZSkucmVwbGFjZSgvOi9nLCAnOycpICsgc3RyLnN1YnN0cmluZyhlLCBzdHIubGVuZ3RoKTtcbiAgICB9XG5cbiAgICB2YXIgbSA9IHJlLmV4ZWMoc3RyIHx8ICcnKSxcbiAgICAgICAgdXJpID0ge30sXG4gICAgICAgIGkgPSAxNDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdXJpW3BhcnRzW2ldXSA9IG1baV0gfHwgJyc7XG4gICAgfVxuXG4gICAgaWYgKGIgIT0gLTEgJiYgZSAhPSAtMSkge1xuICAgICAgICB1cmkuc291cmNlID0gc3JjO1xuICAgICAgICB1cmkuaG9zdCA9IHVyaS5ob3N0LnN1YnN0cmluZygxLCB1cmkuaG9zdC5sZW5ndGggLSAxKS5yZXBsYWNlKC87L2csICc6Jyk7XG4gICAgICAgIHVyaS5hdXRob3JpdHkgPSB1cmkuYXV0aG9yaXR5LnJlcGxhY2UoJ1snLCAnJykucmVwbGFjZSgnXScsICcnKS5yZXBsYWNlKC87L2csICc6Jyk7XG4gICAgICAgIHVyaS5pcHY2dXJpID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB1cmkucGF0aE5hbWVzID0gcGF0aE5hbWVzKHVyaSwgdXJpWydwYXRoJ10pO1xuICAgIHVyaS5xdWVyeUtleSA9IHF1ZXJ5S2V5KHVyaSwgdXJpWydxdWVyeSddKTtcblxuICAgIHJldHVybiB1cmk7XG59O1xuXG5mdW5jdGlvbiBwYXRoTmFtZXMob2JqLCBwYXRoKSB7XG4gICAgdmFyIHJlZ3ggPSAvXFwvezIsOX0vZyxcbiAgICAgICAgbmFtZXMgPSBwYXRoLnJlcGxhY2UocmVneCwgXCIvXCIpLnNwbGl0KFwiL1wiKTtcblxuICAgIGlmIChwYXRoLnN1YnN0cigwLCAxKSA9PSAnLycgfHwgcGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgbmFtZXMuc3BsaWNlKDAsIDEpO1xuICAgIH1cbiAgICBpZiAocGF0aC5zdWJzdHIocGF0aC5sZW5ndGggLSAxLCAxKSA9PSAnLycpIHtcbiAgICAgICAgbmFtZXMuc3BsaWNlKG5hbWVzLmxlbmd0aCAtIDEsIDEpO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lcztcbn1cblxuZnVuY3Rpb24gcXVlcnlLZXkodXJpLCBxdWVyeSkge1xuICAgIHZhciBkYXRhID0ge307XG5cbiAgICBxdWVyeS5yZXBsYWNlKC8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZywgZnVuY3Rpb24gKCQwLCAkMSwgJDIpIHtcbiAgICAgICAgaWYgKCQxKSB7XG4gICAgICAgICAgICBkYXRhWyQxXSA9ICQyO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Tb2NrZXQgPSBleHBvcnRzLmlvID0gZXhwb3J0cy5NYW5hZ2VyID0gZXhwb3J0cy5wcm90b2NvbCA9IHZvaWQgMDtcbmNvbnN0IHVybF8xID0gcmVxdWlyZShcIi4vdXJsXCIpO1xuY29uc3QgbWFuYWdlcl8xID0gcmVxdWlyZShcIi4vbWFuYWdlclwiKTtcbmNvbnN0IHNvY2tldF8xID0gcmVxdWlyZShcIi4vc29ja2V0XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiU29ja2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfMS5Tb2NrZXQ7IH0gfSk7XG5jb25zdCBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcInNvY2tldC5pby1jbGllbnRcIik7XG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBsb29rdXA7XG4vKipcbiAqIE1hbmFnZXJzIGNhY2hlLlxuICovXG5jb25zdCBjYWNoZSA9IChleHBvcnRzLm1hbmFnZXJzID0ge30pO1xuZnVuY3Rpb24gbG9va3VwKHVyaSwgb3B0cykge1xuICAgIGlmICh0eXBlb2YgdXJpID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIG9wdHMgPSB1cmk7XG4gICAgICAgIHVyaSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgY29uc3QgcGFyc2VkID0gdXJsXzEudXJsKHVyaSk7XG4gICAgY29uc3Qgc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICBjb25zdCBpZCA9IHBhcnNlZC5pZDtcbiAgICBjb25zdCBwYXRoID0gcGFyc2VkLnBhdGg7XG4gICAgY29uc3Qgc2FtZU5hbWVzcGFjZSA9IGNhY2hlW2lkXSAmJiBwYXRoIGluIGNhY2hlW2lkXVtcIm5zcHNcIl07XG4gICAgY29uc3QgbmV3Q29ubmVjdGlvbiA9IG9wdHMuZm9yY2VOZXcgfHxcbiAgICAgICAgb3B0c1tcImZvcmNlIG5ldyBjb25uZWN0aW9uXCJdIHx8XG4gICAgICAgIGZhbHNlID09PSBvcHRzLm11bHRpcGxleCB8fFxuICAgICAgICBzYW1lTmFtZXNwYWNlO1xuICAgIGxldCBpbztcbiAgICBpZiAobmV3Q29ubmVjdGlvbikge1xuICAgICAgICBkZWJ1ZyhcImlnbm9yaW5nIHNvY2tldCBjYWNoZSBmb3IgJXNcIiwgc291cmNlKTtcbiAgICAgICAgaW8gPSBuZXcgbWFuYWdlcl8xLk1hbmFnZXIoc291cmNlLCBvcHRzKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICghY2FjaGVbaWRdKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcIm5ldyBpbyBpbnN0YW5jZSBmb3IgJXNcIiwgc291cmNlKTtcbiAgICAgICAgICAgIGNhY2hlW2lkXSA9IG5ldyBtYW5hZ2VyXzEuTWFuYWdlcihzb3VyY2UsIG9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlvID0gY2FjaGVbaWRdO1xuICAgIH1cbiAgICBpZiAocGFyc2VkLnF1ZXJ5ICYmICFvcHRzLnF1ZXJ5KSB7XG4gICAgICAgIG9wdHMucXVlcnkgPSBwYXJzZWQucXVlcnk7XG4gICAgfVxuICAgIHJldHVybiBpby5zb2NrZXQocGFyc2VkLnBhdGgsIG9wdHMpO1xufVxuZXhwb3J0cy5pbyA9IGxvb2t1cDtcbi8qKlxuICogUHJvdG9jb2wgdmVyc2lvbi5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBzb2NrZXRfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwic29ja2V0LmlvLXBhcnNlclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInByb3RvY29sXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfaW9fcGFyc2VyXzEucHJvdG9jb2w7IH0gfSk7XG4vKipcbiAqIGBjb25uZWN0YC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJpXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydHMuY29ubmVjdCA9IGxvb2t1cDtcbi8qKlxuICogRXhwb3NlIGNvbnN0cnVjdG9ycyBmb3Igc3RhbmRhbG9uZSBidWlsZC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBtYW5hZ2VyXzIgPSByZXF1aXJlKFwiLi9tYW5hZ2VyXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTWFuYWdlclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbWFuYWdlcl8yLk1hbmFnZXI7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTWFuYWdlciA9IHZvaWQgMDtcbmNvbnN0IGVpbyA9IHJlcXVpcmUoXCJlbmdpbmUuaW8tY2xpZW50XCIpO1xuY29uc3Qgc29ja2V0XzEgPSByZXF1aXJlKFwiLi9zb2NrZXRcIik7XG5jb25zdCBFbWl0dGVyID0gcmVxdWlyZShcImNvbXBvbmVudC1lbWl0dGVyXCIpO1xuY29uc3QgcGFyc2VyID0gcmVxdWlyZShcInNvY2tldC5pby1wYXJzZXJcIik7XG5jb25zdCBvbl8xID0gcmVxdWlyZShcIi4vb25cIik7XG5jb25zdCBCYWNrb2ZmID0gcmVxdWlyZShcImJhY2tvMlwiKTtcbmNvbnN0IGRlYnVnID0gcmVxdWlyZShcImRlYnVnXCIpKFwic29ja2V0LmlvLWNsaWVudDptYW5hZ2VyXCIpO1xuY2xhc3MgTWFuYWdlciBleHRlbmRzIEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKHVyaSwgb3B0cykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm5zcHMgPSB7fTtcbiAgICAgICAgdGhpcy5zdWJzID0gW107XG4gICAgICAgIGlmICh1cmkgJiYgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHVyaSkge1xuICAgICAgICAgICAgb3B0cyA9IHVyaTtcbiAgICAgICAgICAgIHVyaSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICAgICAgb3B0cy5wYXRoID0gb3B0cy5wYXRoIHx8IFwiL3NvY2tldC5pb1wiO1xuICAgICAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgICAgICB0aGlzLnJlY29ubmVjdGlvbihvcHRzLnJlY29ubmVjdGlvbiAhPT0gZmFsc2UpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdGlvbkF0dGVtcHRzKG9wdHMucmVjb25uZWN0aW9uQXR0ZW1wdHMgfHwgSW5maW5pdHkpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdGlvbkRlbGF5KG9wdHMucmVjb25uZWN0aW9uRGVsYXkgfHwgMTAwMCk7XG4gICAgICAgIHRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgob3B0cy5yZWNvbm5lY3Rpb25EZWxheU1heCB8fCA1MDAwKTtcbiAgICAgICAgdGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKG9wdHMucmFuZG9taXphdGlvbkZhY3RvciB8fCAwLjUpO1xuICAgICAgICB0aGlzLmJhY2tvZmYgPSBuZXcgQmFja29mZih7XG4gICAgICAgICAgICBtaW46IHRoaXMucmVjb25uZWN0aW9uRGVsYXkoKSxcbiAgICAgICAgICAgIG1heDogdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCgpLFxuICAgICAgICAgICAgaml0dGVyOiB0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGltZW91dChudWxsID09IG9wdHMudGltZW91dCA/IDIwMDAwIDogb3B0cy50aW1lb3V0KTtcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0ZSA9IFwiY2xvc2VkXCI7XG4gICAgICAgIHRoaXMudXJpID0gdXJpO1xuICAgICAgICBjb25zdCBfcGFyc2VyID0gb3B0cy5wYXJzZXIgfHwgcGFyc2VyO1xuICAgICAgICB0aGlzLmVuY29kZXIgPSBuZXcgX3BhcnNlci5FbmNvZGVyKCk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IG5ldyBfcGFyc2VyLkRlY29kZXIoKTtcbiAgICAgICAgdGhpcy5fYXV0b0Nvbm5lY3QgPSBvcHRzLmF1dG9Db25uZWN0ICE9PSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9Db25uZWN0KVxuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICAgIHJlY29ubmVjdGlvbih2KSB7XG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZWNvbm5lY3Rpb247XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbiA9ICEhdjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlY29ubmVjdGlvbkF0dGVtcHRzKHYpIHtcbiAgICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cztcbiAgICAgICAgdGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHMgPSB2O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmVjb25uZWN0aW9uRGVsYXkodikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uRGVsYXk7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5ID0gdjtcbiAgICAgICAgKF9hID0gdGhpcy5iYWNrb2ZmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0TWluKHYpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmFuZG9taXphdGlvbkZhY3Rvcih2KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yO1xuICAgICAgICB0aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yID0gdjtcbiAgICAgICAgKF9hID0gdGhpcy5iYWNrb2ZmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0Sml0dGVyKHYpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmVjb25uZWN0aW9uRGVsYXlNYXgodikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uRGVsYXlNYXg7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4ID0gdjtcbiAgICAgICAgKF9hID0gdGhpcy5iYWNrb2ZmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0TWF4KHYpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGltZW91dCh2KSB7XG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW1lb3V0O1xuICAgICAgICB0aGlzLl90aW1lb3V0ID0gdjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0YXJ0cyB0cnlpbmcgdG8gcmVjb25uZWN0IGlmIHJlY29ubmVjdGlvbiBpcyBlbmFibGVkIGFuZCB3ZSBoYXZlIG5vdFxuICAgICAqIHN0YXJ0ZWQgcmVjb25uZWN0aW5nIHlldFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBtYXliZVJlY29ubmVjdE9uT3BlbigpIHtcbiAgICAgICAgLy8gT25seSB0cnkgdG8gcmVjb25uZWN0IGlmIGl0J3MgdGhlIGZpcnN0IHRpbWUgd2UncmUgY29ubmVjdGluZ1xuICAgICAgICBpZiAoIXRoaXMuX3JlY29ubmVjdGluZyAmJlxuICAgICAgICAgICAgdGhpcy5fcmVjb25uZWN0aW9uICYmXG4gICAgICAgICAgICB0aGlzLmJhY2tvZmYuYXR0ZW1wdHMgPT09IDApIHtcbiAgICAgICAgICAgIC8vIGtlZXBzIHJlY29ubmVjdGlvbiBmcm9tIGZpcmluZyB0d2ljZSBmb3IgdGhlIHNhbWUgcmVjb25uZWN0aW9uIGxvb3BcbiAgICAgICAgICAgIHRoaXMucmVjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB0cmFuc3BvcnQgYHNvY2tldGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiAtIG9wdGlvbmFsLCBjYWxsYmFja1xuICAgICAqIEByZXR1cm4gc2VsZlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBvcGVuKGZuKSB7XG4gICAgICAgIGRlYnVnKFwicmVhZHlTdGF0ZSAlc1wiLCB0aGlzLl9yZWFkeVN0YXRlKTtcbiAgICAgICAgaWYgKH50aGlzLl9yZWFkeVN0YXRlLmluZGV4T2YoXCJvcGVuXCIpKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIGRlYnVnKFwib3BlbmluZyAlc1wiLCB0aGlzLnVyaSk7XG4gICAgICAgIHRoaXMuZW5naW5lID0gZWlvKHRoaXMudXJpLCB0aGlzLm9wdHMpO1xuICAgICAgICBjb25zdCBzb2NrZXQgPSB0aGlzLmVuZ2luZTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSBcIm9wZW5pbmdcIjtcbiAgICAgICAgdGhpcy5za2lwUmVjb25uZWN0ID0gZmFsc2U7XG4gICAgICAgIC8vIGVtaXQgYG9wZW5gXG4gICAgICAgIGNvbnN0IG9wZW5TdWJEZXN0cm95ID0gb25fMS5vbihzb2NrZXQsIFwib3BlblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzZWxmLm9ub3BlbigpO1xuICAgICAgICAgICAgZm4gJiYgZm4oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGVtaXQgYGVycm9yYFxuICAgICAgICBjb25zdCBlcnJvclN1YiA9IG9uXzEub24oc29ja2V0LCBcImVycm9yXCIsIChlcnIpID0+IHtcbiAgICAgICAgICAgIGRlYnVnKFwiZXJyb3JcIik7XG4gICAgICAgICAgICBzZWxmLmNsZWFudXAoKTtcbiAgICAgICAgICAgIHNlbGYuX3JlYWR5U3RhdGUgPSBcImNsb3NlZFwiO1xuICAgICAgICAgICAgc3VwZXIuZW1pdChcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICBpZiAoZm4pIHtcbiAgICAgICAgICAgICAgICBmbihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT25seSBkbyB0aGlzIGlmIHRoZXJlIGlzIG5vIGZuIHRvIGhhbmRsZSB0aGUgZXJyb3JcbiAgICAgICAgICAgICAgICBzZWxmLm1heWJlUmVjb25uZWN0T25PcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZmFsc2UgIT09IHRoaXMuX3RpbWVvdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQgPSB0aGlzLl90aW1lb3V0O1xuICAgICAgICAgICAgZGVidWcoXCJjb25uZWN0IGF0dGVtcHQgd2lsbCB0aW1lb3V0IGFmdGVyICVkXCIsIHRpbWVvdXQpO1xuICAgICAgICAgICAgaWYgKHRpbWVvdXQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBvcGVuU3ViRGVzdHJveSgpOyAvLyBwcmV2ZW50cyBhIHJhY2UgY29uZGl0aW9uIHdpdGggdGhlICdvcGVuJyBldmVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2V0IHRpbWVyXG4gICAgICAgICAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRlYnVnKFwiY29ubmVjdCBhdHRlbXB0IHRpbWVkIG91dCBhZnRlciAlZFwiLCB0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICBvcGVuU3ViRGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIHNvY2tldC5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHNvY2tldC5lbWl0KFwiZXJyb3JcIiwgbmV3IEVycm9yKFwidGltZW91dFwiKSk7XG4gICAgICAgICAgICB9LCB0aW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKGZ1bmN0aW9uIHN1YkRlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3Vicy5wdXNoKG9wZW5TdWJEZXN0cm95KTtcbiAgICAgICAgdGhpcy5zdWJzLnB1c2goZXJyb3JTdWIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIG9wZW4oKVxuICAgICAqXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGNvbm5lY3QoZm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3Blbihmbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHRyYW5zcG9ydCBvcGVuLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbm9wZW4oKSB7XG4gICAgICAgIGRlYnVnKFwib3BlblwiKTtcbiAgICAgICAgLy8gY2xlYXIgb2xkIHN1YnNcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIC8vIG1hcmsgYXMgb3BlblxuICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gXCJvcGVuXCI7XG4gICAgICAgIHN1cGVyLmVtaXQoXCJvcGVuXCIpO1xuICAgICAgICAvLyBhZGQgbmV3IHN1YnNcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gdGhpcy5lbmdpbmU7XG4gICAgICAgIHRoaXMuc3Vicy5wdXNoKG9uXzEub24oc29ja2V0LCBcInBpbmdcIiwgdGhpcy5vbnBpbmcuYmluZCh0aGlzKSksIG9uXzEub24oc29ja2V0LCBcImRhdGFcIiwgdGhpcy5vbmRhdGEuYmluZCh0aGlzKSksIG9uXzEub24oc29ja2V0LCBcImVycm9yXCIsIHRoaXMub25lcnJvci5iaW5kKHRoaXMpKSwgb25fMS5vbihzb2NrZXQsIFwiY2xvc2VcIiwgdGhpcy5vbmNsb3NlLmJpbmQodGhpcykpLCBvbl8xLm9uKHRoaXMuZGVjb2RlciwgXCJkZWNvZGVkXCIsIHRoaXMub25kZWNvZGVkLmJpbmQodGhpcykpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gYSBwaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbnBpbmcoKSB7XG4gICAgICAgIHN1cGVyLmVtaXQoXCJwaW5nXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2l0aCBkYXRhLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmRhdGEoZGF0YSkge1xuICAgICAgICB0aGlzLmRlY29kZXIuYWRkKGRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBwYXJzZXIgZnVsbHkgZGVjb2RlcyBhIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25kZWNvZGVkKHBhY2tldCkge1xuICAgICAgICBzdXBlci5lbWl0KFwicGFja2V0XCIsIHBhY2tldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHNvY2tldCBlcnJvci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25lcnJvcihlcnIpIHtcbiAgICAgICAgZGVidWcoXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICBzdXBlci5lbWl0KFwiZXJyb3JcIiwgZXJyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzb2NrZXQgZm9yIHRoZSBnaXZlbiBgbnNwYC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1NvY2tldH1cbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc29ja2V0KG5zcCwgb3B0cykge1xuICAgICAgICBsZXQgc29ja2V0ID0gdGhpcy5uc3BzW25zcF07XG4gICAgICAgIGlmICghc29ja2V0KSB7XG4gICAgICAgICAgICBzb2NrZXQgPSBuZXcgc29ja2V0XzEuU29ja2V0KHRoaXMsIG5zcCwgb3B0cyk7XG4gICAgICAgICAgICB0aGlzLm5zcHNbbnNwXSA9IHNvY2tldDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc29ja2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBhIHNvY2tldCBjbG9zZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzb2NrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9kZXN0cm95KHNvY2tldCkge1xuICAgICAgICBjb25zdCBuc3BzID0gT2JqZWN0LmtleXModGhpcy5uc3BzKTtcbiAgICAgICAgZm9yIChjb25zdCBuc3Agb2YgbnNwcykge1xuICAgICAgICAgICAgY29uc3Qgc29ja2V0ID0gdGhpcy5uc3BzW25zcF07XG4gICAgICAgICAgICBpZiAoc29ja2V0LmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGRlYnVnKFwic29ja2V0ICVzIGlzIHN0aWxsIGFjdGl2ZSwgc2tpcHBpbmcgY2xvc2VcIiwgbnNwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV3JpdGVzIGEgcGFja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhY2tldFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgX3BhY2tldChwYWNrZXQpIHtcbiAgICAgICAgZGVidWcoXCJ3cml0aW5nIHBhY2tldCAlalwiLCBwYWNrZXQpO1xuICAgICAgICBpZiAocGFja2V0LnF1ZXJ5ICYmIHBhY2tldC50eXBlID09PSAwKVxuICAgICAgICAgICAgcGFja2V0Lm5zcCArPSBcIj9cIiArIHBhY2tldC5xdWVyeTtcbiAgICAgICAgY29uc3QgZW5jb2RlZFBhY2tldHMgPSB0aGlzLmVuY29kZXIuZW5jb2RlKHBhY2tldCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5jb2RlZFBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZW5naW5lLndyaXRlKGVuY29kZWRQYWNrZXRzW2ldLCBwYWNrZXQub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYW4gdXAgdHJhbnNwb3J0IHN1YnNjcmlwdGlvbnMgYW5kIHBhY2tldCBidWZmZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGNsZWFudXAoKSB7XG4gICAgICAgIGRlYnVnKFwiY2xlYW51cFwiKTtcbiAgICAgICAgdGhpcy5zdWJzLmZvckVhY2goKHN1YkRlc3Ryb3kpID0+IHN1YkRlc3Ryb3koKSk7XG4gICAgICAgIHRoaXMuc3Vicy5sZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmRlY29kZXIuZGVzdHJveSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgY3VycmVudCBzb2NrZXQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9jbG9zZSgpIHtcbiAgICAgICAgZGVidWcoXCJkaXNjb25uZWN0XCIpO1xuICAgICAgICB0aGlzLnNraXBSZWNvbm5lY3QgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yZWNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKFwib3BlbmluZ1wiID09PSB0aGlzLl9yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAvLyBgb25jbG9zZWAgd2lsbCBub3QgZmlyZSBiZWNhdXNlXG4gICAgICAgICAgICAvLyBhbiBvcGVuIGV2ZW50IG5ldmVyIGhhcHBlbmVkXG4gICAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0ZSA9IFwiY2xvc2VkXCI7XG4gICAgICAgIGlmICh0aGlzLmVuZ2luZSlcbiAgICAgICAgICAgIHRoaXMuZW5naW5lLmNsb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFsaWFzIGZvciBjbG9zZSgpXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlbmdpbmUgY2xvc2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uY2xvc2UocmVhc29uKSB7XG4gICAgICAgIGRlYnVnKFwib25jbG9zZVwiKTtcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIHRoaXMuYmFja29mZi5yZXNldCgpO1xuICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gXCJjbG9zZWRcIjtcbiAgICAgICAgc3VwZXIuZW1pdChcImNsb3NlXCIsIHJlYXNvbik7XG4gICAgICAgIGlmICh0aGlzLl9yZWNvbm5lY3Rpb24gJiYgIXRoaXMuc2tpcFJlY29ubmVjdCkge1xuICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0IGEgcmVjb25uZWN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICByZWNvbm5lY3QoKSB7XG4gICAgICAgIGlmICh0aGlzLl9yZWNvbm5lY3RpbmcgfHwgdGhpcy5za2lwUmVjb25uZWN0KVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5iYWNrb2ZmLmF0dGVtcHRzID49IHRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInJlY29ubmVjdCBmYWlsZWRcIik7XG4gICAgICAgICAgICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgICAgICAgICAgIHN1cGVyLmVtaXQoXCJyZWNvbm5lY3RfZmFpbGVkXCIpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25uZWN0aW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuYmFja29mZi5kdXJhdGlvbigpO1xuICAgICAgICAgICAgZGVidWcoXCJ3aWxsIHdhaXQgJWRtcyBiZWZvcmUgcmVjb25uZWN0IGF0dGVtcHRcIiwgZGVsYXkpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25uZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc2tpcFJlY29ubmVjdClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGRlYnVnKFwiYXR0ZW1wdGluZyByZWNvbm5lY3RcIik7XG4gICAgICAgICAgICAgICAgc3VwZXIuZW1pdChcInJlY29ubmVjdF9hdHRlbXB0XCIsIHNlbGYuYmFja29mZi5hdHRlbXB0cyk7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgYWdhaW4gZm9yIHRoZSBjYXNlIHNvY2tldCBjbG9zZWQgaW4gYWJvdmUgZXZlbnRzXG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc2tpcFJlY29ubmVjdClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHNlbGYub3BlbigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKFwicmVjb25uZWN0IGF0dGVtcHQgZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBlci5lbWl0KFwicmVjb25uZWN0X2Vycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcInJlY29ubmVjdCBzdWNjZXNzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vbnJlY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBkZWxheSk7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaChmdW5jdGlvbiBzdWJEZXN0cm95KCkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBzdWNjZXNzZnVsIHJlY29ubmVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25yZWNvbm5lY3QoKSB7XG4gICAgICAgIGNvbnN0IGF0dGVtcHQgPSB0aGlzLmJhY2tvZmYuYXR0ZW1wdHM7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgICAgICAgc3VwZXIuZW1pdChcInJlY29ubmVjdFwiLCBhdHRlbXB0KTtcbiAgICB9XG59XG5leHBvcnRzLk1hbmFnZXIgPSBNYW5hZ2VyO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLm9uID0gdm9pZCAwO1xuZnVuY3Rpb24gb24ob2JqLCBldiwgZm4pIHtcbiAgICBvYmoub24oZXYsIGZuKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gc3ViRGVzdHJveSgpIHtcbiAgICAgICAgb2JqLm9mZihldiwgZm4pO1xuICAgIH07XG59XG5leHBvcnRzLm9uID0gb247XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU29ja2V0ID0gdm9pZCAwO1xuY29uc3Qgc29ja2V0X2lvX3BhcnNlcl8xID0gcmVxdWlyZShcInNvY2tldC5pby1wYXJzZXJcIik7XG5jb25zdCBFbWl0dGVyID0gcmVxdWlyZShcImNvbXBvbmVudC1lbWl0dGVyXCIpO1xuY29uc3Qgb25fMSA9IHJlcXVpcmUoXCIuL29uXCIpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKFwiZGVidWdcIikoXCJzb2NrZXQuaW8tY2xpZW50OnNvY2tldFwiKTtcbi8qKlxuICogSW50ZXJuYWwgZXZlbnRzLlxuICogVGhlc2UgZXZlbnRzIGNhbid0IGJlIGVtaXR0ZWQgYnkgdGhlIHVzZXIuXG4gKi9cbmNvbnN0IFJFU0VSVkVEX0VWRU5UUyA9IE9iamVjdC5mcmVlemUoe1xuICAgIGNvbm5lY3Q6IDEsXG4gICAgY29ubmVjdF9lcnJvcjogMSxcbiAgICBkaXNjb25uZWN0OiAxLFxuICAgIGRpc2Nvbm5lY3Rpbmc6IDEsXG4gICAgLy8gRXZlbnRFbWl0dGVyIHJlc2VydmVkIGV2ZW50czogaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9ldmVudHMuaHRtbCNldmVudHNfZXZlbnRfbmV3bGlzdGVuZXJcbiAgICBuZXdMaXN0ZW5lcjogMSxcbiAgICByZW1vdmVMaXN0ZW5lcjogMSxcbn0pO1xuY2xhc3MgU29ja2V0IGV4dGVuZHMgRW1pdHRlciB7XG4gICAgLyoqXG4gICAgICogYFNvY2tldGAgY29uc3RydWN0b3IuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaW8sIG5zcCwgb3B0cykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJlY2VpdmVCdWZmZXIgPSBbXTtcbiAgICAgICAgdGhpcy5zZW5kQnVmZmVyID0gW107XG4gICAgICAgIHRoaXMuaWRzID0gMDtcbiAgICAgICAgdGhpcy5hY2tzID0ge307XG4gICAgICAgIHRoaXMuZmxhZ3MgPSB7fTtcbiAgICAgICAgdGhpcy5pbyA9IGlvO1xuICAgICAgICB0aGlzLm5zcCA9IG5zcDtcbiAgICAgICAgdGhpcy5pZHMgPSAwO1xuICAgICAgICB0aGlzLmFja3MgPSB7fTtcbiAgICAgICAgdGhpcy5yZWNlaXZlQnVmZmVyID0gW107XG4gICAgICAgIHRoaXMuc2VuZEJ1ZmZlciA9IFtdO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc2Nvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZmxhZ3MgPSB7fTtcbiAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5hdXRoKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGggPSBvcHRzLmF1dGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW8uX2F1dG9Db25uZWN0KVxuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZSB0byBvcGVuLCBjbG9zZSBhbmQgcGFja2V0IGV2ZW50c1xuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBzdWJFdmVudHMoKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlvID0gdGhpcy5pbztcbiAgICAgICAgdGhpcy5zdWJzID0gW1xuICAgICAgICAgICAgb25fMS5vbihpbywgXCJvcGVuXCIsIHRoaXMub25vcGVuLmJpbmQodGhpcykpLFxuICAgICAgICAgICAgb25fMS5vbihpbywgXCJwYWNrZXRcIiwgdGhpcy5vbnBhY2tldC5iaW5kKHRoaXMpKSxcbiAgICAgICAgICAgIG9uXzEub24oaW8sIFwiZXJyb3JcIiwgdGhpcy5vbmVycm9yLmJpbmQodGhpcykpLFxuICAgICAgICAgICAgb25fMS5vbihpbywgXCJjbG9zZVwiLCB0aGlzLm9uY2xvc2UuYmluZCh0aGlzKSksXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIFNvY2tldCB3aWxsIHRyeSB0byByZWNvbm5lY3Qgd2hlbiBpdHMgTWFuYWdlciBjb25uZWN0cyBvciByZWNvbm5lY3RzXG4gICAgICovXG4gICAgZ2V0IGFjdGl2ZSgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zdWJzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBcIk9wZW5zXCIgdGhlIHNvY2tldC5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBjb25uZWN0KCkge1xuICAgICAgICBpZiAodGhpcy5jb25uZWN0ZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgdGhpcy5zdWJFdmVudHMoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlvW1wiX3JlY29ubmVjdGluZ1wiXSlcbiAgICAgICAgICAgIHRoaXMuaW8ub3BlbigpOyAvLyBlbnN1cmUgb3BlblxuICAgICAgICBpZiAoXCJvcGVuXCIgPT09IHRoaXMuaW8uX3JlYWR5U3RhdGUpXG4gICAgICAgICAgICB0aGlzLm9ub3BlbigpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIGNvbm5lY3QoKVxuICAgICAqL1xuICAgIG9wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3QoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBgbWVzc2FnZWAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc2VuZCguLi5hcmdzKSB7XG4gICAgICAgIGFyZ3MudW5zaGlmdChcIm1lc3NhZ2VcIik7XG4gICAgICAgIHRoaXMuZW1pdC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIGBlbWl0YC5cbiAgICAgKiBJZiB0aGUgZXZlbnQgaXMgaW4gYGV2ZW50c2AsIGl0J3MgZW1pdHRlZCBub3JtYWxseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldiAtIGV2ZW50IG5hbWVcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZW1pdChldiwgLi4uYXJncykge1xuICAgICAgICBpZiAoUkVTRVJWRURfRVZFTlRTLmhhc093blByb3BlcnR5KGV2KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBldiArICdcIiBpcyBhIHJlc2VydmVkIGV2ZW50IG5hbWUnKTtcbiAgICAgICAgfVxuICAgICAgICBhcmdzLnVuc2hpZnQoZXYpO1xuICAgICAgICBjb25zdCBwYWNrZXQgPSB7XG4gICAgICAgICAgICB0eXBlOiBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5FVkVOVCxcbiAgICAgICAgICAgIGRhdGE6IGFyZ3MsXG4gICAgICAgIH07XG4gICAgICAgIHBhY2tldC5vcHRpb25zID0ge307XG4gICAgICAgIHBhY2tldC5vcHRpb25zLmNvbXByZXNzID0gdGhpcy5mbGFncy5jb21wcmVzcyAhPT0gZmFsc2U7XG4gICAgICAgIC8vIGV2ZW50IGFjayBjYWxsYmFja1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImVtaXR0aW5nIHBhY2tldCB3aXRoIGFjayBpZCAlZFwiLCB0aGlzLmlkcyk7XG4gICAgICAgICAgICB0aGlzLmFja3NbdGhpcy5pZHNdID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgIHBhY2tldC5pZCA9IHRoaXMuaWRzKys7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNUcmFuc3BvcnRXcml0YWJsZSA9IHRoaXMuaW8uZW5naW5lICYmXG4gICAgICAgICAgICB0aGlzLmlvLmVuZ2luZS50cmFuc3BvcnQgJiZcbiAgICAgICAgICAgIHRoaXMuaW8uZW5naW5lLnRyYW5zcG9ydC53cml0YWJsZTtcbiAgICAgICAgY29uc3QgZGlzY2FyZFBhY2tldCA9IHRoaXMuZmxhZ3Mudm9sYXRpbGUgJiYgKCFpc1RyYW5zcG9ydFdyaXRhYmxlIHx8ICF0aGlzLmNvbm5lY3RlZCk7XG4gICAgICAgIGlmIChkaXNjYXJkUGFja2V0KSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImRpc2NhcmQgcGFja2V0IGFzIHRoZSB0cmFuc3BvcnQgaXMgbm90IGN1cnJlbnRseSB3cml0YWJsZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5wYWNrZXQocGFja2V0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZEJ1ZmZlci5wdXNoKHBhY2tldCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGFncyA9IHt9O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBwYWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFja2V0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwYWNrZXQocGFja2V0KSB7XG4gICAgICAgIHBhY2tldC5uc3AgPSB0aGlzLm5zcDtcbiAgICAgICAgdGhpcy5pby5fcGFja2V0KHBhY2tldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGVuZ2luZSBgb3BlbmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9ub3BlbigpIHtcbiAgICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgaXMgb3BlbiAtIGNvbm5lY3RpbmdcIik7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdXRoID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5hdXRoKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWNrZXQoeyB0eXBlOiBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5DT05ORUNULCBkYXRhIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhY2tldCh7IHR5cGU6IHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkNPTk5FQ1QsIGRhdGE6IHRoaXMuYXV0aCB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlbmdpbmUgb3IgbWFuYWdlciBgZXJyb3JgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVyclxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25lcnJvcihlcnIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgc3VwZXIuZW1pdChcImNvbm5lY3RfZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlbmdpbmUgYGNsb3NlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWFzb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uY2xvc2UocmVhc29uKSB7XG4gICAgICAgIGRlYnVnKFwiY2xvc2UgKCVzKVwiLCByZWFzb24pO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc2Nvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmlkO1xuICAgICAgICBzdXBlci5lbWl0KFwiZGlzY29ubmVjdFwiLCByZWFzb24pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2l0aCBzb2NrZXQgcGFja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhY2tldFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25wYWNrZXQocGFja2V0KSB7XG4gICAgICAgIGNvbnN0IHNhbWVOYW1lc3BhY2UgPSBwYWNrZXQubnNwID09PSB0aGlzLm5zcDtcbiAgICAgICAgaWYgKCFzYW1lTmFtZXNwYWNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzd2l0Y2ggKHBhY2tldC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkNPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgaWYgKHBhY2tldC5kYXRhICYmIHBhY2tldC5kYXRhLnNpZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZCA9IHBhY2tldC5kYXRhLnNpZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbmNvbm5lY3QoaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3VwZXIuZW1pdChcImNvbm5lY3RfZXJyb3JcIiwgbmV3IEVycm9yKFwiSXQgc2VlbXMgeW91IGFyZSB0cnlpbmcgdG8gcmVhY2ggYSBTb2NrZXQuSU8gc2VydmVyIGluIHYyLnggd2l0aCBhIHYzLnggY2xpZW50LCBidXQgdGhleSBhcmUgbm90IGNvbXBhdGlibGUgKG1vcmUgaW5mb3JtYXRpb24gaGVyZTogaHR0cHM6Ly9zb2NrZXQuaW8vZG9jcy92My9taWdyYXRpbmctZnJvbS0yLXgtdG8tMy0wLylcIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuRVZFTlQ6XG4gICAgICAgICAgICAgICAgdGhpcy5vbmV2ZW50KHBhY2tldCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkJJTkFSWV9FVkVOVDpcbiAgICAgICAgICAgICAgICB0aGlzLm9uZXZlbnQocGFja2V0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQUNLOlxuICAgICAgICAgICAgICAgIHRoaXMub25hY2socGFja2V0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQklOQVJZX0FDSzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uYWNrKHBhY2tldCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkRJU0NPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgdGhpcy5vbmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQ09OTkVDVF9FUlJPUjpcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IocGFja2V0LmRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGVyci5kYXRhID0gcGFja2V0LmRhdGEuZGF0YTtcbiAgICAgICAgICAgICAgICBzdXBlci5lbWl0KFwiY29ubmVjdF9lcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGEgc2VydmVyIGV2ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhY2tldFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25ldmVudChwYWNrZXQpIHtcbiAgICAgICAgY29uc3QgYXJncyA9IHBhY2tldC5kYXRhIHx8IFtdO1xuICAgICAgICBkZWJ1ZyhcImVtaXR0aW5nIGV2ZW50ICVqXCIsIGFyZ3MpO1xuICAgICAgICBpZiAobnVsbCAhPSBwYWNrZXQuaWQpIHtcbiAgICAgICAgICAgIGRlYnVnKFwiYXR0YWNoaW5nIGFjayBjYWxsYmFjayB0byBldmVudFwiKTtcbiAgICAgICAgICAgIGFyZ3MucHVzaCh0aGlzLmFjayhwYWNrZXQuaWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25uZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdEV2ZW50KGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWNlaXZlQnVmZmVyLnB1c2goT2JqZWN0LmZyZWV6ZShhcmdzKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZW1pdEV2ZW50KGFyZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FueUxpc3RlbmVycyAmJiB0aGlzLl9hbnlMaXN0ZW5lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLl9hbnlMaXN0ZW5lcnMuc2xpY2UoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgbGlzdGVuZXJzKSB7XG4gICAgICAgICAgICAgICAgbGlzdGVuZXIuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZW1pdC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gYWNrIGNhbGxiYWNrIHRvIGVtaXQgd2l0aCBhbiBldmVudC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgYWNrKGlkKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBsZXQgc2VudCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgZG91YmxlIGNhbGxiYWNrc1xuICAgICAgICAgICAgaWYgKHNlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2VudCA9IHRydWU7XG4gICAgICAgICAgICBkZWJ1ZyhcInNlbmRpbmcgYWNrICVqXCIsIGFyZ3MpO1xuICAgICAgICAgICAgc2VsZi5wYWNrZXQoe1xuICAgICAgICAgICAgICAgIHR5cGU6IHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkFDSyxcbiAgICAgICAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgICAgICAgZGF0YTogYXJncyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBhIHNlcnZlciBhY2tub3dsZWdlbWVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uYWNrKHBhY2tldCkge1xuICAgICAgICBjb25zdCBhY2sgPSB0aGlzLmFja3NbcGFja2V0LmlkXTtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGFjaykge1xuICAgICAgICAgICAgZGVidWcoXCJjYWxsaW5nIGFjayAlcyB3aXRoICVqXCIsIHBhY2tldC5pZCwgcGFja2V0LmRhdGEpO1xuICAgICAgICAgICAgYWNrLmFwcGx5KHRoaXMsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmFja3NbcGFja2V0LmlkXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRlYnVnKFwiYmFkIGFjayAlc1wiLCBwYWNrZXQuaWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHNlcnZlciBjb25uZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmNvbm5lY3QoaWQpIHtcbiAgICAgICAgZGVidWcoXCJzb2NrZXQgY29ubmVjdGVkIHdpdGggaWQgJXNcIiwgaWQpO1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgc3VwZXIuZW1pdChcImNvbm5lY3RcIik7XG4gICAgICAgIHRoaXMuZW1pdEJ1ZmZlcmVkKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtaXQgYnVmZmVyZWQgZXZlbnRzIChyZWNlaXZlZCBhbmQgZW1pdHRlZCkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGVtaXRCdWZmZXJlZCgpIHtcbiAgICAgICAgdGhpcy5yZWNlaXZlQnVmZmVyLmZvckVhY2goKGFyZ3MpID0+IHRoaXMuZW1pdEV2ZW50KGFyZ3MpKTtcbiAgICAgICAgdGhpcy5yZWNlaXZlQnVmZmVyID0gW107XG4gICAgICAgIHRoaXMuc2VuZEJ1ZmZlci5mb3JFYWNoKChwYWNrZXQpID0+IHRoaXMucGFja2V0KHBhY2tldCkpO1xuICAgICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gc2VydmVyIGRpc2Nvbm5lY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uZGlzY29ubmVjdCgpIHtcbiAgICAgICAgZGVidWcoXCJzZXJ2ZXIgZGlzY29ubmVjdCAoJXMpXCIsIHRoaXMubnNwKTtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMub25jbG9zZShcImlvIHNlcnZlciBkaXNjb25uZWN0XCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBmb3JjZWQgY2xpZW50L3NlcnZlciBzaWRlIGRpc2Nvbm5lY3Rpb25zLFxuICAgICAqIHRoaXMgbWV0aG9kIGVuc3VyZXMgdGhlIG1hbmFnZXIgc3RvcHMgdHJhY2tpbmcgdXMgYW5kXG4gICAgICogdGhhdCByZWNvbm5lY3Rpb25zIGRvbid0IGdldCB0cmlnZ2VyZWQgZm9yIHRoaXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnMpIHtcbiAgICAgICAgICAgIC8vIGNsZWFuIHN1YnNjcmlwdGlvbnMgdG8gYXZvaWQgcmVjb25uZWN0aW9uc1xuICAgICAgICAgICAgdGhpcy5zdWJzLmZvckVhY2goKHN1YkRlc3Ryb3kpID0+IHN1YkRlc3Ryb3koKSk7XG4gICAgICAgICAgICB0aGlzLnN1YnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pb1tcIl9kZXN0cm95XCJdKHRoaXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEaXNjb25uZWN0cyB0aGUgc29ja2V0IG1hbnVhbGx5LlxuICAgICAqXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgZGVidWcoXCJwZXJmb3JtaW5nIGRpc2Nvbm5lY3QgKCVzKVwiLCB0aGlzLm5zcCk7XG4gICAgICAgICAgICB0aGlzLnBhY2tldCh7IHR5cGU6IHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkRJU0NPTk5FQ1QgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVtb3ZlIHNvY2tldCBmcm9tIHBvb2xcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgLy8gZmlyZSBldmVudHNcbiAgICAgICAgICAgIHRoaXMub25jbG9zZShcImlvIGNsaWVudCBkaXNjb25uZWN0XCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3IgZGlzY29ubmVjdCgpXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29tcHJlc3MgZmxhZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb21wcmVzcyAtIGlmIGB0cnVlYCwgY29tcHJlc3NlcyB0aGUgc2VuZGluZyBkYXRhXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGNvbXByZXNzKGNvbXByZXNzKSB7XG4gICAgICAgIHRoaXMuZmxhZ3MuY29tcHJlc3MgPSBjb21wcmVzcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgYSBtb2RpZmllciBmb3IgYSBzdWJzZXF1ZW50IGV2ZW50IGVtaXNzaW9uIHRoYXQgdGhlIGV2ZW50IG1lc3NhZ2Ugd2lsbCBiZSBkcm9wcGVkIHdoZW4gdGhpcyBzb2NrZXQgaXMgbm90XG4gICAgICogcmVhZHkgdG8gc2VuZCBtZXNzYWdlcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHNlbGZcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZ2V0IHZvbGF0aWxlKCkge1xuICAgICAgICB0aGlzLmZsYWdzLnZvbGF0aWxlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgZXZlbnQgaXMgZW1pdHRlZC4gVGhlIGV2ZW50IG5hbWUgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGVcbiAgICAgKiBjYWxsYmFjay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaXN0ZW5lclxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBvbkFueShsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9hbnlMaXN0ZW5lcnMgPSB0aGlzLl9hbnlMaXN0ZW5lcnMgfHwgW107XG4gICAgICAgIHRoaXMuX2FueUxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgZXZlbnQgaXMgZW1pdHRlZC4gVGhlIGV2ZW50IG5hbWUgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGVcbiAgICAgKiBjYWxsYmFjay4gVGhlIGxpc3RlbmVyIGlzIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3RlbmVycyBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaXN0ZW5lclxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBwcmVwZW5kQW55KGxpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuX2FueUxpc3RlbmVycyA9IHRoaXMuX2FueUxpc3RlbmVycyB8fCBbXTtcbiAgICAgICAgdGhpcy5fYW55TGlzdGVuZXJzLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gYW55IGV2ZW50IGlzIGVtaXR0ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXJcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgb2ZmQW55KGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5fYW55TGlzdGVuZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2FueUxpc3RlbmVycztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyID09PSBsaXN0ZW5lcnNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fYW55TGlzdGVuZXJzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgbGlzdGVuZXJzIHRoYXQgYXJlIGxpc3RlbmluZyBmb3IgYW55IGV2ZW50IHRoYXQgaXMgc3BlY2lmaWVkLiBUaGlzIGFycmF5IGNhbiBiZSBtYW5pcHVsYXRlZCxcbiAgICAgKiBlLmcuIHRvIHJlbW92ZSBsaXN0ZW5lcnMuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgbGlzdGVuZXJzQW55KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYW55TGlzdGVuZXJzIHx8IFtdO1xuICAgIH1cbn1cbmV4cG9ydHMuU29ja2V0ID0gU29ja2V0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnVybCA9IHZvaWQgMDtcbmNvbnN0IHBhcnNldXJpID0gcmVxdWlyZShcInBhcnNldXJpXCIpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKFwiZGVidWdcIikoXCJzb2NrZXQuaW8tY2xpZW50OnVybFwiKTtcbi8qKlxuICogVVJMIHBhcnNlci5cbiAqXG4gKiBAcGFyYW0gdXJpIC0gdXJsXG4gKiBAcGFyYW0gbG9jIC0gQW4gb2JqZWN0IG1lYW50IHRvIG1pbWljIHdpbmRvdy5sb2NhdGlvbi5cbiAqICAgICAgICBEZWZhdWx0cyB0byB3aW5kb3cubG9jYXRpb24uXG4gKiBAcHVibGljXG4gKi9cbmZ1bmN0aW9uIHVybCh1cmksIGxvYykge1xuICAgIGxldCBvYmogPSB1cmk7XG4gICAgLy8gZGVmYXVsdCB0byB3aW5kb3cubG9jYXRpb25cbiAgICBsb2MgPSBsb2MgfHwgKHR5cGVvZiBsb2NhdGlvbiAhPT0gXCJ1bmRlZmluZWRcIiAmJiBsb2NhdGlvbik7XG4gICAgaWYgKG51bGwgPT0gdXJpKVxuICAgICAgICB1cmkgPSBsb2MucHJvdG9jb2wgKyBcIi8vXCIgKyBsb2MuaG9zdDtcbiAgICAvLyByZWxhdGl2ZSBwYXRoIHN1cHBvcnRcbiAgICBpZiAodHlwZW9mIHVyaSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoXCIvXCIgPT09IHVyaS5jaGFyQXQoMCkpIHtcbiAgICAgICAgICAgIGlmIChcIi9cIiA9PT0gdXJpLmNoYXJBdCgxKSkge1xuICAgICAgICAgICAgICAgIHVyaSA9IGxvYy5wcm90b2NvbCArIHVyaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHVyaSA9IGxvYy5ob3N0ICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghL14oaHR0cHM/fHdzcz8pOlxcL1xcLy8udGVzdCh1cmkpKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInByb3RvY29sLWxlc3MgdXJsICVzXCIsIHVyaSk7XG4gICAgICAgICAgICBpZiAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGxvYykge1xuICAgICAgICAgICAgICAgIHVyaSA9IGxvYy5wcm90b2NvbCArIFwiLy9cIiArIHVyaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHVyaSA9IFwiaHR0cHM6Ly9cIiArIHVyaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBwYXJzZVxuICAgICAgICBkZWJ1ZyhcInBhcnNlICVzXCIsIHVyaSk7XG4gICAgICAgIG9iaiA9IHBhcnNldXJpKHVyaSk7XG4gICAgfVxuICAgIC8vIG1ha2Ugc3VyZSB3ZSB0cmVhdCBgbG9jYWxob3N0OjgwYCBhbmQgYGxvY2FsaG9zdGAgZXF1YWxseVxuICAgIGlmICghb2JqLnBvcnQpIHtcbiAgICAgICAgaWYgKC9eKGh0dHB8d3MpJC8udGVzdChvYmoucHJvdG9jb2wpKSB7XG4gICAgICAgICAgICBvYmoucG9ydCA9IFwiODBcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgvXihodHRwfHdzKXMkLy50ZXN0KG9iai5wcm90b2NvbCkpIHtcbiAgICAgICAgICAgIG9iai5wb3J0ID0gXCI0NDNcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvYmoucGF0aCA9IG9iai5wYXRoIHx8IFwiL1wiO1xuICAgIGNvbnN0IGlwdjYgPSBvYmouaG9zdC5pbmRleE9mKFwiOlwiKSAhPT0gLTE7XG4gICAgY29uc3QgaG9zdCA9IGlwdjYgPyBcIltcIiArIG9iai5ob3N0ICsgXCJdXCIgOiBvYmouaG9zdDtcbiAgICAvLyBkZWZpbmUgdW5pcXVlIGlkXG4gICAgb2JqLmlkID0gb2JqLnByb3RvY29sICsgXCI6Ly9cIiArIGhvc3QgKyBcIjpcIiArIG9iai5wb3J0O1xuICAgIC8vIGRlZmluZSBocmVmXG4gICAgb2JqLmhyZWYgPVxuICAgICAgICBvYmoucHJvdG9jb2wgK1xuICAgICAgICAgICAgXCI6Ly9cIiArXG4gICAgICAgICAgICBob3N0ICtcbiAgICAgICAgICAgIChsb2MgJiYgbG9jLnBvcnQgPT09IG9iai5wb3J0ID8gXCJcIiA6IFwiOlwiICsgb2JqLnBvcnQpO1xuICAgIHJldHVybiBvYmo7XG59XG5leHBvcnRzLnVybCA9IHVybDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZWNvbnN0cnVjdFBhY2tldCA9IGV4cG9ydHMuZGVjb25zdHJ1Y3RQYWNrZXQgPSB2b2lkIDA7XG5jb25zdCBpc19iaW5hcnlfMSA9IHJlcXVpcmUoXCIuL2lzLWJpbmFyeVwiKTtcbi8qKlxuICogUmVwbGFjZXMgZXZlcnkgQnVmZmVyIHwgQXJyYXlCdWZmZXIgfCBCbG9iIHwgRmlsZSBpbiBwYWNrZXQgd2l0aCBhIG51bWJlcmVkIHBsYWNlaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYWNrZXQgLSBzb2NrZXQuaW8gZXZlbnQgcGFja2V0XG4gKiBAcmV0dXJuIHtPYmplY3R9IHdpdGggZGVjb25zdHJ1Y3RlZCBwYWNrZXQgYW5kIGxpc3Qgb2YgYnVmZmVyc1xuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiBkZWNvbnN0cnVjdFBhY2tldChwYWNrZXQpIHtcbiAgICBjb25zdCBidWZmZXJzID0gW107XG4gICAgY29uc3QgcGFja2V0RGF0YSA9IHBhY2tldC5kYXRhO1xuICAgIGNvbnN0IHBhY2sgPSBwYWNrZXQ7XG4gICAgcGFjay5kYXRhID0gX2RlY29uc3RydWN0UGFja2V0KHBhY2tldERhdGEsIGJ1ZmZlcnMpO1xuICAgIHBhY2suYXR0YWNobWVudHMgPSBidWZmZXJzLmxlbmd0aDsgLy8gbnVtYmVyIG9mIGJpbmFyeSAnYXR0YWNobWVudHMnXG4gICAgcmV0dXJuIHsgcGFja2V0OiBwYWNrLCBidWZmZXJzOiBidWZmZXJzIH07XG59XG5leHBvcnRzLmRlY29uc3RydWN0UGFja2V0ID0gZGVjb25zdHJ1Y3RQYWNrZXQ7XG5mdW5jdGlvbiBfZGVjb25zdHJ1Y3RQYWNrZXQoZGF0YSwgYnVmZmVycykge1xuICAgIGlmICghZGF0YSlcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgaWYgKGlzX2JpbmFyeV8xLmlzQmluYXJ5KGRhdGEpKSB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0geyBfcGxhY2Vob2xkZXI6IHRydWUsIG51bTogYnVmZmVycy5sZW5ndGggfTtcbiAgICAgICAgYnVmZmVycy5wdXNoKGRhdGEpO1xuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IG5ldyBBcnJheShkYXRhLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbmV3RGF0YVtpXSA9IF9kZWNvbnN0cnVjdFBhY2tldChkYXRhW2ldLCBidWZmZXJzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIgJiYgIShkYXRhIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgbmV3RGF0YVtrZXldID0gX2RlY29uc3RydWN0UGFja2V0KGRhdGFba2V5XSwgYnVmZmVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld0RhdGE7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xufVxuLyoqXG4gKiBSZWNvbnN0cnVjdHMgYSBiaW5hcnkgcGFja2V0IGZyb20gaXRzIHBsYWNlaG9sZGVyIHBhY2tldCBhbmQgYnVmZmVyc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYWNrZXQgLSBldmVudCBwYWNrZXQgd2l0aCBwbGFjZWhvbGRlcnNcbiAqIEBwYXJhbSB7QXJyYXl9IGJ1ZmZlcnMgLSBiaW5hcnkgYnVmZmVycyB0byBwdXQgaW4gcGxhY2Vob2xkZXIgcG9zaXRpb25zXG4gKiBAcmV0dXJuIHtPYmplY3R9IHJlY29uc3RydWN0ZWQgcGFja2V0XG4gKiBAcHVibGljXG4gKi9cbmZ1bmN0aW9uIHJlY29uc3RydWN0UGFja2V0KHBhY2tldCwgYnVmZmVycykge1xuICAgIHBhY2tldC5kYXRhID0gX3JlY29uc3RydWN0UGFja2V0KHBhY2tldC5kYXRhLCBidWZmZXJzKTtcbiAgICBwYWNrZXQuYXR0YWNobWVudHMgPSB1bmRlZmluZWQ7IC8vIG5vIGxvbmdlciB1c2VmdWxcbiAgICByZXR1cm4gcGFja2V0O1xufVxuZXhwb3J0cy5yZWNvbnN0cnVjdFBhY2tldCA9IHJlY29uc3RydWN0UGFja2V0O1xuZnVuY3Rpb24gX3JlY29uc3RydWN0UGFja2V0KGRhdGEsIGJ1ZmZlcnMpIHtcbiAgICBpZiAoIWRhdGEpXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIGlmIChkYXRhICYmIGRhdGEuX3BsYWNlaG9sZGVyKSB7XG4gICAgICAgIHJldHVybiBidWZmZXJzW2RhdGEubnVtXTsgLy8gYXBwcm9wcmlhdGUgYnVmZmVyIChzaG91bGQgYmUgbmF0dXJhbCBvcmRlciBhbnl3YXkpXG4gICAgfVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBkYXRhW2ldID0gX3JlY29uc3RydWN0UGFja2V0KGRhdGFbaV0sIGJ1ZmZlcnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBfcmVjb25zdHJ1Y3RQYWNrZXQoZGF0YVtrZXldLCBidWZmZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EZWNvZGVyID0gZXhwb3J0cy5FbmNvZGVyID0gZXhwb3J0cy5QYWNrZXRUeXBlID0gZXhwb3J0cy5wcm90b2NvbCA9IHZvaWQgMDtcbmNvbnN0IEVtaXR0ZXIgPSByZXF1aXJlKFwiY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCBiaW5hcnlfMSA9IHJlcXVpcmUoXCIuL2JpbmFyeVwiKTtcbmNvbnN0IGlzX2JpbmFyeV8xID0gcmVxdWlyZShcIi4vaXMtYmluYXJ5XCIpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKFwiZGVidWdcIikoXCJzb2NrZXQuaW8tcGFyc2VyXCIpO1xuLyoqXG4gKiBQcm90b2NvbCB2ZXJzaW9uLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0cy5wcm90b2NvbCA9IDU7XG52YXIgUGFja2V0VHlwZTtcbihmdW5jdGlvbiAoUGFja2V0VHlwZSkge1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkNPTk5FQ1RcIl0gPSAwXSA9IFwiQ09OTkVDVFwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkRJU0NPTk5FQ1RcIl0gPSAxXSA9IFwiRElTQ09OTkVDVFwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkVWRU5UXCJdID0gMl0gPSBcIkVWRU5UXCI7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiQUNLXCJdID0gM10gPSBcIkFDS1wiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkNPTk5FQ1RfRVJST1JcIl0gPSA0XSA9IFwiQ09OTkVDVF9FUlJPUlwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkJJTkFSWV9FVkVOVFwiXSA9IDVdID0gXCJCSU5BUllfRVZFTlRcIjtcbiAgICBQYWNrZXRUeXBlW1BhY2tldFR5cGVbXCJCSU5BUllfQUNLXCJdID0gNl0gPSBcIkJJTkFSWV9BQ0tcIjtcbn0pKFBhY2tldFR5cGUgPSBleHBvcnRzLlBhY2tldFR5cGUgfHwgKGV4cG9ydHMuUGFja2V0VHlwZSA9IHt9KSk7XG4vKipcbiAqIEEgc29ja2V0LmlvIEVuY29kZXIgaW5zdGFuY2VcbiAqL1xuY2xhc3MgRW5jb2RlciB7XG4gICAgLyoqXG4gICAgICogRW5jb2RlIGEgcGFja2V0IGFzIGEgc2luZ2xlIHN0cmluZyBpZiBub24tYmluYXJ5LCBvciBhcyBhXG4gICAgICogYnVmZmVyIHNlcXVlbmNlLCBkZXBlbmRpbmcgb24gcGFja2V0IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gcGFja2V0IG9iamVjdFxuICAgICAqL1xuICAgIGVuY29kZShvYmopIHtcbiAgICAgICAgZGVidWcoXCJlbmNvZGluZyBwYWNrZXQgJWpcIiwgb2JqKTtcbiAgICAgICAgaWYgKG9iai50eXBlID09PSBQYWNrZXRUeXBlLkVWRU5UIHx8IG9iai50eXBlID09PSBQYWNrZXRUeXBlLkFDSykge1xuICAgICAgICAgICAgaWYgKGlzX2JpbmFyeV8xLmhhc0JpbmFyeShvYmopKSB7XG4gICAgICAgICAgICAgICAgb2JqLnR5cGUgPVxuICAgICAgICAgICAgICAgICAgICBvYmoudHlwZSA9PT0gUGFja2V0VHlwZS5FVkVOVFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBQYWNrZXRUeXBlLkJJTkFSWV9FVkVOVFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBQYWNrZXRUeXBlLkJJTkFSWV9BQ0s7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW5jb2RlQXNCaW5hcnkob2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMuZW5jb2RlQXNTdHJpbmcob2JqKV07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVuY29kZSBwYWNrZXQgYXMgc3RyaW5nLlxuICAgICAqL1xuICAgIGVuY29kZUFzU3RyaW5nKG9iaikge1xuICAgICAgICAvLyBmaXJzdCBpcyB0eXBlXG4gICAgICAgIGxldCBzdHIgPSBcIlwiICsgb2JqLnR5cGU7XG4gICAgICAgIC8vIGF0dGFjaG1lbnRzIGlmIHdlIGhhdmUgdGhlbVxuICAgICAgICBpZiAob2JqLnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0VWRU5UIHx8XG4gICAgICAgICAgICBvYmoudHlwZSA9PT0gUGFja2V0VHlwZS5CSU5BUllfQUNLKSB7XG4gICAgICAgICAgICBzdHIgKz0gb2JqLmF0dGFjaG1lbnRzICsgXCItXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIG5hbWVzcGFjZSBvdGhlciB0aGFuIGAvYFxuICAgICAgICAvLyB3ZSBhcHBlbmQgaXQgZm9sbG93ZWQgYnkgYSBjb21tYSBgLGBcbiAgICAgICAgaWYgKG9iai5uc3AgJiYgXCIvXCIgIT09IG9iai5uc3ApIHtcbiAgICAgICAgICAgIHN0ciArPSBvYmoubnNwICsgXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgdGhlIGlkXG4gICAgICAgIGlmIChudWxsICE9IG9iai5pZCkge1xuICAgICAgICAgICAgc3RyICs9IG9iai5pZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBqc29uIGRhdGFcbiAgICAgICAgaWYgKG51bGwgIT0gb2JqLmRhdGEpIHtcbiAgICAgICAgICAgIHN0ciArPSBKU09OLnN0cmluZ2lmeShvYmouZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJlbmNvZGVkICVqIGFzICVzXCIsIG9iaiwgc3RyKTtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW5jb2RlIHBhY2tldCBhcyAnYnVmZmVyIHNlcXVlbmNlJyBieSByZW1vdmluZyBibG9icywgYW5kXG4gICAgICogZGVjb25zdHJ1Y3RpbmcgcGFja2V0IGludG8gb2JqZWN0IHdpdGggcGxhY2Vob2xkZXJzIGFuZFxuICAgICAqIGEgbGlzdCBvZiBidWZmZXJzLlxuICAgICAqL1xuICAgIGVuY29kZUFzQmluYXJ5KG9iaikge1xuICAgICAgICBjb25zdCBkZWNvbnN0cnVjdGlvbiA9IGJpbmFyeV8xLmRlY29uc3RydWN0UGFja2V0KG9iaik7XG4gICAgICAgIGNvbnN0IHBhY2sgPSB0aGlzLmVuY29kZUFzU3RyaW5nKGRlY29uc3RydWN0aW9uLnBhY2tldCk7XG4gICAgICAgIGNvbnN0IGJ1ZmZlcnMgPSBkZWNvbnN0cnVjdGlvbi5idWZmZXJzO1xuICAgICAgICBidWZmZXJzLnVuc2hpZnQocGFjayk7IC8vIGFkZCBwYWNrZXQgaW5mbyB0byBiZWdpbm5pbmcgb2YgZGF0YSBsaXN0XG4gICAgICAgIHJldHVybiBidWZmZXJzOyAvLyB3cml0ZSBhbGwgdGhlIGJ1ZmZlcnNcbiAgICB9XG59XG5leHBvcnRzLkVuY29kZXIgPSBFbmNvZGVyO1xuLyoqXG4gKiBBIHNvY2tldC5pbyBEZWNvZGVyIGluc3RhbmNlXG4gKlxuICogQHJldHVybiB7T2JqZWN0fSBkZWNvZGVyXG4gKi9cbmNsYXNzIERlY29kZXIgZXh0ZW5kcyBFbWl0dGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVjb2RlcyBhbiBlbmNvZGVkIHBhY2tldCBzdHJpbmcgaW50byBwYWNrZXQgSlNPTi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvYmogLSBlbmNvZGVkIHBhY2tldFxuICAgICAqL1xuICAgIGFkZChvYmopIHtcbiAgICAgICAgbGV0IHBhY2tldDtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHBhY2tldCA9IHRoaXMuZGVjb2RlU3RyaW5nKG9iaik7XG4gICAgICAgICAgICBpZiAocGFja2V0LnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0VWRU5UIHx8XG4gICAgICAgICAgICAgICAgcGFja2V0LnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0FDSykge1xuICAgICAgICAgICAgICAgIC8vIGJpbmFyeSBwYWNrZXQncyBqc29uXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvbnN0cnVjdG9yID0gbmV3IEJpbmFyeVJlY29uc3RydWN0b3IocGFja2V0KTtcbiAgICAgICAgICAgICAgICAvLyBubyBhdHRhY2htZW50cywgbGFiZWxlZCBiaW5hcnkgYnV0IG5vIGJpbmFyeSBkYXRhIHRvIGZvbGxvd1xuICAgICAgICAgICAgICAgIGlmIChwYWNrZXQuYXR0YWNobWVudHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc3VwZXIuZW1pdChcImRlY29kZWRcIiwgcGFja2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBub24tYmluYXJ5IGZ1bGwgcGFja2V0XG4gICAgICAgICAgICAgICAgc3VwZXIuZW1pdChcImRlY29kZWRcIiwgcGFja2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc19iaW5hcnlfMS5pc0JpbmFyeShvYmopIHx8IG9iai5iYXNlNjQpIHtcbiAgICAgICAgICAgIC8vIHJhdyBiaW5hcnkgZGF0YVxuICAgICAgICAgICAgaWYgKCF0aGlzLnJlY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWNrZXQgPSB0aGlzLnJlY29uc3RydWN0b3IudGFrZUJpbmFyeURhdGEob2JqKTtcbiAgICAgICAgICAgICAgICBpZiAocGFja2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlY2VpdmVkIGZpbmFsIGJ1ZmZlclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3RydWN0b3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBzdXBlci5lbWl0KFwiZGVjb2RlZFwiLCBwYWNrZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gdHlwZTogXCIgKyBvYmopO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlY29kZSBhIHBhY2tldCBTdHJpbmcgKEpTT04gZGF0YSlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAgICAgKiBAcmV0dXJuIHtPYmplY3R9IHBhY2tldFxuICAgICAqL1xuICAgIGRlY29kZVN0cmluZyhzdHIpIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAvLyBsb29rIHVwIHR5cGVcbiAgICAgICAgY29uc3QgcCA9IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcihzdHIuY2hhckF0KDApKSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKFBhY2tldFR5cGVbcC50eXBlXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHBhY2tldCB0eXBlIFwiICsgcC50eXBlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb29rIHVwIGF0dGFjaG1lbnRzIGlmIHR5cGUgYmluYXJ5XG4gICAgICAgIGlmIChwLnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0VWRU5UIHx8XG4gICAgICAgICAgICBwLnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0FDSykge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlIChzdHIuY2hhckF0KCsraSkgIT09IFwiLVwiICYmIGkgIT0gc3RyLmxlbmd0aCkgeyB9XG4gICAgICAgICAgICBjb25zdCBidWYgPSBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBpKTtcbiAgICAgICAgICAgIGlmIChidWYgIT0gTnVtYmVyKGJ1ZikgfHwgc3RyLmNoYXJBdChpKSAhPT0gXCItXCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGF0dGFjaG1lbnRzXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5hdHRhY2htZW50cyA9IE51bWJlcihidWYpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGxvb2sgdXAgbmFtZXNwYWNlIChpZiBhbnkpXG4gICAgICAgIGlmIChcIi9cIiA9PT0gc3RyLmNoYXJBdChpICsgMSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICB3aGlsZSAoKytpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYyA9IHN0ci5jaGFyQXQoaSk7XG4gICAgICAgICAgICAgICAgaWYgKFwiLFwiID09PSBjKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gc3RyLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLm5zcCA9IHN0ci5zdWJzdHJpbmcoc3RhcnQsIGkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcC5uc3AgPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb29rIHVwIGlkXG4gICAgICAgIGNvbnN0IG5leHQgPSBzdHIuY2hhckF0KGkgKyAxKTtcbiAgICAgICAgaWYgKFwiXCIgIT09IG5leHQgJiYgTnVtYmVyKG5leHQpID09IG5leHQpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICB3aGlsZSAoKytpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYyA9IHN0ci5jaGFyQXQoaSk7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgPT0gYyB8fCBOdW1iZXIoYykgIT0gYykge1xuICAgICAgICAgICAgICAgICAgICAtLWk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gc3RyLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLmlkID0gTnVtYmVyKHN0ci5zdWJzdHJpbmcoc3RhcnQsIGkgKyAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9vayB1cCBqc29uIGRhdGFcbiAgICAgICAgaWYgKHN0ci5jaGFyQXQoKytpKSkge1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHRyeVBhcnNlKHN0ci5zdWJzdHIoaSkpO1xuICAgICAgICAgICAgaWYgKERlY29kZXIuaXNQYXlsb2FkVmFsaWQocC50eXBlLCBwYXlsb2FkKSkge1xuICAgICAgICAgICAgICAgIHAuZGF0YSA9IHBheWxvYWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHBheWxvYWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJkZWNvZGVkICVzIGFzICVqXCIsIHN0ciwgcCk7XG4gICAgICAgIHJldHVybiBwO1xuICAgIH1cbiAgICBzdGF0aWMgaXNQYXlsb2FkVmFsaWQodHlwZSwgcGF5bG9hZCkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5DT05ORUNUOlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJvYmplY3RcIjtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5ESVNDT05ORUNUOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuQ09OTkVDVF9FUlJPUjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHBheWxvYWQgPT09IFwib2JqZWN0XCI7XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuRVZFTlQ6XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuQklOQVJZX0VWRU5UOlxuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBheWxvYWQpICYmIHBheWxvYWQubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5BQ0s6XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuQklOQVJZX0FDSzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXlsb2FkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWFsbG9jYXRlcyBhIHBhcnNlcidzIHJlc291cmNlc1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnJlY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIHRoaXMucmVjb25zdHJ1Y3Rvci5maW5pc2hlZFJlY29uc3RydWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkRlY29kZXIgPSBEZWNvZGVyO1xuZnVuY3Rpb24gdHJ5UGFyc2Uoc3RyKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbi8qKlxuICogQSBtYW5hZ2VyIG9mIGEgYmluYXJ5IGV2ZW50J3MgJ2J1ZmZlciBzZXF1ZW5jZScuIFNob3VsZFxuICogYmUgY29uc3RydWN0ZWQgd2hlbmV2ZXIgYSBwYWNrZXQgb2YgdHlwZSBCSU5BUllfRVZFTlQgaXNcbiAqIGRlY29kZWQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhY2tldFxuICogQHJldHVybiB7QmluYXJ5UmVjb25zdHJ1Y3Rvcn0gaW5pdGlhbGl6ZWQgcmVjb25zdHJ1Y3RvclxuICovXG5jbGFzcyBCaW5hcnlSZWNvbnN0cnVjdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihwYWNrZXQpIHtcbiAgICAgICAgdGhpcy5wYWNrZXQgPSBwYWNrZXQ7XG4gICAgICAgIHRoaXMuYnVmZmVycyA9IFtdO1xuICAgICAgICB0aGlzLnJlY29uUGFjayA9IHBhY2tldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIGJlIGNhbGxlZCB3aGVuIGJpbmFyeSBkYXRhIHJlY2VpdmVkIGZyb20gY29ubmVjdGlvblxuICAgICAqIGFmdGVyIGEgQklOQVJZX0VWRU5UIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QnVmZmVyIHwgQXJyYXlCdWZmZXJ9IGJpbkRhdGEgLSB0aGUgcmF3IGJpbmFyeSBkYXRhIHJlY2VpdmVkXG4gICAgICogQHJldHVybiB7bnVsbCB8IE9iamVjdH0gcmV0dXJucyBudWxsIGlmIG1vcmUgYmluYXJ5IGRhdGEgaXMgZXhwZWN0ZWQgb3JcbiAgICAgKiAgIGEgcmVjb25zdHJ1Y3RlZCBwYWNrZXQgb2JqZWN0IGlmIGFsbCBidWZmZXJzIGhhdmUgYmVlbiByZWNlaXZlZC5cbiAgICAgKi9cbiAgICB0YWtlQmluYXJ5RGF0YShiaW5EYXRhKSB7XG4gICAgICAgIHRoaXMuYnVmZmVycy5wdXNoKGJpbkRhdGEpO1xuICAgICAgICBpZiAodGhpcy5idWZmZXJzLmxlbmd0aCA9PT0gdGhpcy5yZWNvblBhY2suYXR0YWNobWVudHMpIHtcbiAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBidWZmZXIgbGlzdFxuICAgICAgICAgICAgY29uc3QgcGFja2V0ID0gYmluYXJ5XzEucmVjb25zdHJ1Y3RQYWNrZXQodGhpcy5yZWNvblBhY2ssIHRoaXMuYnVmZmVycyk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybiBwYWNrZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFucyB1cCBiaW5hcnkgcGFja2V0IHJlY29uc3RydWN0aW9uIHZhcmlhYmxlcy5cbiAgICAgKi9cbiAgICBmaW5pc2hlZFJlY29uc3RydWN0aW9uKCkge1xuICAgICAgICB0aGlzLnJlY29uUGFjayA9IG51bGw7XG4gICAgICAgIHRoaXMuYnVmZmVycyA9IFtdO1xuICAgIH1cbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5oYXNCaW5hcnkgPSBleHBvcnRzLmlzQmluYXJ5ID0gdm9pZCAwO1xuY29uc3Qgd2l0aE5hdGl2ZUFycmF5QnVmZmVyID0gdHlwZW9mIEFycmF5QnVmZmVyID09PSBcImZ1bmN0aW9uXCI7XG5jb25zdCBpc1ZpZXcgPSAob2JqKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXcgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IEFycmF5QnVmZmVyLmlzVmlldyhvYmopXG4gICAgICAgIDogb2JqLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyO1xufTtcbmNvbnN0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbmNvbnN0IHdpdGhOYXRpdmVCbG9iID0gdHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICh0eXBlb2YgQmxvYiAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICB0b1N0cmluZy5jYWxsKEJsb2IpID09PSBcIltvYmplY3QgQmxvYkNvbnN0cnVjdG9yXVwiKTtcbmNvbnN0IHdpdGhOYXRpdmVGaWxlID0gdHlwZW9mIEZpbGUgPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICh0eXBlb2YgRmlsZSAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICB0b1N0cmluZy5jYWxsKEZpbGUpID09PSBcIltvYmplY3QgRmlsZUNvbnN0cnVjdG9yXVwiKTtcbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIG9iaiBpcyBhIEJ1ZmZlciwgYW4gQXJyYXlCdWZmZXIsIGEgQmxvYiBvciBhIEZpbGUuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gaXNCaW5hcnkob2JqKSB7XG4gICAgcmV0dXJuICgod2l0aE5hdGl2ZUFycmF5QnVmZmVyICYmIChvYmogaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBpc1ZpZXcob2JqKSkpIHx8XG4gICAgICAgICh3aXRoTmF0aXZlQmxvYiAmJiBvYmogaW5zdGFuY2VvZiBCbG9iKSB8fFxuICAgICAgICAod2l0aE5hdGl2ZUZpbGUgJiYgb2JqIGluc3RhbmNlb2YgRmlsZSkpO1xufVxuZXhwb3J0cy5pc0JpbmFyeSA9IGlzQmluYXJ5O1xuZnVuY3Rpb24gaGFzQmluYXJ5KG9iaiwgdG9KU09OKSB7XG4gICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmoubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaGFzQmluYXJ5KG9ialtpXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc0JpbmFyeShvYmopKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAob2JqLnRvSlNPTiAmJlxuICAgICAgICB0eXBlb2Ygb2JqLnRvSlNPTiA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgIGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIGhhc0JpbmFyeShvYmoudG9KU09OKCksIHRydWUpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkgJiYgaGFzQmluYXJ5KG9ialtrZXldKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZXhwb3J0cy5oYXNCaW5hcnkgPSBoYXNCaW5hcnk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhbHBoYWJldCA9ICcwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fJy5zcGxpdCgnJylcbiAgLCBsZW5ndGggPSA2NFxuICAsIG1hcCA9IHt9XG4gICwgc2VlZCA9IDBcbiAgLCBpID0gMFxuICAsIHByZXY7XG5cbi8qKlxuICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc3BlY2lmaWVkIG51bWJlci5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbnVtIFRoZSBudW1iZXIgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG51bWJlci5cbiAqIEBhcGkgcHVibGljXG4gKi9cbmZ1bmN0aW9uIGVuY29kZShudW0pIHtcbiAgdmFyIGVuY29kZWQgPSAnJztcblxuICBkbyB7XG4gICAgZW5jb2RlZCA9IGFscGhhYmV0W251bSAlIGxlbmd0aF0gKyBlbmNvZGVkO1xuICAgIG51bSA9IE1hdGguZmxvb3IobnVtIC8gbGVuZ3RoKTtcbiAgfSB3aGlsZSAobnVtID4gMCk7XG5cbiAgcmV0dXJuIGVuY29kZWQ7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge051bWJlcn0gVGhlIGludGVnZXIgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZy5cbiAqIEBhcGkgcHVibGljXG4gKi9cbmZ1bmN0aW9uIGRlY29kZShzdHIpIHtcbiAgdmFyIGRlY29kZWQgPSAwO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBkZWNvZGVkID0gZGVjb2RlZCAqIGxlbmd0aCArIG1hcFtzdHIuY2hhckF0KGkpXTtcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufVxuXG4vKipcbiAqIFllYXN0OiBBIHRpbnkgZ3Jvd2luZyBpZCBnZW5lcmF0b3IuXG4gKlxuICogQHJldHVybnMge1N0cmluZ30gQSB1bmlxdWUgaWQuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiB5ZWFzdCgpIHtcbiAgdmFyIG5vdyA9IGVuY29kZSgrbmV3IERhdGUoKSk7XG5cbiAgaWYgKG5vdyAhPT0gcHJldikgcmV0dXJuIHNlZWQgPSAwLCBwcmV2ID0gbm93O1xuICByZXR1cm4gbm93ICsnLicrIGVuY29kZShzZWVkKyspO1xufVxuXG4vL1xuLy8gTWFwIGVhY2ggY2hhcmFjdGVyIHRvIGl0cyBpbmRleC5cbi8vXG5mb3IgKDsgaSA8IGxlbmd0aDsgaSsrKSBtYXBbYWxwaGFiZXRbaV1dID0gaTtcblxuLy9cbi8vIEV4cG9zZSB0aGUgYHllYXN0YCwgYGVuY29kZWAgYW5kIGBkZWNvZGVgIGZ1bmN0aW9ucy5cbi8vXG55ZWFzdC5lbmNvZGUgPSBlbmNvZGU7XG55ZWFzdC5kZWNvZGUgPSBkZWNvZGU7XG5tb2R1bGUuZXhwb3J0cyA9IHllYXN0O1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0aWYoX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSkge1xuXHRcdHJldHVybiBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsImltcG9ydCBpbyBmcm9tIFwiLi9idWlsZC9pbmRleC5qc1wiO1xuXG5leHBvcnQgY29uc3QgTWFuYWdlciA9IGlvLk1hbmFnZXI7XG5leHBvcnQgeyBpbyB9O1xuZXhwb3J0IGRlZmF1bHQgaW87XG4iLCJpbXBvcnQgUDUgZnJvbSAncDUnXHJcbmltcG9ydCBpbyBmcm9tICdzb2NrZXQuaW8tY2xpZW50J1xyXG5cclxuY29uc3Qgc29ja2V0ID0gaW8oXCJodHRwczovL2Jsb2JieXN0cmlrZS5pb2kubHRcIiwge3NlY3VyZTogdHJ1ZX0pO1xyXG5cclxubGV0IGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XHJcblxyXG52YXIgdGlsZVR5cGVzLCBtYXBUaWxlczogYW55ID0gW107XHJcblxyXG5jb25zdCBQTEFZRVJfU1BFRUQgPSAxMDtcclxuXHJcbmxldCBQbGF5ZXIgPSB7XHJcbiAgaWQ6ICcnLFxyXG4gIG5hbWU6ICcnLFxyXG4gIHBvc2l0aW9uOiB7eDowLCB5OjB9LFxyXG4gIGNvbG9yOiAnIycgKyAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU2KSkudG9TdHJpbmcoMTYpICsgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NikpLnRvU3RyaW5nKDE2KSArIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTYpKS50b1N0cmluZygxNiksXHJcbiAga2V5c1ByZXNzZWQ6IFtmYWxzZV0sXHJcbn1cclxuXHJcbnZhciBPdGhlclBsYXllcnM6IGFueSA9IFtdXHJcblxyXG52YXIgS0VZX1cgPSA4NztcclxudmFyIEtFWV9BID0gNjU7XHJcbnZhciBLRVlfUyA9IDgzO1xyXG52YXIgS0VZX0QgPSA2ODtcclxuXHJcbmxldCBncmFzc0ltYWdlOiBQNS5JbWFnZTtcclxuXHJcbmZ1bmN0aW9uIG9uS2V5RG93bihlOiBhbnkpIHtcclxuICBQbGF5ZXIua2V5c1ByZXNzZWRbZS5rZXlDb2RlXSA9IHRydWU7XHJcbn1cclxuZnVuY3Rpb24gb25LZXlVcChlOiBhbnkpIHtcclxuICBQbGF5ZXIua2V5c1ByZXNzZWRbZS5rZXlDb2RlXSA9IGZhbHNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvbkNvbnRleHRNZW51KCkge1xyXG4gIFBsYXllci5rZXlzUHJlc3NlZCA9IFtdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvbkNhbnZhc1Jlc2l6ZSgpIHtcclxuICB2YXIgdyA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIHZhciBoID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG5cclxuICB2YXIgc2NhbGUgPSAxNi85O1xyXG4gIHZhciB3aW5kb3dTY2FsZSA9IHcvaDtcclxuXHJcbiAgaWYgKHNjYWxlID4gd2luZG93U2NhbGUpIHtcclxuICAgIC8vIGhpZ2hlclxyXG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gdyArICdweCc7XHJcbiAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gKHcvMTYqOSkgKyAncHgnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyB3aWRlclxyXG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gKGgvOSoxNikgKyAncHgnO1xyXG4gICAgY2FudmFzLnN0eWxlLmhlaWdodCA9IGggKyAncHgnO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1BsYXllcihwNTogUDUsIHBsYXllcjogYW55LCB4OiBhbnksIHk6IGFueSkge1xyXG4gIHA1LnN0cm9rZSgwLCAwLCAwKVxyXG4gIHA1LnN0cm9rZVdlaWdodCg1KVxyXG4gIC8vIHRyYW5zbGF0ZSgtd2lkdGgvMiwgLWhlaWdodC8yKVxyXG4gIHA1LmZpbGwocGxheWVyLmNvbG9yKVxyXG4gIHA1LmVsbGlwc2UoeCwgeSwgODAsIDgwKTtcclxuICBwNS50ZXh0U2l6ZSgzMik7XHJcbiAgcDUuZmlsbCgyNTUsIDI1NSwgMjU1KTtcclxuICBwNS50ZXh0QWxpZ24ocDUuQ0VOVEVSLCBwNS5DRU5URVIpO1xyXG4gIHA1LnRleHQocGxheWVyLm5hbWUsIHggLSAzMDAseSAtIDEwMCwgNjAwLCA1MCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlbGF0aXZlUG9zaXRpb24ocG9zMTogYW55LCBwb3MyOiBhbnkpIHtcclxuICByZXR1cm4ge1xyXG4gICAgeDogcG9zMi54IC0gcG9zMS54LFxyXG4gICAgeTogcG9zMi55IC0gcG9zMS55LFxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gYnVpbGRNYXAoKSB7XHJcbiAgdGlsZVR5cGVzID0ge1xyXG4gICAgZ3Jhc3M6IHtcclxuICAgICAgaW1hZ2U6IGdyYXNzSW1hZ2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvciAobGV0IHggPSAwOyB4IDwgMTA7IHgrKykge1xyXG4gICAgbWFwVGlsZXNbeF0gPSBbXVxyXG4gICAgZm9yIChsZXQgeSA9IDA7IHkgPCA2OyB5KyspIHtcclxuICAgICAgbWFwVGlsZXNbeF1beV0gPSB7XHJcbiAgICAgICAgdGlsZTogdGlsZVR5cGVzLmdyYXNzLmltYWdlLFxyXG4gICAgICAgIHg6IHggKiAzODAsXHJcbiAgICAgICAgeTogeSAqIDM4MCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc29sZS5sb2cobWFwVGlsZXMpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmlzaWJsZShtaWRkbGVQb2ludDogYW55LCB2aXNpYmxlQXJlYVNpemU6IGFueSwgcG9zaXRpb246IGFueSwgc2l6ZTogYW55KSB7XHJcbiAgaWYgKFxyXG4gICAgcG9zaXRpb24ueCAtIHNpemUud2lkdGggPiBtaWRkbGVQb2ludC54IC0gdmlzaWJsZUFyZWFTaXplLndpZHRoLzIgJiZcclxuICAgIHBvc2l0aW9uLnggKyBzaXplLndpZHRoIDwgbWlkZGxlUG9pbnQueCArIHZpc2libGVBcmVhU2l6ZS53aWR0aC8yICYmXHJcbiAgICBwb3NpdGlvbi55IC0gc2l6ZS5oZWlnaHQgPiBtaWRkbGVQb2ludC55IC0gdmlzaWJsZUFyZWFTaXplLmhlaWdodC8yICYmXHJcbiAgICBwb3NpdGlvbi55ICsgc2l6ZS5oZWlnaHQgPCBtaWRkbGVQb2ludC55ICsgdmlzaWJsZUFyZWFTaXplLmhlaWdodC8yXHJcbiAgKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygndmlzaWJsZScpXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgLy8gY29uc29sZS5sb2coJ25vdCB2aXNpYmxlJylcclxuICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRpc3RhbmNlKHAxOiBhbnksIHAyOiBhbnkpIHtcclxuICByZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHAyLnggLSBwMS54LCAyKSArIE1hdGgucG93KHAyLnkgLSBwMS55LCAyKSlcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd01hcChwNTogUDUpIHtcclxuXHJcbiAgZm9yIChsZXQgeFRpbGVzIG9mIG1hcFRpbGVzKSB7XHJcbiAgICBmb3IgKGxldCB5VGlsZSBvZiB4VGlsZXMpIHtcclxuICAgICAgaWYgKGRpc3RhbmNlKFBsYXllci5wb3NpdGlvbiwge3g6IHlUaWxlLngsIHk6IHlUaWxlLnl9KSA8IDIwMDApIHtcclxuICAgICAgICBwNS5pbWFnZSh5VGlsZS50aWxlLCB5VGlsZS54ICsgcDUud2lkdGgvMiwgeVRpbGUueSArIHA1LmhlaWdodC8yKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuc29ja2V0Lm9uKCd5b3VyLWluZm8nLCBmdW5jdGlvbiAocGxheWVyRGF0YTogYW55KSB7XHJcbiAgUGxheWVyLm5hbWUgPSBwbGF5ZXJEYXRhLm5hbWU7XHJcbiAgUGxheWVyLnBvc2l0aW9uID0gcGxheWVyRGF0YS5wb3NpdGlvbjtcclxuICBQbGF5ZXIuY29sb3IgPSBwbGF5ZXJEYXRhLmNvbG9yO1xyXG4gIFBsYXllci5pZCA9IHBsYXllckRhdGEuaWQ7XHJcbn0pXHJcbnNvY2tldC5vbigncGxheWVycy1pbmZvJywgZnVuY3Rpb24gKHBsYXllcnNEYXRhOiBhbnkpIHtcclxuICBmb3IgKGxldCBwbGF5ZXJEYXRhIG9mIHBsYXllcnNEYXRhKSB7XHJcbiAgICBpZiAoUGxheWVyLmlkICE9PSBwbGF5ZXJEYXRhLmlkKSB7XHJcbiAgICAgIE90aGVyUGxheWVycy5wdXNoKHtcclxuICAgICAgICBuYW1lOiBwbGF5ZXJEYXRhLm5hbWUsXHJcbiAgICAgICAgcG9zaXRpb246IHBsYXllckRhdGEucG9zaXRpb24sXHJcbiAgICAgICAgY29sb3I6IHBsYXllckRhdGEuY29sb3IsXHJcbiAgICAgICAgaWQ6IHBsYXllckRhdGEuaWQsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG59KVxyXG5zb2NrZXQub24oJ25ldy1wbGF5ZXItam9pbmVkJywgZnVuY3Rpb24gKHBsYXllckRhdGE6IGFueSkge1xyXG4gIGlmIChQbGF5ZXIuaWQgIT09IHBsYXllckRhdGEuaWQpIHtcclxuICAgIE90aGVyUGxheWVycy5wdXNoKHtcclxuICAgICAgbmFtZTogcGxheWVyRGF0YS5uYW1lLFxyXG4gICAgICBwb3NpdGlvbjogcGxheWVyRGF0YS5wb3NpdGlvbixcclxuICAgICAgY29sb3I6IHBsYXllckRhdGEuY29sb3IsXHJcbiAgICAgIGlkOiBwbGF5ZXJEYXRhLmlkLFxyXG4gICAgfSlcclxuICB9XHJcbn0pXHJcbnNvY2tldC5vbigncGxheWVyLW1vdmVkJywgZnVuY3Rpb24gKG1vdmVkUGxheWVyRGF0YTogYW55KSB7XHJcbiAgZm9yIChsZXQgcGxheWVyRGF0YSBvZiBPdGhlclBsYXllcnMpIHtcclxuICAgIGlmIChQbGF5ZXIuaWQgIT09IG1vdmVkUGxheWVyRGF0YS5pZCAmJiBtb3ZlZFBsYXllckRhdGEuaWQgPT09IHBsYXllckRhdGEuaWQpIHtcclxuICAgICAgcGxheWVyRGF0YS5wb3NpdGlvbiA9IG1vdmVkUGxheWVyRGF0YS5wb3NpdGlvbjtcclxuICAgIH1cclxuICB9XHJcbn0pXHJcblxyXG5jb25zdCBza2V0Y2ggPSAocDU6IFA1KSA9PiB7XHJcblxyXG4gIHA1LnNldHVwID0gKCkgPT4ge1xyXG4gICAgYnVpbGRNYXAoKVxyXG4gICAgcDUuY3JlYXRlQ2FudmFzKDE5MjAsIDEwODApO1xyXG4gICAgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJykhXHJcbiAgICBvbkNhbnZhc1Jlc2l6ZSgpXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25DYW52YXNSZXNpemUpXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBvbktleVVwKVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsIG9uQ29udGV4dE1lbnUpO1xyXG4gIH1cclxuXHJcbiAgcDUucHJlbG9hZCA9ICgpID0+IHtcclxuICAgIGdyYXNzSW1hZ2UgPSBwNS5sb2FkSW1hZ2UoJ2dyYXNzLnBuZycpO1xyXG4gIH1cclxuXHJcbiAgcDUuZHJhdyA9ICgpID0+IHtcclxuICAgIHA1LnRyYW5zbGF0ZSgtUGxheWVyLnBvc2l0aW9uLngsIFBsYXllci5wb3NpdGlvbi55KVxyXG5cclxuICAgIGRyYXdNYXAocDUpXHJcbiAgXHJcbiAgICBmb3IgKGxldCBvdGhlclBsYXllciBvZiBPdGhlclBsYXllcnMpIHtcclxuICAgICAgZHJhd1BsYXllcihwNSwgb3RoZXJQbGF5ZXIsIG90aGVyUGxheWVyLnBvc2l0aW9uLnggKyBwNS53aWR0aC8yLCAtb3RoZXJQbGF5ZXIucG9zaXRpb24ueSArIHA1LmhlaWdodC8yKVxyXG4gICAgfVxyXG4gIFxyXG4gICAgcDUudHJhbnNsYXRlKFBsYXllci5wb3NpdGlvbi54LCAtUGxheWVyLnBvc2l0aW9uLnkpXHJcbiAgICBkcmF3UGxheWVyKHA1LCBQbGF5ZXIsIHA1LndpZHRoLzIsIHA1LmhlaWdodC8yKVxyXG4gICAgcDUudGV4dChNYXRoLmZsb29yKFBsYXllci5wb3NpdGlvbi54KSArICc6JyArIE1hdGguZmxvb3IoUGxheWVyLnBvc2l0aW9uLnkpLCBwNS53aWR0aC8yLCA1MClcclxuICAgIFxyXG4gICAgbGV0IHByZXZpb3VzUG9zaXRpb24gPSB7XHJcbiAgICAgIHg6IFBsYXllci5wb3NpdGlvbi54LFxyXG4gICAgICB5OiBQbGF5ZXIucG9zaXRpb24ueSxcclxuICAgIH1cclxuICAgIGlmIChQbGF5ZXIua2V5c1ByZXNzZWRbS0VZX0FdKSB7XHJcbiAgICAgIFBsYXllci5wb3NpdGlvbi54IC09IFBMQVlFUl9TUEVFRDtcclxuICAgIH1cclxuICAgIGlmIChQbGF5ZXIua2V5c1ByZXNzZWRbS0VZX0RdKSB7XHJcbiAgICAgIFBsYXllci5wb3NpdGlvbi54ICs9IFBMQVlFUl9TUEVFRDtcclxuICAgIH1cclxuICBcclxuICAgIGlmIChQbGF5ZXIua2V5c1ByZXNzZWRbS0VZX1ddKSB7XHJcbiAgICAgIFBsYXllci5wb3NpdGlvbi55ICs9IFBMQVlFUl9TUEVFRDtcclxuICAgIH1cclxuICAgIGlmIChQbGF5ZXIua2V5c1ByZXNzZWRbS0VZX1NdKSB7XHJcbiAgICAgIFBsYXllci5wb3NpdGlvbi55IC09IFBMQVlFUl9TUEVFRDtcclxuICAgIH1cclxuICAgIGlmIChQbGF5ZXIucG9zaXRpb24ueCAhPT0gcHJldmlvdXNQb3NpdGlvbi54IHx8IFBsYXllci5wb3NpdGlvbi55ICE9PSBwcmV2aW91c1Bvc2l0aW9uLnkpIHtcclxuICAgICAgc29ja2V0LmVtaXQoJ2ktbW92ZWQnLCB7eDogUGxheWVyLnBvc2l0aW9uLngsIHk6IFBsYXllci5wb3NpdGlvbi55fSlcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5uZXcgUDUoc2tldGNoKSJdLCJzb3VyY2VSb290IjoiIn0=